private String getPathAndTypeStr(TypeReference typeRef) { String name = typeRef.getName(); String packageStr = typeRef.getPackageName(); TypeReference mostOuterTypeRef = getMostOuterTypeRef(typeRef); String mostOuterTypeName = mostOuterTypeRef.getName(); if (name != null && packageStr != null && mostOuterTypeName != null && name.trim().length() > 0 && mostOuterTypeName.trim().length() > 0) { String pathStr = packageStr.replaceAll("\\.", "/") + "/" + mostOuterTypeName; String typeStr = packageStr + "." + name.replace(".", "$"); return pathStr + "|" + typeStr; } return null; }
private TypeReference getMostOuterTypeRef(TypeReference typeRef) { int maxDecraringDepth = typeRef.getFullName().split("(\\.|\\$)").length; for (int i = 0; i < maxDecraringDepth; i++) { TypeReference declaringTypeRef = typeRef.getDeclaringType(); if (declaringTypeRef == null) { break; } else { typeRef = declaringTypeRef; } } if (typeRef.getName().contains("$")) { return getMostOuterTypeRefBySlowLookuping(typeRef); } return typeRef; }
private TypeReference getMostOuterTypeRefBySlowLookuping(TypeReference typeRef) { String name = typeRef.getName(); if (name == null) return typeRef; String packageName = typeRef.getPackageName(); if (packageName == null) return typeRef; String[] nameParts = name.split("\\$"); String newName = ""; String sep = ""; for (int i = 0; i < nameParts.length - 1; i++) { newName = newName + sep + nameParts[i]; sep = "$"; String newInternalName = packageName.replaceAll("\\.", "/") + "/" + newName; TypeReference newTypeRef = metadataSystem.lookupType(newInternalName); if (newTypeRef != null) { TypeDefinition newTypeDef = newTypeRef.resolve(); if (newTypeDef != null) { return newTypeRef; } } } return typeRef; }
@Override public String getName() { return _genericDefinition.getName(); }
@Override public String getName() { return _genericTypeDefinition.getName(); }
@Override public String getName() { exitIfNeeded(); return _genericDefinition.getName(); }
@Override public String getName() { exitIfNeeded(); return _genericDefinition.getName(); }
public String formatTypeName(final TypeReference type) { return VerifyArgument.notNull(type, "type").getName(); }
protected StringBuilder appendSignature(final StringBuilder sb) { if (isGenericParameter()) { sb.append('T'); sb.append(getName()); sb.append(';'); return sb; } return appendClassSignature(sb); }
protected StringBuilder appendSignature(final StringBuilder sb) { if (isGenericParameter()) { sb.append('T'); sb.append(getName()); sb.append(';'); return sb; } return appendClassSignature(sb); }
static TypeDefinition getNestedType(final List<TypeDefinition> candidates, final TypeReference reference) { for (int i = 0, n = candidates.size(); i < n; i++) { final TypeDefinition candidate = candidates.get(i); if (StringComparator.Ordinal.equals(candidate.getName(), reference.getName())) { return candidate; } } return null; }
protected StringBuilder appendSignature(final StringBuilder sb) { if (isGenericParameter()) { sb.append('T'); sb.append(getName()); sb.append(';'); return sb; } return appendClassSignature(sb); }
static TypeDefinition getNestedType(final List<TypeDefinition> candidates, final TypeReference reference) { for (int i = 0, n = candidates.size(); i < n; i++) { final TypeDefinition candidate = candidates.get(i); if (StringComparator.Ordinal.equals(candidate.getName(), reference.getName())) { return candidate; } } return null; }
static TypeDefinition getNestedType(final List<TypeDefinition> candidates, final TypeReference reference) { for (int i = 0, n = candidates.size(); i < n; i++) { final TypeDefinition candidate = candidates.get(i); if (StringComparator.Ordinal.equals(candidate.getName(), reference.getName())) { return candidate; } } return null; }
public String typeToString(final TypeReference type, final boolean includePackage) { VerifyArgument.notNull(type, "type"); return includePackage ? type.getFullName() : type.getName(); }
ArrayType(final TypeReference elementType) { _elementType = VerifyArgument.notNull(elementType, "elementType"); setName(elementType.getName() + "[]"); }
@Override protected StringBuilder appendBriefDescription(final StringBuilder sb) { sb.append(getFullName()); final TypeReference upperBound = getExtendsBound(); if (upperBound != null && !upperBound.equals(BuiltinTypes.Object)) { sb.append(" extends "); if (upperBound.isGenericParameter() || upperBound.equals(getDeclaringType())) { return sb.append(upperBound.getName()); } return upperBound.appendErasedDescription(sb); } return sb; }