public boolean hasModel(String name) { for (MApiModelBuilder m : models.values()) { if (name.equals(m.getName())) { return true; } } return false; }
public MApiModelBuilder tryGetModel(String name) { if (Strings.isEmpty(name)) { return null; } for (MApiModelBuilder m : models.values()) { if (name.equalsIgnoreCase(m.getName())) { return m; } } return null; }
protected void postProcessModelInheritance(ApiMetadataContext context, ApiMetadataBuilder m, String name, MApiModelBuilder model) { if(null != model.getJavaTypes()) { for(Class<?> javaType : model.getJavaTypes()) { //already processed. if (null != model.getBaseName()) { return; } Class<?> c = javaType.getSuperclass(); if (Object.class.equals(c) || model.getJavaTypes().contains(c)) { return; } MApiModelBuilder parent = m.tryGetModel(c); if (null != parent) { //the parent's inheritance must be processed firstly. postProcessModelInheritance(context, m, name, parent); //process child. model.setBaseName(parent.getName()); //removes the properties inherited from base model. parent.getProperties().keySet().forEach((p) -> { model.removeProperty(p); }); } } } }
protected void processModel(ApiMetadataContext context, MApiModelBuilder m) { ModelConfig mc = null; for(Class<?> javaType : m.getJavaTypes()) { mc = context.getConfig().getModelConfig(javaType); if(null != mc) { break; } } if(null == mc) { mc = context.getConfig().getModelConfig(m.getName()); } //configure the model properties. for(MApiPropertyBuilder p : m.getProperties().values()) { ModelConfig.Property c = null == mc ? null : mc.getProperty(p.getName()); trySetDoc(p, c, c); } }