public class org.apache.commons.collections.functors.SwitchClosure extends java.lang.Object implements org.apache.commons.collections.Closure, java.io.Serializable
{
private static final long serialVersionUID;
private final org.apache.commons.collections.Predicate[] iPredicates;
private final org.apache.commons.collections.Closure[] iClosures;
private final org.apache.commons.collections.Closure iDefault;
public static org.apache.commons.collections.Closure switchClosure(org.apache.commons.collections.Predicate[], org.apache.commons.collections.Closure[], org.apache.commons.collections.Closure)
{
org.apache.commons.collections.functors.SwitchClosure v;
org.apache.commons.collections.Predicate[] v;
java.lang.IllegalArgumentException v;
org.apache.commons.collections.Closure v, v;
int v, v, v;
org.apache.commons.collections.Closure[] v;
v := @parameter: org.apache.commons.collections.Predicate[];
v := @parameter: org.apache.commons.collections.Closure[];
v := @parameter: org.apache.commons.collections.Closure;
staticinvoke <org.apache.commons.collections.functors.FunctorUtils: void validate(org.apache.commons.collections.Predicate[])>(v);
staticinvoke <org.apache.commons.collections.functors.FunctorUtils: void validate(org.apache.commons.collections.Closure[])>(v);
v = lengthof v;
v = lengthof v;
if v == v goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("The predicate and closure arrays must be the same size");
throw v;
label:
v = lengthof v;
if v != 0 goto label;
if v != null goto label;
v = staticinvoke <org.apache.commons.collections.functors.NOPClosure: org.apache.commons.collections.Closure nopClosure()>();
goto label;
label:
v = v;
label:
return v;
label:
v = new org.apache.commons.collections.functors.SwitchClosure;
specialinvoke v.<org.apache.commons.collections.functors.SwitchClosure: void <init>(org.apache.commons.collections.Predicate[],org.apache.commons.collections.Closure[],org.apache.commons.collections.Closure)>(v, v, v);
return v;
}
public static org.apache.commons.collections.Closure switchClosure(java.util.Map)
{
java.util.Iterator v;
java.util.Set v;
org.apache.commons.collections.functors.SwitchClosure v;
org.apache.commons.collections.Predicate[] v;
org.apache.commons.collections.Closure v;
java.lang.NullPointerException v;
java.util.Map v;
int v, v;
java.lang.Object v, v, v, v;
org.apache.commons.collections.Closure[] v;
boolean v;
v := @parameter: java.util.Map;
if v != null goto label;
v = new java.lang.NullPointerException;
specialinvoke v.<java.lang.NullPointerException: void <init>(java.lang.String)>("The predicate and closure map must not be null");
throw v;
label:
v = interfaceinvoke v.<java.util.Map: java.lang.Object remove(java.lang.Object)>(null);
v = interfaceinvoke v.<java.util.Map: int size()>();
if v != 0 goto label;
if v != null goto label;
v = staticinvoke <org.apache.commons.collections.functors.NOPClosure: org.apache.commons.collections.Closure nopClosure()>();
goto label;
label:
v = v;
label:
return v;
label:
v = newarray (org.apache.commons.collections.Closure)[v];
v = newarray (org.apache.commons.collections.Predicate)[v];
v = 0;
v = interfaceinvoke v.<java.util.Map: java.util.Set entrySet()>();
v = interfaceinvoke v.<java.util.Set: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
v[v] = v;
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v[v] = v;
v = v + 1;
goto label;
label:
v = new org.apache.commons.collections.functors.SwitchClosure;
specialinvoke v.<org.apache.commons.collections.functors.SwitchClosure: void <init>(boolean,org.apache.commons.collections.Predicate[],org.apache.commons.collections.Closure[],org.apache.commons.collections.Closure)>(0, v, v, v);
return v;
}
private void <init>(boolean, org.apache.commons.collections.Predicate[], org.apache.commons.collections.Closure[], org.apache.commons.collections.Closure)
{
org.apache.commons.collections.functors.SwitchClosure v;
org.apache.commons.collections.Predicate[] v, v;
org.apache.commons.collections.Closure v, v;
org.apache.commons.collections.Closure[] v, v;
boolean v;
v := @this: org.apache.commons.collections.functors.SwitchClosure;
v := @parameter: boolean;
v := @parameter: org.apache.commons.collections.Predicate[];
v := @parameter: org.apache.commons.collections.Closure[];
v := @parameter: org.apache.commons.collections.Closure;
specialinvoke v.<java.lang.Object: void <init>()>();
if v == 0 goto label;
v = staticinvoke <org.apache.commons.collections.functors.FunctorUtils: org.apache.commons.collections.Predicate[] copy(org.apache.commons.collections.Predicate[])>(v);
goto label;
label:
v = v;
label:
v.<org.apache.commons.collections.functors.SwitchClosure: org.apache.commons.collections.Predicate[] iPredicates> = v;
if v == 0 goto label;
v = staticinvoke <org.apache.commons.collections.functors.FunctorUtils: org.apache.commons.collections.Closure[] copy(org.apache.commons.collections.Closure[])>(v);
goto label;
label:
v = v;
label:
v.<org.apache.commons.collections.functors.SwitchClosure: org.apache.commons.collections.Closure[] iClosures> = v;
if v != null goto label;
v = staticinvoke <org.apache.commons.collections.functors.NOPClosure: org.apache.commons.collections.Closure nopClosure()>();
goto label;
label:
v = v;
label:
v.<org.apache.commons.collections.functors.SwitchClosure: org.apache.commons.collections.Closure iDefault> = v;
return;
}
public void <init>(org.apache.commons.collections.Predicate[], org.apache.commons.collections.Closure[], org.apache.commons.collections.Closure)
{
org.apache.commons.collections.functors.SwitchClosure v;
org.apache.commons.collections.Closure[] v;
org.apache.commons.collections.Predicate[] v;
org.apache.commons.collections.Closure v;
v := @this: org.apache.commons.collections.functors.SwitchClosure;
v := @parameter: org.apache.commons.collections.Predicate[];
v := @parameter: org.apache.commons.collections.Closure[];
v := @parameter: org.apache.commons.collections.Closure;
specialinvoke v.<org.apache.commons.collections.functors.SwitchClosure: void <init>(boolean,org.apache.commons.collections.Predicate[],org.apache.commons.collections.Closure[],org.apache.commons.collections.Closure)>(1, v, v, v);
return;
}
public void execute(java.lang.Object)
{
org.apache.commons.collections.Predicate v;
org.apache.commons.collections.functors.SwitchClosure v;
org.apache.commons.collections.Predicate[] v, v;
org.apache.commons.collections.Closure v, v;
int v, v;
java.lang.Object v;
org.apache.commons.collections.Closure[] v;
boolean v;
v := @this: org.apache.commons.collections.functors.SwitchClosure;
v := @parameter: java.lang.Object;
v = 0;
label:
v = v.<org.apache.commons.collections.functors.SwitchClosure: org.apache.commons.collections.Predicate[] iPredicates>;
v = lengthof v;
if v >= v goto label;
v = v.<org.apache.commons.collections.functors.SwitchClosure: org.apache.commons.collections.Predicate[] iPredicates>;
v = v[v];
v = interfaceinvoke v.<org.apache.commons.collections.Predicate: boolean evaluate(java.lang.Object)>(v);
if v != 1 goto label;
v = v.<org.apache.commons.collections.functors.SwitchClosure: org.apache.commons.collections.Closure[] iClosures>;
v = v[v];
interfaceinvoke v.<org.apache.commons.collections.Closure: void execute(java.lang.Object)>(v);
return;
label:
v = v + 1;
goto label;
label:
v = v.<org.apache.commons.collections.functors.SwitchClosure: org.apache.commons.collections.Closure iDefault>;
interfaceinvoke v.<org.apache.commons.collections.Closure: void execute(java.lang.Object)>(v);
return;
}
public org.apache.commons.collections.Predicate[] getPredicates()
{
org.apache.commons.collections.functors.SwitchClosure v;
org.apache.commons.collections.Predicate[] v, v;
v := @this: org.apache.commons.collections.functors.SwitchClosure;
v = v.<org.apache.commons.collections.functors.SwitchClosure: org.apache.commons.collections.Predicate[] iPredicates>;
v = staticinvoke <org.apache.commons.collections.functors.FunctorUtils: org.apache.commons.collections.Predicate[] copy(org.apache.commons.collections.Predicate[])>(v);
return v;
}
public org.apache.commons.collections.Closure[] getClosures()
{
org.apache.commons.collections.functors.SwitchClosure v;
org.apache.commons.collections.Closure[] v, v;
v := @this: org.apache.commons.collections.functors.SwitchClosure;
v = v.<org.apache.commons.collections.functors.SwitchClosure: org.apache.commons.collections.Closure[] iClosures>;
v = staticinvoke <org.apache.commons.collections.functors.FunctorUtils: org.apache.commons.collections.Closure[] copy(org.apache.commons.collections.Closure[])>(v);
return v;
}
public org.apache.commons.collections.Closure getDefaultClosure()
{
org.apache.commons.collections.functors.SwitchClosure v;
org.apache.commons.collections.Closure v;
v := @this: org.apache.commons.collections.functors.SwitchClosure;
v = v.<org.apache.commons.collections.functors.SwitchClosure: org.apache.commons.collections.Closure iDefault>;
return v;
}
}