
pl.zientarski.DefaultReferenceNameProvider Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of JSONschema4-mapper Show documentation
Show all versions of JSONschema4-mapper Show documentation
The goal of this project is to provide comprehensive, feature-complete and well-tested mapper from Java classes to JSON schema format.
The newest version!
package pl.zientarski;
import java.lang.reflect.Type;
import java.lang.reflect.TypeVariable;
import java.util.List;
import static pl.zientarski.Utils.isPrimitiveTypeWrapper;
import static pl.zientarski.Utils.unwrap;
public class DefaultReferenceNameProvider implements ReferenceNameProvider {
protected String getPrefix() {
return "";
}
@Override
public String typeReferenceName(final Class> clazz, final List genericTypeArguments) {
final StringBuilder ref = new StringBuilder();
if (isPrimitiveTypeWrapper(clazz)) {
ref.append(unwrap(clazz).getSimpleName());
} else {
ref.append(clazz.getSimpleName());
}
appendGenericType(ref, genericTypeArguments);
return getPrefix() + ref.toString();
}
protected void appendGenericType(final StringBuilder ref, final List genericTypeArguments) {
if (genericTypeArguments == null || genericTypeArguments.size() == 0) {
return;
}
final Type removed = genericTypeArguments.remove(0);
ref.append("<");
if (removed instanceof TypeVariable) {
ref.append(((TypeVariable>) removed).getName());
} else {
ref.append(((Class>) removed).getSimpleName());
appendGenericType(ref, genericTypeArguments);
}
ref.append(">");
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy