aboutsummaryrefslogtreecommitdiffstats
path: root/jtosca/src/main/java/org/openecomp/sdc/toscaparser/elements/ArtifactTypeDef.java
diff options
context:
space:
mode:
authorPavel Aharoni <pa0916@att.com>2017-04-25 08:02:08 +0300
committerPavel Aharoni <pa0916@att.com>2017-04-25 08:02:33 +0300
commitecd529b4057f8619c9ef0d1c46d1bec5571f5b29 (patch)
tree7133ba1350516a03db982ea30228437ebf843536 /jtosca/src/main/java/org/openecomp/sdc/toscaparser/elements/ArtifactTypeDef.java
parent9cb83cb1b15e93c95b1462fc2e3315b35dbc6c4d (diff)
[SDC-13] JTosca delivery - 1.1.8-SNAPSHOT DC
Change-Id: Ib6af5d9393473c3db3f1e21da570c71ea0944eca Signed-off-by: Pavel Aharoni <pa0916@att.com>
Diffstat (limited to 'jtosca/src/main/java/org/openecomp/sdc/toscaparser/elements/ArtifactTypeDef.java')
-rw-r--r--jtosca/src/main/java/org/openecomp/sdc/toscaparser/elements/ArtifactTypeDef.java105
1 files changed, 105 insertions, 0 deletions
diff --git a/jtosca/src/main/java/org/openecomp/sdc/toscaparser/elements/ArtifactTypeDef.java b/jtosca/src/main/java/org/openecomp/sdc/toscaparser/elements/ArtifactTypeDef.java
new file mode 100644
index 0000000..fda1a3e
--- /dev/null
+++ b/jtosca/src/main/java/org/openecomp/sdc/toscaparser/elements/ArtifactTypeDef.java
@@ -0,0 +1,105 @@
+package org.openecomp.sdc.toscaparser.elements;
+
+import java.util.LinkedHashMap;
+
+public class ArtifactTypeDef extends StatefulEntityType {
+
+ private String type;
+ private LinkedHashMap<String,Object> customDef;
+ private LinkedHashMap<String,Object> properties;
+ private LinkedHashMap<String,Object> parentArtifacts;
+
+
+
+ public ArtifactTypeDef(String atype,LinkedHashMap<String,Object> _customDef) {
+ super(atype,ARTIFACT_PREFIX,_customDef);
+
+ type = atype;
+ customDef = _customDef;
+ properties = null;
+ if(defs != null) {
+ properties = (LinkedHashMap<String,Object>)defs.get(PROPERTIES);
+ }
+ parentArtifacts = _getParentArtifacts();
+ }
+
+ private LinkedHashMap<String,Object> _getParentArtifacts() {
+ LinkedHashMap<String,Object> artifacts = new LinkedHashMap<>();
+ String parentArtif = null;
+ if(getParentType() != null) {
+ parentArtif = getParentType().getType();
+ }
+ if(parentArtif != null && !parentArtif.isEmpty()) {
+ while(!parentArtif.equals("tosca.artifacts.Root")) {
+ Object ob = TOSCA_DEF.get(parentArtif);
+ artifacts.put(parentArtif,ob);
+ parentArtif =
+ (String)((LinkedHashMap<String,Object>)ob).get("derived_from");
+ }
+ }
+ return artifacts;
+ }
+
+ public ArtifactTypeDef getParentType() {
+ // Return a artifact entity from which this entity is derived
+ if(defs == null) {
+ return null;
+ }
+ String partifactEntity = derivedFrom(defs);
+ if(partifactEntity != null) {
+ return new ArtifactTypeDef(partifactEntity,customDef);
+ }
+ return null;
+ }
+
+ public Object getArtifact(String name) {
+ // Return the definition of an artifact field by name
+ if(defs != null) {
+ return defs.get(name);
+ }
+ return null;
+ }
+
+ public String getType() {
+ return type;
+ }
+
+}
+
+/*python
+class ArtifactTypeDef(StatefulEntityType):
+ '''TOSCA built-in artifacts type.'''
+
+ def __init__(self, atype, custom_def=None):
+ super(ArtifactTypeDef, self).__init__(atype, self.ARTIFACT_PREFIX,
+ custom_def)
+ self.type = atype
+ self.custom_def = custom_def
+ self.properties = None
+ if self.PROPERTIES in self.defs:
+ self.properties = self.defs[self.PROPERTIES]
+ self.parent_artifacts = self._get_parent_artifacts()
+
+ def _get_parent_artifacts(self):
+ artifacts = {}
+ parent_artif = self.parent_type.type if self.parent_type else None
+ if parent_artif:
+ while parent_artif != 'tosca.artifacts.Root':
+ artifacts[parent_artif] = self.TOSCA_DEF[parent_artif]
+ parent_artif = artifacts[parent_artif]['derived_from']
+ return artifacts
+
+ @property
+ def parent_type(self):
+ '''Return a artifact entity from which this entity is derived.'''
+ if not hasattr(self, 'defs'):
+ return None
+ partifact_entity = self.derived_from(self.defs)
+ if partifact_entity:
+ return ArtifactTypeDef(partifact_entity, self.custom_def)
+
+ def get_artifact(self, name):
+ '''Return the definition of an artifact field by name.'''
+ if name in self.defs:
+ return self.defs[name]
+*/ \ No newline at end of file