X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=champ-lib%2Fchamp-titan%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Faai%2Fchamptitan%2Fgraph%2Fimpl%2FTitanChampGraphImpl.java;h=293b51c24d1bde48e577ed99e978f48afca3db75;hb=56253dc9561d5b24919bf59f83ccc55934d8ad50;hp=209bf796f952b4167b6ae81c0401392683a0e91a;hpb=73fc9e36510c27899e60a707e8fcadb8a759f0d1;p=aai%2Fchamp.git diff --git a/champ-lib/champ-titan/src/main/java/org/onap/aai/champtitan/graph/impl/TitanChampGraphImpl.java b/champ-lib/champ-titan/src/main/java/org/onap/aai/champtitan/graph/impl/TitanChampGraphImpl.java index 209bf79..293b51c 100644 --- a/champ-lib/champ-titan/src/main/java/org/onap/aai/champtitan/graph/impl/TitanChampGraphImpl.java +++ b/champ-lib/champ-titan/src/main/java/org/onap/aai/champtitan/graph/impl/TitanChampGraphImpl.java @@ -36,6 +36,7 @@ import org.onap.aai.champcore.exceptions.ChampIndexNotExistsException; import org.onap.aai.champcore.exceptions.ChampSchemaViolationException; import org.onap.aai.champcore.graph.impl.AbstractTinkerpopChampGraph; import org.onap.aai.champcore.model.ChampCardinality; +import org.onap.aai.champcore.model.ChampField; import org.onap.aai.champcore.model.ChampObject; import org.onap.aai.champcore.model.ChampObjectConstraint; import org.onap.aai.champcore.model.ChampObjectIndex; @@ -61,6 +62,7 @@ import com.thinkaurelius.titan.core.schema.SchemaAction; import com.thinkaurelius.titan.core.schema.SchemaStatus; import com.thinkaurelius.titan.core.schema.TitanGraphIndex; import com.thinkaurelius.titan.core.schema.TitanManagement; +import com.thinkaurelius.titan.core.schema.TitanManagement.IndexBuilder; import com.thinkaurelius.titan.graphdb.database.management.ManagementSystem; public final class TitanChampGraphImpl extends AbstractTinkerpopChampGraph { @@ -171,15 +173,18 @@ public final class TitanChampGraphImpl extends AbstractTinkerpopChampGraph { final TitanGraph graph = getGraph(); final TitanManagement createIndexMgmt = graph.openManagement(); - final PropertyKey pk = createIndexMgmt.getOrCreatePropertyKey(index.getField().getName()); if (createIndexMgmt.getGraphIndex(index.getName()) != null) { createIndexMgmt.rollback(); return; //Ignore, index already exists } - createIndexMgmt.buildIndex(index.getName(), Vertex.class).addKey(pk).buildCompositeIndex(); - + IndexBuilder ib = createIndexMgmt.buildIndex(index.getName(), Vertex.class); + for (ChampField field : index.getFields()) { + PropertyKey pk = createIndexMgmt.getOrCreatePropertyKey(field.getName()); + ib = ib.addKey(pk); + } + ib.buildCompositeIndex(); createIndexMgmt.commit(); graph.tx().commit(); @@ -195,11 +200,15 @@ public final class TitanChampGraphImpl extends AbstractTinkerpopChampGraph { if (index == null) return Optional.empty(); if (index.getIndexedElement() != TitanVertex.class) return Optional.empty(); + List fieldNames = new ArrayList(); + for (int i = 0; i < index.getFieldKeys().length; i++) { + fieldNames.add(index.getFieldKeys()[i].name()); + } return Optional.of(ChampObjectIndex.create() .ofName(indexName) .onType(ChampObject.ReservedTypes.ANY.toString()) - .forField(index.getFieldKeys()[0].name()) + .forFields(fieldNames) .build()); } @@ -218,11 +227,16 @@ public final class TitanChampGraphImpl extends AbstractTinkerpopChampGraph { public boolean hasNext() { if (indices.hasNext()) { final TitanGraphIndex index = indices.next(); + + List fieldNames = new ArrayList(); + for (int i = 0; i < index.getFieldKeys().length; i++) { + fieldNames.add(index.getFieldKeys()[i].name()); + } next = ChampObjectIndex.create() .ofName(index.name()) .onType(ChampObject.ReservedTypes.ANY.toString()) - .forField(index.getFieldKeys()[0].name()) + .forFields(fieldNames) .build(); return true; } @@ -472,4 +486,9 @@ public final class TitanChampGraphImpl extends AbstractTinkerpopChampGraph { public GraphTraversal hasLabel(GraphTraversal query, Object type) { return query.hasLabel((String) type); } + + @Override + public void createDefaultIndexes() { + LOGGER.error("No default indexes being created"); + } }