public String getFragment(Type type) { StringBuilder uriBuilder = new StringBuilder(32); createFragment(type, uriBuilder); return uriBuilder.toString(); }
protected void createFragment(Type type, StringBuilder uriBuilder) { if (type instanceof Class<?>) { Class<?> clazz = (Class<?>) type; createFragmentForClass(clazz, uriBuilder); } else if (type instanceof TypeVariable<?>) { TypeVariable<?> variable = (TypeVariable<?>) type; createFragmentForTypeVariable(variable, uriBuilder); } else if (type instanceof GenericArrayType) { createFragment(((GenericArrayType) type).getGenericComponentType(), uriBuilder); uriBuilder.append("[]"); } else { throw new IllegalStateException("Unexpected type: " + type); } }
protected void createFragmentForTypeVariable(TypeVariable<?> variable, StringBuilder uriBuilder) { Object declaration = variable.getGenericDeclaration(); if (declaration instanceof Type) { Type declaringType = (Type) declaration; createFragment(declaringType, uriBuilder); } else if (declaration instanceof Member) { Member member = (Member) declaration; createFragmentForMember(member, uriBuilder); } else { throw new IllegalArgumentException(variable + " / " + declaration); } uriBuilder.append('/'); uriBuilder.append(variable.getName()); }
public URI getFullURI(Type type) { StringBuilder uriBuilder = createURIBuilder(); createResourceURI(type, uriBuilder); uriBuilder.append('#'); createFragment(type, uriBuilder); return createURI(uriBuilder); }
public URI getFullURI(Type type) { StringBuilder uriBuilder = createURIBuilder(); createResourceURI(type, uriBuilder); uriBuilder.append('#'); createFragment(type, uriBuilder); return createURI(uriBuilder); }