All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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