Import data type in UI
[sdc.git] / catalog-model / src / main / java / org / openecomp / sdc / be / model / operations / impl / DataTypeOperation.java
index 36dcaf4..7d01f3f 100644 (file)
@@ -29,6 +29,7 @@ import java.util.Optional;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.collections4.MapUtils;
 import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.tuple.ImmutableTriple;
 import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource;
 import org.apache.tinkerpop.gremlin.structure.Vertex;
 import org.janusgraph.core.JanusGraph;
@@ -37,6 +38,7 @@ import org.openecomp.sdc.be.config.BeEcompErrorManager.ErrorSeverity;
 import org.openecomp.sdc.be.dao.api.ActionStatus;
 import org.openecomp.sdc.be.dao.janusgraph.HealingJanusGraphGenericDao;
 import org.openecomp.sdc.be.dao.janusgraph.JanusGraphOperationStatus;
+import org.openecomp.sdc.be.dao.janusgraph.QueryType;
 import org.openecomp.sdc.be.dao.neo4j.GraphEdgeLabels;
 import org.openecomp.sdc.be.dao.neo4j.GraphPropertiesDictionary;
 import org.openecomp.sdc.be.datatypes.elements.DataTypeDataDefinition;
@@ -124,6 +126,20 @@ public class DataTypeOperation extends AbstractOperation {
         return dataTypesFound;
     }
 
+    public List<String> getAllDataTypeModels(final String dataTypeName) {
+        final List<String> models = new ArrayList<>();
+        ImmutableTriple<QueryType, String, Object> criteria =
+            new ImmutableTriple<>(QueryType.HAS, GraphPropertiesDictionary.NAME.getProperty(), dataTypeName);
+
+        final Either<List<DataTypeData>, JanusGraphOperationStatus> getAllDataTypesForModel =
+            janusGraphGenericDao.getByCriteria(NodeTypeEnum.DataType, DataTypeData.class, List.of(criteria));
+        final var dataTypesValidated = validateDataType(getAllDataTypesForModel, null);
+        for (DataTypeData dataType : dataTypesValidated) {
+            models.add(dataType.getDataTypeDataDefinition().getModel());
+        }
+        return models;
+    }
+
     private List<DataTypeData> getAllDataTypesWithModel(final String modelName) {
         final Either<List<DataTypeData>, JanusGraphOperationStatus> getAllDataTypesByModel = janusGraphGenericDao
             .getByCriteriaForModel(NodeTypeEnum.DataType, null, modelName, DataTypeData.class);