com.reprezen.genflow.common.jsonschema.builder.ReferenceTreatmentNode.xtend Maven / Gradle / Ivy
package com.reprezen.genflow.common.jsonschema.builder
import com.fasterxml.jackson.databind.node.ObjectNode
import com.reprezen.genflow.common.jsonschema.JsonSchemaHelper
import com.reprezen.rapidml.ReferenceElement
import com.reprezen.rapidml.ReferenceProperty
import com.reprezen.rapidml.ReferenceTreatment
abstract class ReferenceTreatmentNode extends PropertyNode {
extension JsonSchemaHelper = new JsonSchemaHelper()
new(JsonSchemaNodeFactory director, T element) {
super(director, element)
}
def inlineOrAddTopLevelNode(ObjectNode parentNode) {
return write(parentNode)
}
override getName() {
getReferencedProperty(element).name
}
override String getPropertyDocumentation() {
if (element.referenceElement instanceof ReferenceProperty) {
return getDocumentation(element.referenceElement as ReferenceProperty)
}
return ""
}
override int getMinOccurs() {
return getReferencedProperty().minOccurs
}
override int getMaxOccurs() {
return getReferencedProperty().maxOccurs
}
def ReferenceElement getReferencedProperty() {
element.referenceElement
}
override getBaseFeature() {
if (element.referenceElement instanceof ReferenceProperty) {
return element.referenceElement as ReferenceProperty
}
null
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy