public class org.apache.camel.support.TokenXMLExpressionIterator extends org.apache.camel.support.ExpressionAdapter
{
private static final java.util.regex.Pattern NAMESPACE_PATTERN;
private static final java.lang.String SCAN_TOKEN_NS_PREFIX_REGEX;
private static final java.lang.String SCAN_BLOCK_TOKEN_REGEX_TEMPLATE;
private static final java.lang.String SCAN_PARENT_TOKEN_REGEX_TEMPLATE;
private static final java.lang.String OPTION_WRAP_TOKEN;
private static final java.lang.String NAMESPACE_SEPERATOR;
protected final java.lang.String tagToken;
protected final java.lang.String inheritNamespaceToken;
public void <init>(java.lang.String, java.lang.String)
{
java.lang.String v, v;
org.apache.camel.support.TokenXMLExpressionIterator v;
v := @this: org.apache.camel.support.TokenXMLExpressionIterator;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
specialinvoke v.<org.apache.camel.support.ExpressionAdapter: void <init>()>();
staticinvoke <org.apache.camel.util.StringHelper: java.lang.String notEmpty(java.lang.String,java.lang.String)>(v, "tagToken");
v.<org.apache.camel.support.TokenXMLExpressionIterator: java.lang.String tagToken> = v;
v.<org.apache.camel.support.TokenXMLExpressionIterator: java.lang.String inheritNamespaceToken> = v;
return;
}
protected java.util.Iterator createIterator(org.apache.camel.Exchange, java.io.InputStream, java.lang.String)
{
org.apache.camel.Exchange v;
org.apache.camel.Expression v, v;
java.lang.String v, v, v, v, v;
boolean v, v, v, v, v, v, v, v, v, v;
java.lang.IllegalArgumentException v, v;
org.apache.camel.support.TokenXMLExpressionIterator v;
org.apache.camel.support.TokenXMLExpressionIterator$XMLTokenIterator v;
java.lang.Object v, v;
java.io.InputStream v;
v := @this: org.apache.camel.support.TokenXMLExpressionIterator;
v := @parameter: org.apache.camel.Exchange;
v := @parameter: java.io.InputStream;
v := @parameter: java.lang.String;
v = v.<org.apache.camel.support.TokenXMLExpressionIterator: java.lang.String tagToken>;
v = staticinvoke <org.apache.camel.language.simple.SimpleLanguage: boolean hasSimpleFunction(java.lang.String)>(v);
if v == 0 goto label;
v = staticinvoke <org.apache.camel.language.simple.SimpleLanguage: org.apache.camel.Expression expression(java.lang.String)>(v);
v = interfaceinvoke v.<org.apache.camel.Expression: java.lang.Object evaluate(org.apache.camel.Exchange,java.lang.Class)>(v, class "Ljava/lang/String;");
label:
v = v.<org.apache.camel.support.TokenXMLExpressionIterator: java.lang.String inheritNamespaceToken>;
if v == null goto label;
v = staticinvoke <org.apache.camel.language.simple.SimpleLanguage: boolean hasSimpleFunction(java.lang.String)>(v);
if v == 0 goto label;
v = staticinvoke <org.apache.camel.language.simple.SimpleLanguage: org.apache.camel.Expression expression(java.lang.String)>(v);
v = interfaceinvoke v.<org.apache.camel.Expression: java.lang.Object evaluate(org.apache.camel.Exchange,java.lang.Class)>(v, class "Ljava/lang/String;");
label:
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>("<");
if v != 0 goto label;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("<\u0001");
label:
v = virtualinvoke v.<java.lang.String: boolean endsWith(java.lang.String)>(">");
if v != 0 goto label;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u0001>");
label:
if v == null goto label;
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>("<");
if v != 0 goto label;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("<\u0001");
label:
v = virtualinvoke v.<java.lang.String: boolean endsWith(java.lang.String)>(">");
if v != 0 goto label;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u0001>");
label:
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>("<");
if v == 0 goto label;
v = virtualinvoke v.<java.lang.String: boolean endsWith(java.lang.String)>(">");
if v != 0 goto label;
label:
v = new java.lang.IllegalArgumentException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("XML Tag token must be a valid XML tag, was: \u0001");
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>(v);
throw v;
label:
if v == null goto label;
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>("<");
if v == 0 goto label;
v = virtualinvoke v.<java.lang.String: boolean endsWith(java.lang.String)>(">");
if v != 0 goto label;
label:
v = new java.lang.IllegalArgumentException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Namespace token must be a valid XML token, was: \u0001");
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>(v);
throw v;
label:
v = new org.apache.camel.support.TokenXMLExpressionIterator$XMLTokenIterator;
specialinvoke v.<org.apache.camel.support.TokenXMLExpressionIterator$XMLTokenIterator: void <init>(java.lang.String,java.lang.String,java.io.InputStream,java.lang.String)>(v, v, v, v);
virtualinvoke v.<org.apache.camel.support.TokenXMLExpressionIterator$XMLTokenIterator: void init()>();
return v;
}
public boolean matches(org.apache.camel.Exchange)
{
org.apache.camel.support.TokenXMLExpressionIterator v;
java.lang.Object v;
org.apache.camel.Exchange v;
boolean v;
v := @this: org.apache.camel.support.TokenXMLExpressionIterator;
v := @parameter: org.apache.camel.Exchange;
v = virtualinvoke v.<org.apache.camel.support.TokenXMLExpressionIterator: java.lang.Object doEvaluate(org.apache.camel.Exchange,boolean)>(v, 1);
v = staticinvoke <org.apache.camel.util.ObjectHelper: boolean evaluateValuePredicate(java.lang.Object)>(v);
return v;
}
public java.lang.Object evaluate(org.apache.camel.Exchange)
{
java.lang.Object v;
org.apache.camel.Exchange v;
org.apache.camel.support.TokenXMLExpressionIterator v;
v := @this: org.apache.camel.support.TokenXMLExpressionIterator;
v := @parameter: org.apache.camel.Exchange;
v = virtualinvoke v.<org.apache.camel.support.TokenXMLExpressionIterator: java.lang.Object doEvaluate(org.apache.camel.Exchange,boolean)>(v, 0);
return v;
}
protected java.lang.Object doEvaluate(org.apache.camel.Exchange, boolean)
{
java.lang.Throwable v;
java.util.Iterator v;
org.apache.camel.Message v;
org.apache.camel.Exchange v;
org.apache.camel.InvalidPayloadException v;
org.apache.camel.support.TokenXMLExpressionIterator v;
java.lang.Object v;
java.lang.String v;
boolean v;
v := @this: org.apache.camel.support.TokenXMLExpressionIterator;
v := @parameter: org.apache.camel.Exchange;
v := @parameter: boolean;
label:
v = interfaceinvoke v.<org.apache.camel.Exchange: org.apache.camel.Message getIn()>();
v = interfaceinvoke v.<org.apache.camel.Message: java.lang.Object getMandatoryBody(java.lang.Class)>(class "Ljava/io/InputStream;");
v = staticinvoke <org.apache.camel.util.IOHelper: java.lang.String getCharsetName(org.apache.camel.Exchange)>(v);
v = virtualinvoke v.<org.apache.camel.support.TokenXMLExpressionIterator: java.util.Iterator createIterator(org.apache.camel.Exchange,java.io.InputStream,java.lang.String)>(v, v, v);
label:
if v == 0 goto label;
staticinvoke <org.apache.camel.util.IOHelper: void close(java.io.Closeable)>(v);
label:
return v;
label:
v := @caughtexception;
interfaceinvoke v.<org.apache.camel.Exchange: void setException(java.lang.Throwable)>(v);
staticinvoke <org.apache.camel.util.IOHelper: void close(java.io.Closeable)>(v);
label:
if v == 0 goto label;
staticinvoke <org.apache.camel.util.IOHelper: void close(java.io.Closeable)>(v);
label:
return null;
label:
v := @caughtexception;
if v == 0 goto label;
staticinvoke <org.apache.camel.util.IOHelper: void close(java.io.Closeable)>(v);
label:
throw v;
catch org.apache.camel.InvalidPayloadException from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
private static java.lang.String buildXMLTail(java.lang.String)
{
java.util.ArrayList v;
int v, v, v, v, v, v, v, v, v, v, v, v, v;
java.lang.String v, v, v, v;
char v, v;
java.lang.Object v;
java.lang.StringBuilder v, v, v;
v := @parameter: java.lang.String;
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = 0;
label:
v = virtualinvoke v.<java.lang.String: int length()>();
if v >= v goto label;
v = virtualinvoke v.<java.lang.String: int indexOf(int,int)>(60, v);
if v < 0 goto label;
v = v + 1;
v = virtualinvoke v.<java.lang.String: char charAt(int)>(v);
if v != 63 goto label;
v = v + 1;
goto label;
label:
if v != 47 goto label;
v = v + 1;
v = interfaceinvoke v.<java.util.List: int size()>();
v = v - 1;
interfaceinvoke v.<java.util.List: java.lang.Object remove(int)>(v);
goto label;
label:
v = virtualinvoke v.<java.lang.String: int indexOf(int,int)>(62, v);
v = v - 1;
v = virtualinvoke v.<java.lang.String: char charAt(int)>(v);
if v != 47 goto label;
v = v + 1;
goto label;
label:
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int,int)>(v, v);
v = virtualinvoke v.<java.lang.String: int indexOf(int)>(32);
v = v + 1;
if v <= 0 goto label;
v = v + v;
goto label;
label:
v = v;
label:
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int,int)>(v, v);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
v = v;
goto label;
label:
v = new java.lang.StringBuilder;
specialinvoke v.<java.lang.StringBuilder: void <init>()>();
v = interfaceinvoke v.<java.util.List: int size()>();
v = v - 1;
label:
if v < 0 goto label;
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("</");
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(">");
v = v - 1;
goto label;
label:
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.String toString()>();
return v;
}
static void <clinit>()
{
java.util.regex.Pattern v;
v = staticinvoke <java.util.regex.Pattern: java.util.regex.Pattern compile(java.lang.String)>("xmlns(:\\w+|)\\s*=\\s*(\'[^\']+\'|\"[^\"]+\")");
<org.apache.camel.support.TokenXMLExpressionIterator: java.util.regex.Pattern NAMESPACE_PATTERN> = v;
return;
}
}