MethodHandle getMethodHandle(final ReferenceKind referenceKind, final int referenceIndex) { _lookupKey.set(Tag.MethodHandle, referenceIndex, referenceKind); Entry entry = _entryMap.get(_lookupKey); if (entry == null) { entry = new MethodHandle(this, referenceKind, referenceIndex); } _lookupKey.clear(); return (MethodHandle)entry; }
protected ReferenceEntry(final ConstantPool cp, final Tag tag, final int typeInfoIndex, final int nameAndTypeDescriptorIndex) { super(cp); this.tag = tag; this.typeInfoIndex = typeInfoIndex; this.nameAndTypeDescriptorIndex = nameAndTypeDescriptorIndex; owner._newKey.set(tag, typeInfoIndex, nameAndTypeDescriptorIndex); owner._entryMap.put(owner._newKey.clone(), this); owner._newKey.clear(); }
public TypeInfo getTypeInfo(final Type<?> type) { final Utf8StringConstant name = getUtf8StringConstant(type.getInternalName()); if (type.isNested()) { referencedInnerTypes.add(type); final Type declaringType = type.getDeclaringType(); final MethodBase declaringMethod = type.getDeclaringMethod(); final String shortName = type.getShortName(); if (declaringType != null) { getTypeInfo(declaringType); } if (declaringMethod != null) { getMethodReference(declaringMethod); } if (!StringUtilities.isNullOrWhitespace(shortName)) { getUtf8StringConstant(shortName); } } _lookupKey.set(Tag.TypeInfo, name.index); Entry entry = _entryMap.get(_lookupKey); if (entry == null) { entry = new TypeInfo(this, name.index); } _lookupKey.clear(); return (TypeInfo)entry; }
public TypeInfo getTypeInfo(final Type<?> type) { final Utf8StringConstant name = getUtf8StringConstant(type.getInternalName()); if (type.isNested()) { referencedInnerTypes.add(type); final Type declaringType = type.getDeclaringType(); final MethodBase declaringMethod = type.getDeclaringMethod(); final String shortName = type.getShortName(); if (declaringType != null) { getTypeInfo(declaringType); } if (declaringMethod != null) { getMethodReference(declaringMethod); } if (!StringUtilities.isNullOrWhitespace(shortName)) { getUtf8StringConstant(shortName); } } _lookupKey.set(Tag.TypeInfo, name.index); Entry entry = _entryMap.get(_lookupKey); if (entry == null) { entry = new TypeInfo(this, name.index); } _lookupKey.clear(); return (TypeInfo)entry; }
public TypeInfo getTypeInfo(final Type<?> type) { final Utf8StringConstant name = getUtf8StringConstant(type.getInternalName()); if (type.isNested()) { referencedInnerTypes.add(type); final Type declaringType = type.getDeclaringType(); final MethodBase declaringMethod = type.getDeclaringMethod(); final String shortName = type.getShortName(); if (declaringType != null) { getTypeInfo(declaringType); } if (declaringMethod != null) { getMethodReference(declaringMethod); } if (!StringUtilities.isNullOrWhitespace(shortName)) { getUtf8StringConstant(shortName); } } _lookupKey.set(Tag.TypeInfo, name.index); Entry entry = _entryMap.get(_lookupKey); if (entry == null) { entry = new TypeInfo(this, name.index); } _lookupKey.clear(); return (TypeInfo)entry; }
@Override @SuppressWarnings("CloneDoesntCallSuperClone") protected Key clone() { final Key key = new Key(); key._tag = _tag; key._hashCode = _hashCode; key._intValue = _intValue; key._longValue = _longValue; key._stringValue1 = _stringValue1; key._stringValue2 = _stringValue2; key._refIndex1 = _refIndex1; key._refIndex2 = _refIndex2; return key; }
public FieldReference getFieldReference(final FieldInfo field) { final TypeInfo typeInfo = getTypeInfo(field.getDeclaringType()); final NameAndTypeDescriptor nameAndDescriptor = getNameAndTypeDescriptor( field.getName(), field.getErasedSignature() ); _lookupKey.set(Tag.FieldReference, typeInfo.index, nameAndDescriptor.index); Entry entry = _entryMap.get(_lookupKey); if (entry == null) { entry = new FieldReference(this, typeInfo.index, nameAndDescriptor.index); } _lookupKey.clear(); return (FieldReference)entry; }
public InterfaceMethodReference getInterfaceMethodReference(final MethodInfo method) { final TypeInfo typeInfo = getTypeInfo(method.getDeclaringType()); final NameAndTypeDescriptor nameAndDescriptor = getNameAndTypeDescriptor( method.getName(), method.getErasedSignature() ); _lookupKey.set(Tag.InterfaceMethodReference, typeInfo.index, nameAndDescriptor.index); Entry entry = _entryMap.get(_lookupKey); if (entry == null) { entry = new InterfaceMethodReference(this, typeInfo.index, nameAndDescriptor.index); } _lookupKey.clear(); return (InterfaceMethodReference)entry; }
public MethodReference getMethodReference(final MethodBase method) { final TypeInfo typeInfo = getTypeInfo(method.getDeclaringType()); final NameAndTypeDescriptor nameAndDescriptor = getNameAndTypeDescriptor( method.getName(), method.getErasedSignature() ); _lookupKey.set(Tag.MethodReference, typeInfo.index, nameAndDescriptor.index); Entry entry = _entryMap.get(_lookupKey); if (entry == null) { entry = new MethodReference(this, typeInfo.index, nameAndDescriptor.index); } _lookupKey.clear(); return (MethodReference)entry; }
public FieldReference getFieldReference(final FieldInfo field) { final TypeInfo typeInfo = getTypeInfo(field.getDeclaringType()); final NameAndTypeDescriptor nameAndDescriptor = getNameAndTypeDescriptor( field.getName(), field.getErasedSignature() ); _lookupKey.set(Tag.FieldReference, typeInfo.index, nameAndDescriptor.index); Entry entry = _entryMap.get(_lookupKey); if (entry == null) { entry = new FieldReference(this, typeInfo.index, nameAndDescriptor.index); } _lookupKey.clear(); return (FieldReference)entry; }
@Override @SuppressWarnings("CloneDoesntCallSuperClone") protected Key clone() { final Key key = new Key(); key._tag = _tag; key._hashCode = _hashCode; key._intValue = _intValue; key._longValue = _longValue; key._stringValue1 = _stringValue1; key._stringValue2 = _stringValue2; key._refIndex1 = _refIndex1; key._refIndex2 = _refIndex2; return key; }
@Override @SuppressWarnings("CloneDoesntCallSuperClone") protected Key clone() { final Key key = new Key(); key._tag = _tag; key._hashCode = _hashCode; key._intValue = _intValue; key._longValue = _longValue; key._stringValue1 = _stringValue1; key._stringValue2 = _stringValue2; key._refIndex1 = _refIndex1; key._refIndex2 = _refIndex2; return key; }
public InterfaceMethodReference getInterfaceMethodReference(final MethodInfo method) { final TypeInfo typeInfo = getTypeInfo(method.getDeclaringType()); final NameAndTypeDescriptor nameAndDescriptor = getNameAndTypeDescriptor( method.getName(), method.getErasedSignature() ); _lookupKey.set(Tag.InterfaceMethodReference, typeInfo.index, nameAndDescriptor.index); Entry entry = _entryMap.get(_lookupKey); if (entry == null) { entry = new InterfaceMethodReference(this, typeInfo.index, nameAndDescriptor.index); } _lookupKey.clear(); return (InterfaceMethodReference)entry; }
public MethodReference getMethodReference(final MethodBase method) { final TypeInfo typeInfo = getTypeInfo(method.getDeclaringType()); final NameAndTypeDescriptor nameAndDescriptor = getNameAndTypeDescriptor( method.getName(), method.getErasedSignature() ); _lookupKey.set(Tag.MethodReference, typeInfo.index, nameAndDescriptor.index); Entry entry = _entryMap.get(_lookupKey); if (entry == null) { entry = new MethodReference(this, typeInfo.index, nameAndDescriptor.index); } _lookupKey.clear(); return (MethodReference)entry; }
public InterfaceMethodReference getInterfaceMethodReference(final MethodInfo method) { final TypeInfo typeInfo = getTypeInfo(method.getDeclaringType()); final NameAndTypeDescriptor nameAndDescriptor = getNameAndTypeDescriptor( method.getName(), method.getErasedSignature() ); _lookupKey.set(Tag.InterfaceMethodReference, typeInfo.index, nameAndDescriptor.index); Entry entry = _entryMap.get(_lookupKey); if (entry == null) { entry = new InterfaceMethodReference(this, typeInfo.index, nameAndDescriptor.index); } _lookupKey.clear(); return (InterfaceMethodReference)entry; }
public MethodReference getMethodReference(final MethodBase method) { final TypeInfo typeInfo = getTypeInfo(method.getDeclaringType()); final NameAndTypeDescriptor nameAndDescriptor = getNameAndTypeDescriptor( method.getName(), method.getErasedSignature() ); _lookupKey.set(Tag.MethodReference, typeInfo.index, nameAndDescriptor.index); Entry entry = _entryMap.get(_lookupKey); if (entry == null) { entry = new MethodReference(this, typeInfo.index, nameAndDescriptor.index); } _lookupKey.clear(); return (MethodReference)entry; }
NameAndTypeDescriptor getNameAndTypeDescriptor(final String name, final String typeDescriptor) { final Utf8StringConstant utf8Name = getUtf8StringConstant(name); final Utf8StringConstant utf8Descriptor = getUtf8StringConstant(typeDescriptor); _lookupKey.set(Tag.NameAndTypeDescriptor, utf8Name.index, utf8Descriptor.index); Entry entry = _entryMap.get(_lookupKey); if (entry == null) { entry = new NameAndTypeDescriptor(this, utf8Name.index, utf8Descriptor.index); } _lookupKey.clear(); return (NameAndTypeDescriptor)entry; }