Search in sources :

Example 1 with Member

use of com.webcohesion.enunciate.modules.jackson.model.Member in project enunciate by stoicflame.

the class DataTypeImpl method getPropertyMetadata.

@Override
public Map<String, String> getPropertyMetadata() {
    Map<String, String> propertyMetadata = new LinkedHashMap<String, String>();
    boolean showConstraints = false;
    boolean showDefaultValue = false;
    for (Member member : this.typeDefinition.getMembers()) {
        if (BeanValidationUtils.hasConstraints(member, member.isRequired())) {
            showConstraints = true;
        }
        if (member.getDefaultValue() != null) {
            showDefaultValue = true;
        }
    }
    if (showConstraints) {
        propertyMetadata.put("constraints", "constraints");
    }
    if (showDefaultValue) {
        propertyMetadata.put("defaultValue", "default");
    }
    return propertyMetadata;
}
Also used : Member(com.webcohesion.enunciate.modules.jackson.model.Member) LinkedHashMap(java.util.LinkedHashMap)

Example 2 with Member

use of com.webcohesion.enunciate.modules.jackson.model.Member in project enunciate by stoicflame.

the class ObjectDataTypeImpl method getProperties.

@Override
public List<? extends Property> getProperties() {
    List<Member> members = this.typeDefinition.getMembers();
    ArrayList<Property> properties;
    if (this.typeDefinition.getTypeIdInclusion() == JsonTypeInfo.As.PROPERTY) {
        properties = new ArrayList<Property>(members.size() + 1);
        if (this.typeDefinition.getTypeIdProperty() != null && members.stream().noneMatch(m -> this.typeDefinition.getTypeIdProperty().equals(m.getName()))) {
            properties.add(new TypeReferencePropertyImpl(this.typeDefinition.getTypeIdProperty()));
        }
    } else {
        properties = new ArrayList<Property>(members.size());
    }
    FacetFilter facetFilter = this.registrationContext.getFacetFilter();
    for (Member member : members) {
        if (!facetFilter.accept(member)) {
            continue;
        }
        if (member.getChoices().size() > 1) {
            JsonTypeInfo.As inclusion = member.getSubtypeIdInclusion();
            if (inclusion == JsonTypeInfo.As.WRAPPER_ARRAY || inclusion == JsonTypeInfo.As.WRAPPER_OBJECT) {
                for (Member choice : member.getChoices()) {
                    properties.add(new PropertyImpl(choice, registrationContext, member.isCollectionType()));
                }
            } else {
                properties.add(new PropertyImpl(member, registrationContext));
            }
        } else {
            properties.add(new PropertyImpl(member, registrationContext));
        }
    }
    return properties;
}
Also used : TypeDefinition(com.webcohesion.enunciate.modules.jackson.model.TypeDefinition) java.util(java.util) JsonType(com.webcohesion.enunciate.modules.jackson.model.types.JsonType) TypeElement(javax.lang.model.element.TypeElement) JsonClassType(com.webcohesion.enunciate.modules.jackson.model.types.JsonClassType) ApiRegistrationContext(com.webcohesion.enunciate.api.ApiRegistrationContext) com.webcohesion.enunciate.api.datatype(com.webcohesion.enunciate.api.datatype) FacetFilter(com.webcohesion.enunciate.facets.FacetFilter) JsonTypeFactory(com.webcohesion.enunciate.modules.jackson.model.types.JsonTypeFactory) TypeMirror(javax.lang.model.type.TypeMirror) JsonTypeInfo(com.fasterxml.jackson.annotation.JsonTypeInfo) DeclaredType(javax.lang.model.type.DeclaredType) Member(com.webcohesion.enunciate.modules.jackson.model.Member) ObjectTypeDefinition(com.webcohesion.enunciate.modules.jackson.model.ObjectTypeDefinition) DecoratedTypeMirror(com.webcohesion.enunciate.javac.decorations.type.DecoratedTypeMirror) FacetFilter(com.webcohesion.enunciate.facets.FacetFilter) JsonTypeInfo(com.fasterxml.jackson.annotation.JsonTypeInfo) Member(com.webcohesion.enunciate.modules.jackson.model.Member)

Aggregations

Member (com.webcohesion.enunciate.modules.jackson.model.Member)2 JsonTypeInfo (com.fasterxml.jackson.annotation.JsonTypeInfo)1 ApiRegistrationContext (com.webcohesion.enunciate.api.ApiRegistrationContext)1 com.webcohesion.enunciate.api.datatype (com.webcohesion.enunciate.api.datatype)1 FacetFilter (com.webcohesion.enunciate.facets.FacetFilter)1 DecoratedTypeMirror (com.webcohesion.enunciate.javac.decorations.type.DecoratedTypeMirror)1 ObjectTypeDefinition (com.webcohesion.enunciate.modules.jackson.model.ObjectTypeDefinition)1 TypeDefinition (com.webcohesion.enunciate.modules.jackson.model.TypeDefinition)1 JsonClassType (com.webcohesion.enunciate.modules.jackson.model.types.JsonClassType)1 JsonType (com.webcohesion.enunciate.modules.jackson.model.types.JsonType)1 JsonTypeFactory (com.webcohesion.enunciate.modules.jackson.model.types.JsonTypeFactory)1 java.util (java.util)1 LinkedHashMap (java.util.LinkedHashMap)1 TypeElement (javax.lang.model.element.TypeElement)1 DeclaredType (javax.lang.model.type.DeclaredType)1 TypeMirror (javax.lang.model.type.TypeMirror)1