Map<String,Model> modelMap = new HashMap<String, Model>();
Map<String,JsonSchema> properties = new LinkedHashMap<String, JsonSchema>();
for (Map.Entry<String, JsonSchema> entry : objectSchema.getProperties().entrySet())
{
JsonSchema schema = entry.getValue();
if(schema.isObjectSchema())
{
JsonSchema temp = new ReferenceSchema();
temp.set$ref(schema.getId());
properties.put(entry.getKey(),temp);
modelMap.putAll(buildModels(schema.getId(),schema.asObjectSchema()));
}
else if(schema.isArraySchema() && schema.asArraySchema().getItems().isSingleItems() && schema.asArraySchema().getItems().asSingleItems().getSchema().isObjectSchema())
{
ObjectSchema entrySchema = (ObjectSchema) schema.asArraySchema().getItems().asSingleItems().getSchema();
ArraySchema arraySchema = new ArraySchema();
JsonSchema temp = new ReferenceSchema();
temp.set$ref(entrySchema.getId());
arraySchema.setItemsSchema(temp);
properties.put(entry.getKey(),arraySchema);
modelMap.putAll(buildModels(entrySchema.getId(), entrySchema));
}