aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/org/onap/sdc/tosca/parser/elements/queries/GroupEntityQuery.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/onap/sdc/tosca/parser/elements/queries/GroupEntityQuery.java')
-rw-r--r--src/main/java/org/onap/sdc/tosca/parser/elements/queries/GroupEntityQuery.java39
1 files changed, 32 insertions, 7 deletions
diff --git a/src/main/java/org/onap/sdc/tosca/parser/elements/queries/GroupEntityQuery.java b/src/main/java/org/onap/sdc/tosca/parser/elements/queries/GroupEntityQuery.java
index 37a3ccd..8b1cd25 100644
--- a/src/main/java/org/onap/sdc/tosca/parser/elements/queries/GroupEntityQuery.java
+++ b/src/main/java/org/onap/sdc/tosca/parser/elements/queries/GroupEntityQuery.java
@@ -1,30 +1,55 @@
package org.onap.sdc.tosca.parser.elements.queries;
+import com.google.common.collect.Lists;
+import org.onap.sdc.tosca.parser.api.IEntityDetails;
+import org.onap.sdc.tosca.parser.elements.EntityDetailsFactory;
import org.onap.sdc.tosca.parser.enums.EntityTemplateType;
-import org.onap.sdc.toscaparser.api.EntityTemplate;
+import org.onap.sdc.toscaparser.api.Group;
+import org.onap.sdc.toscaparser.api.NodeTemplate;
+import org.onap.sdc.toscaparser.api.ToscaTemplate;
import java.util.List;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
/**
* Implements EntityQuery object for Groups
*/
public class GroupEntityQuery extends EntityQuery {
- public GroupEntityQuery() {
+ private static final String VF_MODULE_UUID = "vfModuleModelUUID";
+ private static final String VF_MODULE_CUSTOMIZATION_UUID = "vfModuleModelCustomizationUUID";
+
+ GroupEntityQuery() {
super(EntityTemplateType.GROUP, null, null);
}
@Override
- public List<EntityTemplate> searchByTopologyTemplate(TopologyTemplateQuery topologyTemplateQuery) {
- return null;
+ public List<IEntityDetails> getEntitiesFromTopologyTemplate(NodeTemplate nodeTemplate) {
+ if (nodeTemplate.getSubMappingToscaTemplate() != null) {
+ return convertGroupLisToEntityDetailsList(filter(nodeTemplate.getSubMappingToscaTemplate().getGroups()));
+ }
+ return Lists.newArrayList();
}
@Override
- public EntityTemplateType getType() {
- return EntityTemplateType.GROUP;
+ public List<IEntityDetails> getEntitiesFromService(ToscaTemplate toscaTemplate) {
+ return convertGroupLisToEntityDetailsList(filter(toscaTemplate.getGroups()));
}
- public GroupEntityQuery(String toscaType) {
+ GroupEntityQuery(String toscaType) {
super(EntityTemplateType.GROUP, null, toscaType);
}
+
+ static List<IEntityDetails> convertGroupLisToEntityDetailsList(Stream<Group> groups) {
+ return groups.map(gr->EntityDetailsFactory.createEntityDetails(EntityTemplateType.GROUP, gr))
+ .collect(Collectors.toList());
+ }
+
+ private Stream<Group> filter(List<Group> groupList) {
+ return groupList.stream()
+ .filter(gr->isSearchCriteriaMatched(gr.getMetadata(), gr.getType()) ||
+ isSearchCriteriaMatched(gr.getMetadata(), gr.getType(), VF_MODULE_UUID, VF_MODULE_CUSTOMIZATION_UUID));
+ }
+
}