private String createUniqueStrForReference(Object reference) { String uniqueStr = null; if (reference instanceof TypeReference) { TypeReference type = (TypeReference) reference; String pathAndTypeStr = getPathAndTypeStr(type); if (pathAndTypeStr != null) { uniqueStr = "type|" + pathAndTypeStr; } } else if (reference instanceof MethodReference) { MethodReference method = (MethodReference) reference; String pathAndTypeStr = getPathAndTypeStr(method.getDeclaringType()); if (pathAndTypeStr != null) { uniqueStr = "method|" + pathAndTypeStr + "|" + method.getName() + "|" + method.getErasedSignature(); } } else if (reference instanceof FieldReference) { FieldReference field = (FieldReference) reference; String pathAndTypeStr = getPathAndTypeStr(field.getDeclaringType()); if (pathAndTypeStr != null) { uniqueStr = "field|" + pathAndTypeStr + "|" + field.getName(); } } return uniqueStr; }
public FieldDefinition resolve() { final TypeReference declaringType = getDeclaringType(); if (declaringType == null) { throw ContractUtils.unsupported(); } return declaringType.resolve(this); }
public FieldDefinition resolve() { final TypeReference declaringType = getDeclaringType(); if (declaringType == null) { throw ContractUtils.unsupported(); } return declaringType.resolve(this); }
public FieldDefinition resolve() { final TypeReference declaringType = getDeclaringType(); if (declaringType == null) { throw ContractUtils.unsupported(); } return declaringType.resolve(this); }
@Override public boolean isEquivalentTo(final MemberReference member) { if (super.isEquivalentTo(member)) { return true; } if (member instanceof FieldReference) { final FieldReference field = (FieldReference) member; return StringUtilities.equals(field.getName(), this.getName()) && MetadataResolver.areEquivalent(field.getDeclaringType(), this.getDeclaringType()); } return false; }
@Override public boolean isEquivalentTo(final MemberReference member) { if (super.isEquivalentTo(member)) { return true; } if (member instanceof FieldReference) { final FieldReference field = (FieldReference) member; return StringUtilities.equals(field.getName(), this.getName()) && MetadataResolver.areEquivalent(field.getDeclaringType(), this.getDeclaringType()); } return false; }
@Override public boolean isEquivalentTo(final MemberReference member) { if (super.isEquivalentTo(member)) { return true; } if (member instanceof FieldReference) { final FieldReference field = (FieldReference) member; return StringUtilities.equals(field.getName(), this.getName()) && MetadataResolver.areEquivalent(field.getDeclaringType(), this.getDeclaringType()); } return false; }
@Override public FieldDefinition resolve(final FieldReference field) { final TypeDefinition declaringType = VerifyArgument.notNull(field, "field").getDeclaringType().resolve(); if (declaringType == null) { return null; } return getField(declaringType, field); }
@Override public FieldDefinition resolve(final FieldReference field) { final TypeDefinition declaringType = VerifyArgument.notNull(field, "field").getDeclaringType().resolve(); if (declaringType == null) { return null; } return getField(declaringType, field); }
public int getFlags(FieldReference fr) { TypeFieldStats fs = get(fr.getDeclaringType()); return fs == null ? UNRESOLVED : fs.getFlags(fr.getName()); }
@Override public FieldDefinition resolve(final FieldReference field) { final TypeDefinition declaringType = VerifyArgument.notNull(field, "field").getDeclaringType().resolve(); if (declaringType == null) { return null; } return getField(declaringType, field); }
private boolean isStaticFieldAccess(Node n, TypeDefinition td) { if(!Nodes.isOp(n, AstCode.GetStatic) && !Nodes.isOp(n, AstCode.PutStatic)) return false; FieldReference fr = (FieldReference)((Expression)n).getOperand(); return fr.getDeclaringType().isEquivalentTo(td); } }
public static FieldReference asMemberOf(final FieldReference field, final TypeReference baseType) { VerifyArgument.notNull(field, "field"); VerifyArgument.notNull(baseType, "baseType"); final Map<TypeReference, TypeReference> map = adapt(field.getDeclaringType(), baseType); return TypeSubstitutionVisitor.instance().visitField(field, map); }
static TypeReference getFieldType(final FieldReference field) { final FieldDefinition resolvedField = field.resolve(); if (resolvedField != null) { final FieldReference asMember = MetadataHelper.asMemberOf(resolvedField, field.getDeclaringType()); return asMember.getFieldType(); } return substituteTypeArguments(field.getFieldType(), field); }
public static FieldReference asMemberOf(final FieldReference field, final TypeReference baseType) { VerifyArgument.notNull(field, "field"); VerifyArgument.notNull(baseType, "baseType"); final Map<TypeReference, TypeReference> map = adapt(field.getDeclaringType(), baseType); return TypeSubstitutionVisitor.instance().visitField(field, map); }
static TypeReference getFieldType(final FieldReference field) { final FieldDefinition resolvedField = field.resolve(); if (resolvedField != null) { final FieldReference asMember = MetadataHelper.asMemberOf(resolvedField, field.getDeclaringType()); return asMember.getFieldType(); } return substituteTypeArguments(field.getFieldType(), field); }
public static FieldReference asMemberOf(final FieldReference field, final TypeReference baseType) { VerifyArgument.notNull(field, "field"); VerifyArgument.notNull(baseType, "baseType"); final Map<TypeReference, TypeReference> map = adapt(field.getDeclaringType(), baseType); return TypeSubstitutionVisitor.instance().visitField(field, map); }
public static void writeField(final ITextOutput writer, final FieldReference field) { VerifyArgument.notNull(field, "field"); VerifyArgument.notNull(writer, "writer"); final Stack<TypeReference> typeStack = new Stack<>(); formatType(writer, field.getDeclaringType(), NameSyntax.DESCRIPTOR, false, typeStack); writer.writeDelimiter("."); writer.writeReference(field.getName(), field); writer.writeDelimiter(":"); formatType(writer, field.getFieldType(), NameSyntax.SIGNATURE, false, typeStack); }
public static void writeField(final ITextOutput writer, final FieldReference field) { VerifyArgument.notNull(field, "field"); VerifyArgument.notNull(writer, "writer"); final Stack<TypeReference> typeStack = new Stack<>(); formatType(writer, field.getDeclaringType(), NameSyntax.DESCRIPTOR, false, typeStack); writer.writeDelimiter("."); writer.writeReference(field.getName(), field); writer.writeDelimiter(":"); formatType(writer, field.getFieldType(), NameSyntax.SIGNATURE, false, typeStack); }
public static void writeField(final ITextOutput writer, final FieldReference field) { VerifyArgument.notNull(field, "field"); VerifyArgument.notNull(writer, "writer"); final Stack<TypeReference> typeStack = new Stack<>(); formatType(writer, field.getDeclaringType(), NameSyntax.DESCRIPTOR, false, typeStack); writer.writeDelimiter("."); writer.writeReference(field.getName(), field); writer.writeDelimiter(":"); formatType(writer, field.getFieldType(), NameSyntax.SIGNATURE, false, typeStack); }