com.reprezen.genflow.common.jsonschema.builder.xchange.InteropJsonSchemaNodeFactory Maven / Gradle / Ivy
package com.reprezen.genflow.common.jsonschema.builder.xchange;
import com.fasterxml.jackson.databind.node.ObjectNode;
import com.reprezen.genflow.common.jsonschema.builder.NamedSchemaNode;
import com.reprezen.genflow.common.jsonschema.builder.ObjectResourceNode;
import com.reprezen.genflow.common.jsonschema.builder.StructureNode;
import com.reprezen.genflow.common.jsonschema.builder.xchange.XChangeJsonSchemaNodeFactory;
import com.reprezen.rapidml.CollectionResource;
import com.reprezen.rapidml.ServiceDataResource;
import com.reprezen.rapidml.Structure;
@SuppressWarnings("all")
public class InteropJsonSchemaNodeFactory extends XChangeJsonSchemaNodeFactory {
public InteropJsonSchemaNodeFactory() {
super();
}
@Override
public NamedSchemaNode createStructureNode(final Structure element) {
return new StructureNode(this, element) {
@Override
public void writeBody(final ObjectNode body) {
this.writeBasicObject(body);
final ObjectNode propertiesNode = this.writeProperties(body);
final ObjectNode links = propertiesNode.putObject(InteropJsonSchemaNodeFactory.this.getRapidLinkPropertyName());
this.factory.getDefinitionsNode().addReferenceToDefinition(links, InteropJsonSchemaNodeFactory.this.createRapidLinkNode());
}
};
}
@Override
public NamedSchemaNode createObjectResourceNode(final T element) {
return new ObjectResourceNode(this, element) {
@Override
protected boolean useDefaultRealization() {
return (!(this.element instanceof CollectionResource));
}
};
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy