-/*\r
- * Copyright © 2017-2018 AT&T Intellectual Property.\r
- * Modifications Copyright © 2018 IBM.\r
- *\r
- * Licensed under the Apache License, Version 2.0 (the "License");\r
- * you may not use this file except in compliance with the License.\r
- * You may obtain a copy of the License at\r
- *\r
- * http://www.apache.org/licenses/LICENSE-2.0\r
- *\r
- * Unless required by applicable law or agreed to in writing, software\r
- * distributed under the License is distributed on an "AS IS" BASIS,\r
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
- * See the License for the specific language governing permissions and\r
- * limitations under the License.\r
- */\r
-\r
-package org.onap.ccsdk.apps.controllerblueprints.service.common;\r
-\r
-import io.swagger.models.*;\r
-import io.swagger.models.parameters.BodyParameter;\r
-import io.swagger.models.parameters.Parameter;\r
-import io.swagger.models.properties.*;\r
-import org.apache.commons.collections.MapUtils;\r
-import org.apache.commons.lang3.BooleanUtils;\r
-import org.onap.ccsdk.apps.controllerblueprints.core.BluePrintConstants;\r
-import org.onap.ccsdk.apps.controllerblueprints.core.BluePrintTypes;\r
-import org.onap.ccsdk.apps.controllerblueprints.core.data.PropertyDefinition;\r
-import org.onap.ccsdk.apps.controllerblueprints.core.data.ServiceTemplate;\r
-\r
-import java.util.*;\r
-\r
-/**\r
- * SwaggerGenerator.java Purpose: Provide Service to generate service template input schema definition and Sample Json\r
- * generation.\r
- *\r
- * @author Brinda Santh\r
- * @version 1.0\r
- */\r
-@Deprecated\r
-public class SwaggerGenerator {\r
-\r
- private ServiceTemplate serviceTemplate;\r
- public static final String INPUTS="inputs";\r
-\r
- /**\r
- * This is a SwaggerGenerator constructor\r
- */\r
- public SwaggerGenerator(ServiceTemplate serviceTemplate) {\r
- this.serviceTemplate = serviceTemplate;\r
- }\r
-\r
- /**\r
- * This is a generateSwagger\r
- *\r
- * @return String\r
- */\r
- public String generateSwagger() {\r
- \r
- Swagger swagger = new Swagger().info(getInfo());\r
-\r
- swagger.setPaths(getPaths());\r
- swagger.setDefinitions(getDefinition());\r
-\r
-\r
- return swagger.toString();\r
- }\r
-\r
- private Info getInfo() {\r
- Info info = new Info();\r
- Contact contact = new Contact();\r
- contact.setName(serviceTemplate.getMetadata().get(BluePrintConstants.METADATA_TEMPLATE_AUTHOR));\r
- info.setContact(contact);\r
- info.setTitle(serviceTemplate.getMetadata().get(BluePrintConstants.METADATA_TEMPLATE_NAME));\r
- info.setDescription(serviceTemplate.getDescription());\r
- info.setVersion(serviceTemplate.getMetadata().get(BluePrintConstants.METADATA_TEMPLATE_VERSION));\r
- return info;\r
- }\r
-\r
- private Map<String, Path> getPaths() {\r
- Map<String, Path> paths = new HashMap<>();\r
- Path path = new Path();\r
- Operation post = new Operation();\r
- post.setOperationId("configure");\r
- post.setConsumes(Arrays.asList("application/json", "application/xml"));\r
- post.setProduces(Arrays.asList("application/json", "application/xml"));\r
- List<Parameter> parameters = new ArrayList<>();\r
- Parameter in = new BodyParameter().schema(new RefModel("#/definitions/inputs"));\r
- in.setRequired(true);\r
- in.setName(INPUTS);\r
- parameters.add(in);\r
- post.setParameters(parameters);\r
-\r
- Map<String, Response> responses = new HashMap<>();\r
- Response response = new Response().description("Success");\r
- responses.put("200", response);\r
-\r
- Response failureResponse = new Response().description("Failure");\r
- responses.put("400", failureResponse);\r
- post.setResponses(responses);\r
-\r
- path.setPost(post);\r
- paths.put("/operations/config-selfservice-api:configure", path);\r
- return paths;\r
- }\r
-\r
- private Map<String, Model> getDefinition() {\r
- Map<String, Model> models = new HashMap<>();\r
-\r
- ModelImpl inputmodel = new ModelImpl();\r
- inputmodel.setTitle(INPUTS);\r
- serviceTemplate.getTopologyTemplate().getInputs().forEach((propertyName, property) -> {\r
- Property defProperty = getPropery(propertyName, property);\r
- inputmodel.property(propertyName, defProperty);\r
- });\r
- models.put(INPUTS, inputmodel);\r
-\r
- if (MapUtils.isNotEmpty(serviceTemplate.getDataTypes())) {\r
- serviceTemplate.getDataTypes().forEach((name, dataType) -> {\r
- ModelImpl model = new ModelImpl();\r
- model.setDescription(dataType.getDescription());\r
- if (dataType != null && MapUtils.isNotEmpty(dataType.getProperties())) {\r
-\r
- dataType.getProperties().forEach((propertyName, property) -> {\r
- Property defProperty = getPropery(propertyName, property);\r
- model.addProperty(propertyName, defProperty);\r
- });\r
- }\r
- models.put(name, model);\r
- });\r
- }\r
- return models;\r
-\r
- }\r
-\r
- private Property getPropery(String name, PropertyDefinition propertyDefinition) {\r
- Property defProperty = null;\r
-\r
- if (BluePrintTypes.validPrimitiveTypes().contains(propertyDefinition.getType())) {\r
- if (BluePrintConstants.DATA_TYPE_BOOLEAN.equals(propertyDefinition.getType())) {\r
- defProperty = new BooleanProperty();\r
- } else if (BluePrintConstants.DATA_TYPE_INTEGER.equals(propertyDefinition.getType())) {\r
- StringProperty stringProperty = new StringProperty();\r
- stringProperty.setType("integer");\r
- defProperty = stringProperty;\r
- } else if (BluePrintConstants.DATA_TYPE_FLOAT.equals(propertyDefinition.getType())) {\r
- StringProperty stringProperty = new StringProperty();\r
- stringProperty.setFormat("float");\r
- defProperty = stringProperty;\r
- } else if (BluePrintConstants.DATA_TYPE_TIMESTAMP.equals(propertyDefinition.getType())) {\r
- DateTimeProperty dateTimeProperty = new DateTimeProperty();\r
- dateTimeProperty.setFormat("date-time");\r
- defProperty = dateTimeProperty;\r
- } else {\r
- defProperty = new StringProperty();\r
- }\r
- } else if (BluePrintTypes.validCollectionTypes().contains(propertyDefinition.getType())) {\r
- ArrayProperty arrayProperty = new ArrayProperty();\r
- if (propertyDefinition.getEntrySchema() != null) {\r
- String entrySchema = propertyDefinition.getEntrySchema().getType();\r
- if (!BluePrintTypes.validPrimitiveTypes().contains(entrySchema)) {\r
- Property innerType = new RefProperty("#/definitions/" + entrySchema);\r
- arrayProperty.setItems(innerType);\r
- } else {\r
- Property innerType = new StringProperty();\r
- arrayProperty.setItems(innerType);\r
- }\r
- defProperty = arrayProperty;\r
- }\r
-\r
- } else {\r
- defProperty = new RefProperty("#/definitions/" + propertyDefinition.getType());\r
- }\r
- defProperty.setName(name);\r
- if (propertyDefinition.getDefaultValue() != null) {\r
- defProperty.setDefault(String.valueOf(propertyDefinition.getDefaultValue()));\r
- }\r
-\r
- defProperty.setRequired(BooleanUtils.isTrue(propertyDefinition.getRequired()));\r
- defProperty.setDescription(propertyDefinition.getDescription());\r
- return defProperty;\r
- }\r
-\r
-\r
-}\r
+/*
+ * Copyright © 2017-2018 AT&T Intellectual Property.
+ * Modifications Copyright © 2018 IBM.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onap.ccsdk.cds.controllerblueprints.service.common;
+
+import io.swagger.models.*;
+import io.swagger.models.parameters.BodyParameter;
+import io.swagger.models.parameters.Parameter;
+import io.swagger.models.properties.*;
+import org.apache.commons.collections.MapUtils;
+import org.apache.commons.lang3.BooleanUtils;
+import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintConstants;
+import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintTypes;
+import org.onap.ccsdk.cds.controllerblueprints.core.data.PropertyDefinition;
+import org.onap.ccsdk.cds.controllerblueprints.core.data.ServiceTemplate;
+
+import java.util.*;
+
+/**
+ * SwaggerGenerator.java Purpose: Provide Service to generate service template input schema definition and Sample Json
+ * generation.
+ *
+ * @author Brinda Santh
+ * @version 1.0
+ */
+@Deprecated
+public class SwaggerGenerator {
+
+ private ServiceTemplate serviceTemplate;
+ public static final String INPUTS="inputs";
+
+ /**
+ * This is a SwaggerGenerator constructor
+ */
+ public SwaggerGenerator(ServiceTemplate serviceTemplate) {
+ this.serviceTemplate = serviceTemplate;
+ }
+
+ /**
+ * This is a generateSwagger
+ *
+ * @return String
+ */
+ public String generateSwagger() {
+
+ Swagger swagger = new Swagger().info(getInfo());
+
+ swagger.setPaths(getPaths());
+ swagger.setDefinitions(getDefinition());
+
+
+ return swagger.toString();
+ }
+
+ private Info getInfo() {
+ Info info = new Info();
+ Contact contact = new Contact();
+ contact.setName(serviceTemplate.getMetadata().get(BluePrintConstants.METADATA_TEMPLATE_AUTHOR));
+ info.setContact(contact);
+ info.setTitle(serviceTemplate.getMetadata().get(BluePrintConstants.METADATA_TEMPLATE_NAME));
+ info.setDescription(serviceTemplate.getDescription());
+ info.setVersion(serviceTemplate.getMetadata().get(BluePrintConstants.METADATA_TEMPLATE_VERSION));
+ return info;
+ }
+
+ private Map<String, Path> getPaths() {
+ Map<String, Path> paths = new HashMap<>();
+ Path path = new Path();
+ Operation post = new Operation();
+ post.setOperationId("configure");
+ post.setConsumes(Arrays.asList("application/json", "application/xml"));
+ post.setProduces(Arrays.asList("application/json", "application/xml"));
+ List<Parameter> parameters = new ArrayList<>();
+ Parameter in = new BodyParameter().schema(new RefModel("#/definitions/inputs"));
+ in.setRequired(true);
+ in.setName(INPUTS);
+ parameters.add(in);
+ post.setParameters(parameters);
+
+ Map<String, Response> responses = new HashMap<>();
+ Response response = new Response().description("Success");
+ responses.put("200", response);
+
+ Response failureResponse = new Response().description("Failure");
+ responses.put("400", failureResponse);
+ post.setResponses(responses);
+
+ path.setPost(post);
+ paths.put("/operations/config-selfservice-api:configure", path);
+ return paths;
+ }
+
+ private Map<String, Model> getDefinition() {
+ Map<String, Model> models = new HashMap<>();
+
+ ModelImpl inputmodel = new ModelImpl();
+ inputmodel.setTitle(INPUTS);
+ serviceTemplate.getTopologyTemplate().getInputs().forEach((propertyName, property) -> {
+ Property defProperty = getPropery(propertyName, property);
+ inputmodel.property(propertyName, defProperty);
+ });
+ models.put(INPUTS, inputmodel);
+
+ if (MapUtils.isNotEmpty(serviceTemplate.getDataTypes())) {
+ serviceTemplate.getDataTypes().forEach((name, dataType) -> {
+ ModelImpl model = new ModelImpl();
+ model.setDescription(dataType.getDescription());
+ if (dataType != null && MapUtils.isNotEmpty(dataType.getProperties())) {
+
+ dataType.getProperties().forEach((propertyName, property) -> {
+ Property defProperty = getPropery(propertyName, property);
+ model.addProperty(propertyName, defProperty);
+ });
+ }
+ models.put(name, model);
+ });
+ }
+ return models;
+
+ }
+
+ private Property getPropery(String name, PropertyDefinition propertyDefinition) {
+ Property defProperty = null;
+
+ if (BluePrintTypes.validPrimitiveTypes().contains(propertyDefinition.getType())) {
+ if (BluePrintConstants.DATA_TYPE_BOOLEAN.equals(propertyDefinition.getType())) {
+ defProperty = new BooleanProperty();
+ } else if (BluePrintConstants.DATA_TYPE_INTEGER.equals(propertyDefinition.getType())) {
+ StringProperty stringProperty = new StringProperty();
+ stringProperty.setType("integer");
+ defProperty = stringProperty;
+ } else if (BluePrintConstants.DATA_TYPE_FLOAT.equals(propertyDefinition.getType())) {
+ StringProperty stringProperty = new StringProperty();
+ stringProperty.setFormat("float");
+ defProperty = stringProperty;
+ } else if (BluePrintConstants.DATA_TYPE_TIMESTAMP.equals(propertyDefinition.getType())) {
+ DateTimeProperty dateTimeProperty = new DateTimeProperty();
+ dateTimeProperty.setFormat("date-time");
+ defProperty = dateTimeProperty;
+ } else {
+ defProperty = new StringProperty();
+ }
+ } else if (BluePrintTypes.validCollectionTypes().contains(propertyDefinition.getType())) {
+ ArrayProperty arrayProperty = new ArrayProperty();
+ if (propertyDefinition.getEntrySchema() != null) {
+ String entrySchema = propertyDefinition.getEntrySchema().getType();
+ if (!BluePrintTypes.validPrimitiveTypes().contains(entrySchema)) {
+ Property innerType = new RefProperty("#/definitions/" + entrySchema);
+ arrayProperty.setItems(innerType);
+ } else {
+ Property innerType = new StringProperty();
+ arrayProperty.setItems(innerType);
+ }
+ defProperty = arrayProperty;
+ }
+
+ } else {
+ defProperty = new RefProperty("#/definitions/" + propertyDefinition.getType());
+ }
+ defProperty.setName(name);
+ if (propertyDefinition.getDefaultValue() != null) {
+ defProperty.setDefault(String.valueOf(propertyDefinition.getDefaultValue()));
+ }
+
+ defProperty.setRequired(BooleanUtils.isTrue(propertyDefinition.getRequired()));
+ defProperty.setDescription(propertyDefinition.getDescription());
+ return defProperty;
+ }
+
+
+}