summaryrefslogtreecommitdiffstats
path: root/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/services/ToscaExtensionYamlUtil.java
diff options
context:
space:
mode:
Diffstat (limited to 'common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/services/ToscaExtensionYamlUtil.java')
-rw-r--r--common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/services/ToscaExtensionYamlUtil.java112
1 files changed, 64 insertions, 48 deletions
diff --git a/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/services/ToscaExtensionYamlUtil.java b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/services/ToscaExtensionYamlUtil.java
index efd4982541..4b8436197d 100644
--- a/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/services/ToscaExtensionYamlUtil.java
+++ b/common/onap-tosca-datatype/src/main/java/org/onap/sdc/tosca/services/ToscaExtensionYamlUtil.java
@@ -1,5 +1,5 @@
/*
- * Copyright © 2016-2017 European Support Limited
+ * Copyright © 2016-2018 European Support Limited
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,6 +16,7 @@
package org.onap.sdc.tosca.services;
+import org.onap.sdc.tosca.error.ToscaRuntimeException;
import org.yaml.snakeyaml.constructor.Constructor;
import org.yaml.snakeyaml.introspector.Property;
import org.yaml.snakeyaml.introspector.PropertyUtils;
@@ -27,60 +28,75 @@ import java.beans.IntrospectionException;
public class ToscaExtensionYamlUtil extends YamlUtil {
- @Override
- public <T> Constructor getConstructor(Class<T> typClass) {
- return new ToscaWithHeatExtensionConstructor(typClass);
- }
+ public static final String TOSCA_MODEL_PARAMETER_DEFINITION =
+ "org.onap.sdc.tosca.datatypes.model.ParameterDefinition";
+ public static final String TOSCA_MODEL_EXT_PARAMETER_DEFINITION =
+ "org.onap.sdc.tosca.datatypes.model.heatextend.ParameterDefinitionExt";
+ public static final String TOSCA_MODEL_REQUIREMENT_ASSIGNMENT =
+ "org.onap.sdc.tosca.datatypes.model.RequirementAssignment";
+ public static final String TOSCA_MODEL_EXT_REQUIREMENT_ASSIGNMENT =
+ "org.onap.sdc.tosca.datatypes.model.extension.RequirementAssignment";
- @Override
- protected PropertyUtils getPropertyUtils() {
- return new ToscaPropertyUtilsWithHeatExtension();
- }
+ @Override
+ public <T> Constructor getConstructor(Class<T> typClass) {
+ return new ToscaWithHeatExtensionConstructor(typClass);
+ }
- public class ToscaPropertyUtilsWithHeatExtension extends MyPropertyUtils {
@Override
- public Property getProperty(Class<? extends Object> type, String name)
- throws IntrospectionException {
- Class<? extends Object> classType = type;
- try {
- if (type
- .equals(Class.forName("org.onap.sdc.tosca.datatypes.model.ParameterDefinition"))) {
- classType = Class
- .forName("org.onap.sdc.tosca.datatypes.model.heatextend.ParameterDefinitionExt");
- }
- } catch (ClassNotFoundException ex) {
- throw new RuntimeException(ex);
- }
- return super.getProperty(classType, name);
+ protected PropertyUtils getPropertyUtils() {
+ return new ToscaPropertyUtilsWithHeatExtension();
}
- }
- protected class ToscaWithHeatExtensionConstructor extends StrictMapAppenderConstructor {
- public ToscaWithHeatExtensionConstructor(Class<?> theRoot) {
- super(theRoot);
- yamlClassConstructors.put(NodeId.mapping, new MyPersistentObjectConstruct());
+ public class ToscaPropertyUtilsWithHeatExtension extends MyPropertyUtils {
+
+ @Override
+ public Property getProperty(Class<? extends Object> type, String name) throws IntrospectionException {
+ Class<? extends Object> classType = type;
+ try {
+ if (type.equals(Class.forName(TOSCA_MODEL_PARAMETER_DEFINITION))) {
+ classType = Class.forName(TOSCA_MODEL_EXT_PARAMETER_DEFINITION);
+ }
+ if (type.equals(Class.forName(TOSCA_MODEL_REQUIREMENT_ASSIGNMENT))) {
+ classType = Class.forName(TOSCA_MODEL_EXT_REQUIREMENT_ASSIGNMENT);
+ }
+ } catch (ClassNotFoundException ex) {
+ throw new ToscaRuntimeException(ex);
+ }
+ return super.getProperty(classType, name);
+ }
}
- class MyPersistentObjectConstruct extends Constructor.ConstructMapping {
- @Override
- protected Object constructJavaBean2ndStep(MappingNode node, Object object) {
- Class type = node.getType();
- try {
- if (type.equals(
- Class.forName("org.onap.sdc.tosca.datatypes.model.ParameterDefinition"))) {
- Class extendHeatClass = Class.forName(
- "org.onap.sdc.tosca.datatypes.model.heatextend.ParameterDefinitionExt");
- Object extendHeatObject = extendHeatClass.newInstance();
- // create JavaBean
- return super.constructJavaBean2ndStep(node, extendHeatObject);
- } else {
- // create JavaBean
- return super.constructJavaBean2ndStep(node, object);
- }
- } catch (ClassNotFoundException | InstantiationException | IllegalAccessException ex) {
- throw new RuntimeException(ex);
+ protected class ToscaWithHeatExtensionConstructor extends StrictMapAppenderConstructor {
+
+ public ToscaWithHeatExtensionConstructor(Class<?> theRoot) {
+ super(theRoot);
+ yamlClassConstructors.put(NodeId.mapping, new MyPersistentObjectConstruct());
+ }
+
+ class MyPersistentObjectConstruct extends Constructor.ConstructMapping {
+
+ @Override
+ protected Object constructJavaBean2ndStep(MappingNode node, Object object) {
+ Class type = node.getType();
+ try {
+ if (type.equals(Class.forName(TOSCA_MODEL_PARAMETER_DEFINITION))) {
+ Class extendHeatClass = Class.forName(TOSCA_MODEL_EXT_PARAMETER_DEFINITION);
+ Object extendHeatObject = extendHeatClass.newInstance();
+ // create JavaBean
+ return super.constructJavaBean2ndStep(node, extendHeatObject);
+ } else if (type.equals(Class.forName(TOSCA_MODEL_REQUIREMENT_ASSIGNMENT))) {
+ Class extendHeatClass = Class.forName(TOSCA_MODEL_EXT_REQUIREMENT_ASSIGNMENT);
+ Object extendHeatObject = extendHeatClass.newInstance();
+ // create JavaBean
+ return super.constructJavaBean2ndStep(node, extendHeatObject);
+ } else {
+ // create JavaBean
+ return super.constructJavaBean2ndStep(node, object);
+ }
+ } catch (ClassNotFoundException | InstantiationException | IllegalAccessException ex) {
+ throw new ToscaRuntimeException(ex);
+ }
+ }
}
- }
}
- }
}