aboutsummaryrefslogtreecommitdiffstats
path: root/jtosca/src/main/java/org/openecomp/sdc/toscaparser/Group.java
diff options
context:
space:
mode:
Diffstat (limited to 'jtosca/src/main/java/org/openecomp/sdc/toscaparser/Group.java')
-rw-r--r--jtosca/src/main/java/org/openecomp/sdc/toscaparser/Group.java136
1 files changed, 136 insertions, 0 deletions
diff --git a/jtosca/src/main/java/org/openecomp/sdc/toscaparser/Group.java b/jtosca/src/main/java/org/openecomp/sdc/toscaparser/Group.java
new file mode 100644
index 0000000..eb4ab04
--- /dev/null
+++ b/jtosca/src/main/java/org/openecomp/sdc/toscaparser/Group.java
@@ -0,0 +1,136 @@
+package org.openecomp.sdc.toscaparser;
+
+import org.openecomp.sdc.toscaparser.common.ExceptionCollector;
+import org.openecomp.sdc.toscaparser.elements.Metadata;
+import org.openecomp.sdc.toscaparser.utils.ValidateUtils;
+
+import java.util.ArrayList;
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+public class Group extends EntityTemplate {
+
+ private static final String TYPE = "type";
+ private static final String METADATA = "metadata";
+ private static final String DESCRIPTION = "description";
+ private static final String PROPERTIES = "properties";
+ private static final String MEMBERS = "members";
+ private static final String INTERFACES = "interfaces";
+ private static final String SECTIONS[] = {
+ TYPE, METADATA, DESCRIPTION, PROPERTIES, MEMBERS, INTERFACES};
+
+ private String name;
+ LinkedHashMap<String,Object> tpl;
+ ArrayList<NodeTemplate> memberNodes;
+ LinkedHashMap<String,Object> customDef;
+ Metadata metaData;
+
+
+ public Group(String _name, LinkedHashMap<String, Object> _templates,
+ ArrayList<NodeTemplate> _memberNodes,
+ LinkedHashMap<String, Object> _customDef) {
+ super(_name, _templates, "group_type", _customDef);
+
+ name = _name;
+ tpl = _templates;
+ if(tpl.get(METADATA) != null) {
+ Object metadataObject = tpl.get(METADATA);
+ ValidateUtils.validateMap(metadataObject);
+ metaData = new Metadata((Map<String,Object>)metadataObject);
+ }
+ memberNodes = _memberNodes;
+ _validateKeys();
+ }
+
+ public Metadata getMetadata() {
+ return metaData;
+ }
+
+ public ArrayList<String> getMembers() {
+ return (ArrayList<String>)entityTpl.get("members");
+ }
+
+ public String getDescription() {
+ return (String)entityTpl.get("description");
+
+ }
+
+ public ArrayList<NodeTemplate> getMemberNodes() {
+ return memberNodes;
+ }
+
+ private void _validateKeys() {
+ for(String key: entityTpl.keySet()) {
+ boolean bFound = false;
+ for(String sect: SECTIONS) {
+ if(key.equals(sect)) {
+ bFound = true;
+ break;
+ }
+ }
+ if(!bFound) {
+ ExceptionCollector.appendException(String.format(
+ "UnknownFieldError: Groups \"%s\" contains unknown field \"%s\"",
+ name,key));
+ }
+ }
+ }
+
+ @Override
+ public String toString() {
+ return "Group{" +
+ "name='" + name + '\'' +
+ ", tpl=" + tpl +
+ ", memberNodes=" + memberNodes +
+ ", customDef=" + customDef +
+ ", metaData=" + metaData +
+ '}';
+ }
+}
+
+/*python
+
+from toscaparser.common.exception import ExceptionCollector
+from toscaparser.common.exception import UnknownFieldError
+from toscaparser.entity_template import EntityTemplate
+from toscaparser.utils import validateutils
+
+SECTIONS = (TYPE, METADATA, DESCRIPTION, PROPERTIES, MEMBERS, INTERFACES) = \
+ ('type', 'metadata', 'description',
+ 'properties', 'members', 'interfaces')
+
+
+class Group(EntityTemplate):
+
+ def __init__(self, name, group_templates, member_nodes, custom_defs=None):
+ super(Group, self).__init__(name,
+ group_templates,
+ 'group_type',
+ custom_defs)
+ self.name = name
+ self.tpl = group_templates
+ self.meta_data = None
+ if self.METADATA in self.tpl:
+ self.meta_data = self.tpl.get(self.METADATA)
+ validateutils.validate_map(self.meta_data)
+ self.member_nodes = member_nodes
+ self._validate_keys()
+
+ @property
+ def members(self):
+ return self.entity_tpl.get('members')
+
+ @property
+ def description(self):
+ return self.entity_tpl.get('description')
+
+ def get_member_nodes(self):
+ return self.member_nodes
+
+ def _validate_keys(self):
+ for key in self.entity_tpl.keys():
+ if key not in SECTIONS:
+ ExceptionCollector.appendException(
+ UnknownFieldError(what='Groups "%s"' % self.name,
+ field=key))
+*/ \ No newline at end of file