Integrate aai-schema-ingest library into aai-core
[aai/aai-common.git] / aai-core / src / main / java / org / onap / aai / query / builder / TraversalQuery.java
index 014ce79..21d8eb5 100644 (file)
@@ -2,7 +2,7 @@
  * ============LICENSE_START=======================================================
  * org.onap.aai
  * ================================================================================
- * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  * ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
  */
 package org.onap.aai.query.builder;
 
-import java.io.UnsupportedEncodingException;
-import java.net.URI;
-import java.util.List;
-
-import javax.ws.rs.core.MultivaluedMap;
-
 import org.apache.tinkerpop.gremlin.process.traversal.Step;
 import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal;
 import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource;
@@ -36,7 +28,12 @@ import org.onap.aai.introspection.Introspector;
 import org.onap.aai.introspection.Loader;
 import org.onap.aai.parsers.query.QueryParser;
 import org.onap.aai.parsers.query.TraversalStrategy;
-import org.onap.aai.serialization.db.EdgeRules;
+import org.onap.aai.edges.enums.EdgeType;
+
+import javax.ws.rs.core.MultivaluedMap;
+import java.io.UnsupportedEncodingException;
+import java.net.URI;
+import java.util.List;
 
 /**
  * The Class TraversalQuery.
@@ -53,19 +50,6 @@ public class TraversalQuery<E> extends GraphTraversalBuilder<E> {
                this.factory = new TraversalStrategy(this.loader, this);
        }
        
-       /**
-        * Instantiates a new traversal query.
-        *
-        * @param loader the loader
-        * @param source graph traversal source
-        * @param edgeRules the edgeRules to use
-        */
-       public TraversalQuery(Loader loader, GraphTraversalSource source, EdgeRules edgeRules) {
-               super(loader, source, edgeRules);
-               this.factory = new TraversalStrategy(this.loader, this);
-       
-       }
-       
        /**
         * Instantiates a new traversal query.
         *
@@ -77,17 +61,6 @@ public class TraversalQuery<E> extends GraphTraversalBuilder<E> {
                this.factory = new TraversalStrategy(this.loader, this);
        }
        
-       /**
-        * Instantiates a new traversal query.
-        *
-        * @param loader the loader
-        * @param start the start
-        */
-       public TraversalQuery(Loader loader, GraphTraversalSource source, Vertex start, EdgeRules edgeRules) {
-               super(loader, source, start, edgeRules);
-               this.factory = new TraversalStrategy(this.loader, this);
-       }
-       
        protected TraversalQuery(GraphTraversal<Vertex, E> traversal, Loader loader, GraphTraversalSource source, GraphTraversalBuilder<E> gtb) {
                super(loader, source);
                this.traversal = traversal;
@@ -149,8 +122,13 @@ public class TraversalQuery<E> extends GraphTraversalBuilder<E> {
        
        @Override
        protected QueryBuilder<E> cloneQueryAtStep(int index) {
+               GraphTraversal.Admin<Vertex, E> cloneAdmin = getCloneAdmin(index);
+               return new TraversalQuery<>(cloneAdmin, loader, source, this);
+       }
+
+       protected GraphTraversal.Admin<Vertex, E> getCloneAdmin(int index) {
                int idx = index;
-               
+
                if (idx == 0) {
                        idx = stepIndex;
                }
@@ -162,9 +140,9 @@ public class TraversalQuery<E> extends GraphTraversalBuilder<E> {
                for (int i = steps.size()-1; i >= idx; i--) {
                        cloneAdmin.removeStep(i);
                }
-               return new TraversalQuery<>(cloneAdmin, loader, source, this);
+               return cloneAdmin;
        }
-       
+
        @Override
        protected QueryBuilder<E> removeQueryStepsBetween(int start, int end) {
                GraphTraversal<Vertex, E> clone = this.traversal.asAdmin().clone();