JsonHyperSchema hyperSchema = rawClass.getAnnotation(JsonHyperSchema.class);
String pathStart = hyperSchema.pathStart();
Link[] links = hyperSchema.links();
LinkDescriptionObject[] linkDescriptionObjects = new LinkDescriptionObject[links.length];
for(int i = 0; i < links.length; i++) {
Link link = links[i];
linkDescriptionObjects[i] = new LinkDescriptionObject()
.setHref(pathStart + link.href())
.setRel(link.rel())
.setMethod(ignoreDefaults && "GET".equals(link.method()) ? null : link.method())
.setEnctype(ignoreDefaults && "application/json".equals(link.enctype()) ? null : link.enctype())
.setTargetSchema(fetchSchema(link.targetSchema()))
.setSchema(fetchSchema(link.schema()))
.setMediaType(ignoreDefaults && "application/json".equals(link.mediaType()) ? null : link.mediaType())
.setTitle(link.title());
}
SimpleTypeSchema simpleTypeSchema = schema.asSimpleTypeSchema();
simpleTypeSchema.setLinks(linkDescriptionObjects);
if(pathStart != null && pathStart.length() != 0)
simpleTypeSchema.setPathStart(pathStart);