+ public static ObjectNode buildPostOperation(final OperationDefinition operDef, final String moduleName,
+ final Optional<String> deviceName, final String parentName, final DefinitionNames definitionNames,
+ final OAversion oaversion) {
+ final ObjectNode postOperation = JsonNodeFactory.instance.objectNode();
+ final ArrayNode parameters = JsonNodeFactory.instance.arrayNode();
+ final String operName = operDef.getQName().getLocalName();
+ final String inputName = operName + INPUT_SUFFIX;
+
+ final InputSchemaNode input = operDef.getInput();
+ final OutputSchemaNode output = operDef.getOutput();
+ if (!input.getChildNodes().isEmpty()) {
+ final String discriminator = definitionNames.getDiscriminator(input);
+ final String clearDefName = parentName + "_" + operName + INPUT_SUFFIX;
+ final String defName = clearDefName + discriminator;
+ final String defTopName = clearDefName + TOP + discriminator;
+ insertRequestBodyParameter(parameters, postOperation, defTopName, defName, inputName, oaversion);
+ } else {
+ final ObjectNode payload = JsonNodeFactory.instance.objectNode();
+ final ObjectNode jsonSchema = JsonNodeFactory.instance.objectNode();
+ final ObjectNode properties = JsonNodeFactory.instance.objectNode();
+ final ObjectNode inputSchema = JsonNodeFactory.instance.objectNode();
+ inputSchema.put(TYPE_KEY, OBJECT);
+ properties.set(INPUT_KEY, inputSchema);
+ jsonSchema.put(TYPE_KEY, OBJECT);
+ jsonSchema.set(PROPERTIES_KEY, properties);
+ if (oaversion.equals(OAversion.V3_0)) {
+ final ObjectNode content = JsonNodeFactory.instance.objectNode();
+ final ObjectNode jsonTypeValue = JsonNodeFactory.instance.objectNode();
+ jsonTypeValue.set(SCHEMA_KEY, jsonSchema);
+ content.set(MediaType.APPLICATION_JSON, jsonTypeValue);
+
+ final ObjectNode xmlSchema = JsonNodeFactory.instance.objectNode();
+ xmlSchema.put(TYPE_KEY, OBJECT);
+ final ObjectNode xml = JsonNodeFactory.instance.objectNode();
+ xml.put(NAME_KEY, INPUT);
+ xmlSchema.set(XML_KEY, xml);
+ final ObjectNode xmlTypeValue = JsonNodeFactory.instance.objectNode();
+ xmlTypeValue.set(SCHEMA_KEY, xmlSchema);
+ content.set(MediaType.APPLICATION_XML, xmlTypeValue);
+
+ payload.set(CONTENT_KEY, content);
+ payload.put(DESCRIPTION_KEY, inputName);
+ postOperation.set(REQUEST_BODY_KEY, payload);
+ } else {
+ payload.put(IN_KEY, BODY);
+ payload.put(NAME_KEY, inputName);
+ payload.set(SCHEMA_KEY, jsonSchema);
+ parameters.add(payload);
+ }