public MApiModelBuilder toApiModel(MetaApi api, MetaModel mm) {
MApiModelBuilder m = new MApiModelBuilder();
MetaUtils.copyNamed(mm, m);
if(null != mm.getMappingClass()) {
m.addJavaType(mm.getMappingClass());
}
mm.getProperties().values().forEach(mp -> {
MApiPropertyBuilder p = new MApiPropertyBuilder();
MetaUtils.copyNamed(mp, p);
mp.setApiProperty(p);
p.setType(mp.getResolvedType());
p.setFormat(mp.getFormat());
p.setRequired(mp.getRequired());
p.setReadOnly(mp.getReadOnly());
p.setFile(mp.isFile());
p.setBeanProperty(mp.getMappingProperty());
p.setDefaultValue(mp.getDefaults());
p.setEnumValues(mp.getEnums());
if(p.isReadOnly()) {
p.setRequired(false);
}
MApiValidationBuilder v = new MApiValidationBuilder();
p.setValidation(v);
MetaUtils.tryCopyValidation(mp, v);
MetaUtils.tryCopyValidation(mp.getResolvedFormat(), v);
m.addProperty(p);
});
mm.setApiModel(m);
return m;
}