public class org.jvnet.hk.internal.IterableProviderImpl extends java.lang.Object implements org.glassfish.hk.api.IterableProvider
{
private final org.jvnet.hk.internal.ServiceLocatorImpl locator;
private final java.lang.reflect.Type requiredType;
private final java.util.Set requiredQualifiers;
private final org.glassfish.hk.api.Unqualified unqualified;
private final org.glassfish.hk.api.Injectee originalInjectee;
private final boolean isIterable;
void <init>(org.jvnet.hk.internal.ServiceLocatorImpl, java.lang.reflect.Type, java.util.Set, org.glassfish.hk.api.Unqualified, org.glassfish.hk.api.Injectee, boolean)
{
java.util.Set v, v;
org.glassfish.hk.api.Injectee v;
java.lang.reflect.Type v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
org.glassfish.hk.api.Unqualified v;
org.jvnet.hk.internal.IterableProviderImpl v;
boolean v;
v := @this: org.jvnet.hk.internal.IterableProviderImpl;
v := @parameter: org.jvnet.hk.internal.ServiceLocatorImpl;
v := @parameter: java.lang.reflect.Type;
v := @parameter: java.util.Set;
v := @parameter: org.glassfish.hk.api.Unqualified;
v := @parameter: org.glassfish.hk.api.Injectee;
v := @parameter: boolean;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<org.jvnet.hk.internal.IterableProviderImpl: org.jvnet.hk.internal.ServiceLocatorImpl locator> = v;
v.<org.jvnet.hk.internal.IterableProviderImpl: java.lang.reflect.Type requiredType> = v;
v = staticinvoke <java.util.Collections: java.util.Set unmodifiableSet(java.util.Set)>(v);
v.<org.jvnet.hk.internal.IterableProviderImpl: java.util.Set requiredQualifiers> = v;
v.<org.jvnet.hk.internal.IterableProviderImpl: org.glassfish.hk.api.Unqualified unqualified> = v;
v.<org.jvnet.hk.internal.IterableProviderImpl: org.glassfish.hk.api.Injectee originalInjectee> = v;
v.<org.jvnet.hk.internal.IterableProviderImpl: boolean isIterable> = v;
return;
}
private void justInTime()
{
java.util.Set v;
org.glassfish.hk.api.Injectee v;
org.glassfish.hk.utilities.InjecteeImpl v;
java.lang.reflect.Type v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
org.glassfish.hk.api.Unqualified v, v;
org.jvnet.hk.internal.IterableProviderImpl v;
v := @this: org.jvnet.hk.internal.IterableProviderImpl;
v = new org.glassfish.hk.utilities.InjecteeImpl;
v = v.<org.jvnet.hk.internal.IterableProviderImpl: org.glassfish.hk.api.Injectee originalInjectee>;
specialinvoke v.<org.glassfish.hk.utilities.InjecteeImpl: void <init>(org.glassfish.hk.api.Injectee)>(v);
v = v.<org.jvnet.hk.internal.IterableProviderImpl: java.lang.reflect.Type requiredType>;
virtualinvoke v.<org.glassfish.hk.utilities.InjecteeImpl: void setRequiredType(java.lang.reflect.Type)>(v);
v = v.<org.jvnet.hk.internal.IterableProviderImpl: java.util.Set requiredQualifiers>;
virtualinvoke v.<org.glassfish.hk.utilities.InjecteeImpl: void setRequiredQualifiers(java.util.Set)>(v);
v = v.<org.jvnet.hk.internal.IterableProviderImpl: org.glassfish.hk.api.Unqualified unqualified>;
if v == null goto label;
v = v.<org.jvnet.hk.internal.IterableProviderImpl: org.glassfish.hk.api.Unqualified unqualified>;
virtualinvoke v.<org.glassfish.hk.utilities.InjecteeImpl: void setUnqualified(org.glassfish.hk.api.Unqualified)>(v);
label:
v = v.<org.jvnet.hk.internal.IterableProviderImpl: org.jvnet.hk.internal.ServiceLocatorImpl locator>;
virtualinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.glassfish.hk.api.ActiveDescriptor getInjecteeDescriptor(org.glassfish.hk.api.Injectee)>(v);
return;
}
public java.lang.Object get()
{
java.lang.Object[] v;
java.util.Set v, v;
java.lang.'annotation'.Annotation[] v;
java.lang.reflect.Type v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
org.glassfish.hk.api.Unqualified v;
int v;
java.lang.Object v;
org.jvnet.hk.internal.IterableProviderImpl v;
boolean v;
v := @this: org.jvnet.hk.internal.IterableProviderImpl;
specialinvoke v.<org.jvnet.hk.internal.IterableProviderImpl: void justInTime()>();
v = v.<org.jvnet.hk.internal.IterableProviderImpl: org.jvnet.hk.internal.ServiceLocatorImpl locator>;
v = v.<org.jvnet.hk.internal.IterableProviderImpl: java.lang.reflect.Type requiredType>;
v = v.<org.jvnet.hk.internal.IterableProviderImpl: org.glassfish.hk.api.Unqualified unqualified>;
v = v.<org.jvnet.hk.internal.IterableProviderImpl: boolean isIterable>;
v = v.<org.jvnet.hk.internal.IterableProviderImpl: java.util.Set requiredQualifiers>;
v = v.<org.jvnet.hk.internal.IterableProviderImpl: java.util.Set requiredQualifiers>;
v = interfaceinvoke v.<java.util.Set: int size()>();
v = newarray (java.lang.'annotation'.Annotation)[v];
v = interfaceinvoke v.<java.util.Set: java.lang.Object[] toArray(java.lang.Object[])>(v);
v = virtualinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.lang.Object getUnqualifiedService(java.lang.reflect.Type,org.glassfish.hk.api.Unqualified,boolean,java.lang.'annotation'.Annotation[])>(v, v, v, v);
return v;
}
public org.glassfish.hk.api.ServiceHandle getHandle()
{
java.lang.Object[] v;
java.util.Set v, v;
java.lang.'annotation'.Annotation[] v;
org.glassfish.hk.api.ServiceHandle v;
java.lang.reflect.Type v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
org.glassfish.hk.api.Unqualified v;
int v;
org.jvnet.hk.internal.IterableProviderImpl v;
boolean v;
v := @this: org.jvnet.hk.internal.IterableProviderImpl;
specialinvoke v.<org.jvnet.hk.internal.IterableProviderImpl: void justInTime()>();
v = v.<org.jvnet.hk.internal.IterableProviderImpl: org.jvnet.hk.internal.ServiceLocatorImpl locator>;
v = v.<org.jvnet.hk.internal.IterableProviderImpl: java.lang.reflect.Type requiredType>;
v = v.<org.jvnet.hk.internal.IterableProviderImpl: org.glassfish.hk.api.Unqualified unqualified>;
v = v.<org.jvnet.hk.internal.IterableProviderImpl: boolean isIterable>;
v = v.<org.jvnet.hk.internal.IterableProviderImpl: java.util.Set requiredQualifiers>;
v = v.<org.jvnet.hk.internal.IterableProviderImpl: java.util.Set requiredQualifiers>;
v = interfaceinvoke v.<java.util.Set: int size()>();
v = newarray (java.lang.'annotation'.Annotation)[v];
v = interfaceinvoke v.<java.util.Set: java.lang.Object[] toArray(java.lang.Object[])>(v);
v = virtualinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.glassfish.hk.api.ServiceHandle getUnqualifiedServiceHandle(java.lang.reflect.Type,org.glassfish.hk.api.Unqualified,boolean,java.lang.'annotation'.Annotation[])>(v, v, v, v);
return v;
}
public java.util.Iterator iterator()
{
java.lang.Object[] v;
java.util.Set v, v;
java.lang.'annotation'.Annotation[] v;
org.jvnet.hk.internal.IterableProviderImpl$MyIterator v;
java.util.List v;
java.lang.reflect.Type v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
org.glassfish.hk.api.Unqualified v;
int v;
java.lang.Object v;
org.jvnet.hk.internal.IterableProviderImpl v;
boolean v;
v := @this: org.jvnet.hk.internal.IterableProviderImpl;
specialinvoke v.<org.jvnet.hk.internal.IterableProviderImpl: void justInTime()>();
v = v.<org.jvnet.hk.internal.IterableProviderImpl: org.jvnet.hk.internal.ServiceLocatorImpl locator>;
v = v.<org.jvnet.hk.internal.IterableProviderImpl: java.lang.reflect.Type requiredType>;
v = v.<org.jvnet.hk.internal.IterableProviderImpl: org.glassfish.hk.api.Unqualified unqualified>;
v = v.<org.jvnet.hk.internal.IterableProviderImpl: boolean isIterable>;
v = v.<org.jvnet.hk.internal.IterableProviderImpl: java.util.Set requiredQualifiers>;
v = v.<org.jvnet.hk.internal.IterableProviderImpl: java.util.Set requiredQualifiers>;
v = interfaceinvoke v.<java.util.Set: int size()>();
v = newarray (java.lang.'annotation'.Annotation)[v];
v = interfaceinvoke v.<java.util.Set: java.lang.Object[] toArray(java.lang.Object[])>(v);
v = virtualinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.List getAllUnqualifiedServiceHandles(java.lang.reflect.Type,org.glassfish.hk.api.Unqualified,boolean,java.lang.'annotation'.Annotation[])>(v, v, v, v);
v = staticinvoke <org.glassfish.hk.utilities.reflection.ReflectionHelper: java.lang.Object cast(java.lang.Object)>(v);
v = new org.jvnet.hk.internal.IterableProviderImpl$MyIterator;
specialinvoke v.<org.jvnet.hk.internal.IterableProviderImpl$MyIterator: void <init>(java.util.List)>(v);
return v;
}
public int getSize()
{
java.lang.Object[] v;
java.util.Set v, v;
java.lang.'annotation'.Annotation[] v;
java.util.List v;
java.lang.reflect.Type v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
org.glassfish.hk.api.Unqualified v;
int v, v;
org.jvnet.hk.internal.IterableProviderImpl v;
boolean v;
v := @this: org.jvnet.hk.internal.IterableProviderImpl;
specialinvoke v.<org.jvnet.hk.internal.IterableProviderImpl: void justInTime()>();
v = v.<org.jvnet.hk.internal.IterableProviderImpl: org.jvnet.hk.internal.ServiceLocatorImpl locator>;
v = v.<org.jvnet.hk.internal.IterableProviderImpl: java.lang.reflect.Type requiredType>;
v = v.<org.jvnet.hk.internal.IterableProviderImpl: org.glassfish.hk.api.Unqualified unqualified>;
v = v.<org.jvnet.hk.internal.IterableProviderImpl: boolean isIterable>;
v = v.<org.jvnet.hk.internal.IterableProviderImpl: java.util.Set requiredQualifiers>;
v = v.<org.jvnet.hk.internal.IterableProviderImpl: java.util.Set requiredQualifiers>;
v = interfaceinvoke v.<java.util.Set: int size()>();
v = newarray (java.lang.'annotation'.Annotation)[v];
v = interfaceinvoke v.<java.util.Set: java.lang.Object[] toArray(java.lang.Object[])>(v);
v = virtualinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.List getAllUnqualifiedServiceHandles(java.lang.reflect.Type,org.glassfish.hk.api.Unqualified,boolean,java.lang.'annotation'.Annotation[])>(v, v, v, v);
v = interfaceinvoke v.<java.util.List: int size()>();
return v;
}
public org.glassfish.hk.api.IterableProvider named(java.lang.String)
{
org.glassfish.hk.api.IterableProvider v;
org.glassfish.hk.utilities.NamedImpl v;
java.lang.String v;
java.lang.'annotation'.Annotation[] v;
org.jvnet.hk.internal.IterableProviderImpl v;
v := @this: org.jvnet.hk.internal.IterableProviderImpl;
v := @parameter: java.lang.String;
v = newarray (java.lang.'annotation'.Annotation)[1];
v = new org.glassfish.hk.utilities.NamedImpl;
specialinvoke v.<org.glassfish.hk.utilities.NamedImpl: void <init>(java.lang.String)>(v);
v[0] = v;
v = virtualinvoke v.<org.jvnet.hk.internal.IterableProviderImpl: org.glassfish.hk.api.IterableProvider qualifiedWith(java.lang.'annotation'.Annotation[])>(v);
return v;
}
public org.glassfish.hk.api.IterableProvider ofType(java.lang.reflect.Type)
{
java.util.Set v;
org.glassfish.hk.api.Injectee v;
java.lang.reflect.Type v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
org.glassfish.hk.api.Unqualified v;
org.jvnet.hk.internal.IterableProviderImpl v, v;
boolean v;
v := @this: org.jvnet.hk.internal.IterableProviderImpl;
v := @parameter: java.lang.reflect.Type;
v = new org.jvnet.hk.internal.IterableProviderImpl;
v = v.<org.jvnet.hk.internal.IterableProviderImpl: org.jvnet.hk.internal.ServiceLocatorImpl locator>;
v = v.<org.jvnet.hk.internal.IterableProviderImpl: java.util.Set requiredQualifiers>;
v = v.<org.jvnet.hk.internal.IterableProviderImpl: org.glassfish.hk.api.Unqualified unqualified>;
v = v.<org.jvnet.hk.internal.IterableProviderImpl: org.glassfish.hk.api.Injectee originalInjectee>;
v = v.<org.jvnet.hk.internal.IterableProviderImpl: boolean isIterable>;
specialinvoke v.<org.jvnet.hk.internal.IterableProviderImpl: void <init>(org.jvnet.hk.internal.ServiceLocatorImpl,java.lang.reflect.Type,java.util.Set,org.glassfish.hk.api.Unqualified,org.glassfish.hk.api.Injectee,boolean)>(v, v, v, v, v, v);
return v;
}
public transient org.glassfish.hk.api.IterableProvider qualifiedWith(java.lang.'annotation'.Annotation[])
{
java.util.Set v;
java.lang.'annotation'.Annotation[] v;
org.glassfish.hk.api.Injectee v;
java.util.HashSet v;
java.lang.reflect.Type v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
org.glassfish.hk.api.Unqualified v;
int v, v;
java.lang.'annotation'.Annotation v;
org.jvnet.hk.internal.IterableProviderImpl v, v;
boolean v;
v := @this: org.jvnet.hk.internal.IterableProviderImpl;
v := @parameter: java.lang.'annotation'.Annotation[];
v = new java.util.HashSet;
v = v.<org.jvnet.hk.internal.IterableProviderImpl: java.util.Set requiredQualifiers>;
specialinvoke v.<java.util.HashSet: void <init>(java.util.Collection)>(v);
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
virtualinvoke v.<java.util.HashSet: boolean add(java.lang.Object)>(v);
v = v + 1;
goto label;
label:
v = new org.jvnet.hk.internal.IterableProviderImpl;
v = v.<org.jvnet.hk.internal.IterableProviderImpl: org.jvnet.hk.internal.ServiceLocatorImpl locator>;
v = v.<org.jvnet.hk.internal.IterableProviderImpl: java.lang.reflect.Type requiredType>;
v = v.<org.jvnet.hk.internal.IterableProviderImpl: org.glassfish.hk.api.Unqualified unqualified>;
v = v.<org.jvnet.hk.internal.IterableProviderImpl: org.glassfish.hk.api.Injectee originalInjectee>;
v = v.<org.jvnet.hk.internal.IterableProviderImpl: boolean isIterable>;
specialinvoke v.<org.jvnet.hk.internal.IterableProviderImpl: void <init>(org.jvnet.hk.internal.ServiceLocatorImpl,java.lang.reflect.Type,java.util.Set,org.glassfish.hk.api.Unqualified,org.glassfish.hk.api.Injectee,boolean)>(v, v, v, v, v, v);
return v;
}
public java.lang.Iterable handleIterator()
{
java.lang.Object[] v;
java.util.Set v, v;
java.lang.'annotation'.Annotation[] v;
java.util.List v;
java.lang.reflect.Type v;
org.jvnet.hk.internal.IterableProviderImpl$HandleIterable v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
int v;
java.lang.Object v;
org.jvnet.hk.internal.IterableProviderImpl v;
v := @this: org.jvnet.hk.internal.IterableProviderImpl;
specialinvoke v.<org.jvnet.hk.internal.IterableProviderImpl: void justInTime()>();
v = v.<org.jvnet.hk.internal.IterableProviderImpl: org.jvnet.hk.internal.ServiceLocatorImpl locator>;
v = v.<org.jvnet.hk.internal.IterableProviderImpl: java.lang.reflect.Type requiredType>;
v = v.<org.jvnet.hk.internal.IterableProviderImpl: java.util.Set requiredQualifiers>;
v = v.<org.jvnet.hk.internal.IterableProviderImpl: java.util.Set requiredQualifiers>;
v = interfaceinvoke v.<java.util.Set: int size()>();
v = newarray (java.lang.'annotation'.Annotation)[v];
v = interfaceinvoke v.<java.util.Set: java.lang.Object[] toArray(java.lang.Object[])>(v);
v = virtualinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.List getAllServiceHandles(java.lang.reflect.Type,java.lang.'annotation'.Annotation[])>(v, v);
v = staticinvoke <org.glassfish.hk.utilities.reflection.ReflectionHelper: java.lang.Object cast(java.lang.Object)>(v);
v = new org.jvnet.hk.internal.IterableProviderImpl$HandleIterable;
specialinvoke v.<org.jvnet.hk.internal.IterableProviderImpl$HandleIterable: void <init>(java.util.List)>(v);
return v;
}
public java.lang.String toString()
{
java.lang.reflect.Type v;
int v;
java.util.Set v;
java.lang.String v, v, v;
org.jvnet.hk.internal.IterableProviderImpl v;
v := @this: org.jvnet.hk.internal.IterableProviderImpl;
v = v.<org.jvnet.hk.internal.IterableProviderImpl: java.lang.reflect.Type requiredType>;
v = staticinvoke <org.glassfish.hk.utilities.reflection.Pretty: java.lang.String type(java.lang.reflect.Type)>(v);
v = v.<org.jvnet.hk.internal.IterableProviderImpl: java.util.Set requiredQualifiers>;
v = staticinvoke <org.glassfish.hk.utilities.reflection.Pretty: java.lang.String collection(java.util.Collection)>(v);
v = staticinvoke <java.lang.System: int identityHashCode(java.lang.Object)>(v);
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String,int)>(v, v, 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[])>("IterableProviderImpl(\u,\u,\u)");
return v;
}
}