final Object object = BeansWrapper.getDefaultInstance().unwrap((TemplateModel) arguments.get(0));
if (object instanceof String) {
final String typeName = (String) object;
final JsonType jsonType = model.findJsonTypeDefinition(typeName);
return jsonSchemaForType(jsonType);
}
if (object instanceof ResourceRepresentationMetadata) {
ResourceRepresentationMetadata metadata = (ResourceRepresentationMetadata) object;
TypeMirror typeMirror = metadata.getDelegate();
final JsonType jsonType = model.findJsonTypeDefinition(typeMirror.toString());
return jsonSchemaForType(jsonType);
}
if (object instanceof TypeMirror) {
TypeMirror typeMirror = (TypeMirror) object;
final JsonType jsonType = model.findJsonTypeDefinition(typeMirror.toString());
return jsonSchemaForType(jsonType);
}
if (object instanceof JsonType) {
final JsonType jsonType = (JsonType) object;
return jsonSchemaForType(jsonType);
}
if (object instanceof ResourceEntityParameter) {
final ResourceEntityParameter restResourcePayload = (ResourceEntityParameter) object;
final JsonType jsonType = restResourcePayload.getJsonType();
return jsonSchemaForType(jsonType);
}
return null;
}