AAI-1523 Batch reformat aai-core
[aai/aai-common.git] / aai-core / src / main / java / org / onap / aai / serialization / engines / query / GremlinPipelineQueryEngine.java
index 74a23ef..c206ced 100644 (file)
@@ -8,7 +8,7 @@
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
- *    http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * limitations under the License.
  * ============LICENSE_END=========================================================
  */
+
 package org.onap.aai.serialization.engines.query;/*-
- * ============LICENSE_START=======================================================
- * org.onap.aai
- * ================================================================================
- * Copyright (C) 2017 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.
- * You may obtain a copy of the License at
+                                                 * ============LICENSE_START=======================================================
+                                                 * org.onap.aai
+                                                 * ================================================================================
+                                                 * Copyright (C) 2017 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.
+                                                 * You may obtain a copy of the License at
+                                                 * 
+                                                 *      http://www.apache.org/licenses/LICENSE-2.0
+                                                 * 
+                                                 * Unless required by applicable law or agreed to in writing, software
+                                                 * distributed under the License is distributed on an "AS IS" BASIS,
+                                                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+                                                 * See the License for the specific language governing permissions and
+                                                 * limitations under the License.
+                                                 * ============LICENSE_END=========================================================
+                                                 */
+
+/*
+ * package org.onap.aai.serialization.engines.query;
  * 
- *      http://www.apache.org/licenses/LICENSE-2.0
+ * import java.util.HashSet;
+ * import java.util.List;
+ * import java.util.Set;
  * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
+ * import org.onap.aai.db.AAIProperties;
+ * import org.onap.aai.query.builder.QueryBuilder;
+ * import org.onap.aai.serialization.engines.TransactionalGraphEngine;
+ * import com.tinkerpop.blueprints.Direction;
+ * import com.tinkerpop.blueprints.TransactionalGraph;
+ * import com.tinkerpop.blueprints.Vertex;
+ * import com.tinkerpop.gremlin.java.GremlinPipeline;
+ * import com.tinkerpop.pipes.IdentityPipe;
+ * import com.tinkerpop.pipes.PipeFunction;
+ * import com.tinkerpop.pipes.branch.LoopPipe;
+ * 
+ * public class GremlinPipelineQueryEngine extends QueryEngine {
+ * 
+ * public GremlinPipelineQueryEngine(TransactionalGraphEngine graphEngine) {
+ * super(graphEngine);
+ * }
+ * 
+ * @Override
+ * public List<Vertex> executeQuery(TransactionalGraph g, QueryBuilder query) {
+ * List<Vertex> results = null;
+ * Vertex start = query.getStart();
+ * if (start != null) {
+ * results = ((GremlinPipeline)query.getQuery()).cast(Vertex.class).toList();
+ * } else {
+ * GremlinPipeline pipe = new GremlinPipeline(g);
+ * results = process(pipe, (GremlinPipeline)query.getQuery());
+ * 
+ * }
+ * return results;
+ * }
+ * 
+ * @Override
+ * public List<Vertex> executeParentQuery(TransactionalGraph g, QueryBuilder query) {
+ * List<Vertex> results = null;
+ * Vertex start = query.getStart();
+ * if (start != null) {
+ * results = ((GremlinPipeline)query.getParentQuery()).cast(Vertex.class).toList();
+ * } else {
+ * GremlinPipeline pipe = new GremlinPipeline(g);
+ * results = process(pipe, (GremlinPipeline)query.getParentQuery());
+ * 
+ * }
+ * return results;
+ * }
+ * 
+ * @Override
+ * public List<Vertex> findParents(Vertex start) {
+ * GremlinPipeline<Vertex, Vertex> pipe = new GremlinPipeline(start).as("x").inE()
+ * .has("isParent", true).outV().loop("x", new PipeFunction<LoopPipe.LoopBundle<Vertex>, Boolean>() {
+ * 
+ * @Override
+ * public Boolean compute(LoopPipe.LoopBundle<Vertex> argument) {
+ * GremlinPipeline<Vertex, Long> pipe = new GremlinPipeline<>(argument.getObject());
+ * return pipe.inE().has("isParent", true).count() == 1 || argument.getLoops() < 100;
+ * }
+ * 
+ * }, new PipeFunction<LoopPipe.LoopBundle<Vertex>, Boolean>() {
+ * 
+ * @Override
+ * public Boolean compute(LoopPipe.LoopBundle<Vertex> argument) {
+ * return true;
+ * }
+ * 
+ * });
+ * 
+ * List<Vertex> results = pipe.toList();
+ * results.add(0, start);
+ * return results;
+ * }
+ * 
+ * @Override
+ * public List<Vertex> findChildren(Vertex start) {
+ * Set<Vertex> seen = new HashSet<>();
+ * seen.add(start);
+ * GremlinPipeline<Vertex, Vertex> pipe = new GremlinPipeline(start).as("x").outE().has("isParent", true).inV()
+ * .except(seen).store(seen).loop("x", new PipeFunction<LoopPipe.LoopBundle<Vertex>, Boolean>() {
+ * 
+ * @Override
+ * public Boolean compute(LoopPipe.LoopBundle<Vertex> argument) {
+ * GremlinPipeline<Vertex, Long> pipe = new GremlinPipeline<>(argument.getObject());
+ * return pipe.outE().has("isParent", true).count() >= 1 || argument.getLoops() < 100;
+ * }
+ * 
+ * }, new PipeFunction<LoopPipe.LoopBundle<Vertex>, Boolean>() {
+ * 
+ * @Override
+ * public Boolean compute(LoopPipe.LoopBundle<Vertex> argument) {
+ * return true;
+ * }
+ * 
+ * });
+ * 
+ * List<Vertex> results = pipe.toList();
+ * results.add(0, start);
+ * return results;
+ * }
+ * 
+ * @Override
+ * public List<Vertex> findDeletable(Vertex start) {
+ * Set<Vertex> seen = new HashSet<>();
+ * seen.add(start);
+ * GremlinPipeline<Vertex, Vertex> pipe = new GremlinPipeline<Vertex, Vertex>(start).as("x").outE().or(
+ * new GremlinPipeline(new IdentityPipe()).has("isParent", true),
+ * new GremlinPipeline(new IdentityPipe()).has("hasDelTarget", true)).inV()
+ * .except(seen).store(seen).loop("x", new PipeFunction<LoopPipe.LoopBundle<Vertex>, Boolean>() {
+ * 
+ * @Override
+ * public Boolean compute(LoopPipe.LoopBundle<Vertex> argument) {
+ * GremlinPipeline<Vertex, Long> pipe = new GremlinPipeline<>(argument.getObject());
+ * return pipe.outE().or(
+ * new GremlinPipeline(new IdentityPipe()).has("isParent", true),
+ * new GremlinPipeline(new IdentityPipe()).has("hasDelTarget", true)).count() >= 1 || argument.getLoops() < 100;
+ * }
+ * 
+ * }, new PipeFunction<LoopPipe.LoopBundle<Vertex>, Boolean>() {
+ * 
+ * @Override
+ * public Boolean compute(LoopPipe.LoopBundle<Vertex> argument) {
+ * return true;
+ * }
+ * 
+ * });
+ * List<Vertex> results = pipe.toList();
+ * results.add(0, start);
+ * 
+ * return results;
+ * }
+ * 
+ * private List<Vertex> process(GremlinPipeline start, GremlinPipeline pipe) {
+ * 
+ * 
+ * return start.add(pipe).cast(Vertex.class).toList();
+ * }
+ * 
+ * @Override
+ * public List<Vertex> findRelatedVertices(Vertex start, Direction direction, String label, String nodeType) {
+ * GremlinPipeline<Vertex, Vertex> pipe = new GremlinPipeline<Vertex, Vertex>(start);
+ * switch (direction) {
+ * case OUT:
+ * pipe.out(label);
+ * break;
+ * case IN:
+ * pipe.in(label);
+ * break;
+ * case BOTH:
+ * pipe.both(label);
+ * break;
+ * default:
+ * break;
+ * }
+ * 
+ * pipe.has(AAIProperties.NODE_TYPE, nodeType).dedup();
+ * List<Vertex> result = pipe.toList();
+ * return result;
+ * }
+ * 
+ * }
  */
-
-/*
-package org.onap.aai.serialization.engines.query;
-
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import org.onap.aai.db.AAIProperties;
-import org.onap.aai.query.builder.QueryBuilder;
-import org.onap.aai.serialization.engines.TransactionalGraphEngine;
-import com.tinkerpop.blueprints.Direction;
-import com.tinkerpop.blueprints.TransactionalGraph;
-import com.tinkerpop.blueprints.Vertex;
-import com.tinkerpop.gremlin.java.GremlinPipeline;
-import com.tinkerpop.pipes.IdentityPipe;
-import com.tinkerpop.pipes.PipeFunction;
-import com.tinkerpop.pipes.branch.LoopPipe;
-
-public class GremlinPipelineQueryEngine extends QueryEngine {
-
-       public GremlinPipelineQueryEngine(TransactionalGraphEngine graphEngine) {
-               super(graphEngine);
-       }
-
-       @Override
-       public List<Vertex> executeQuery(TransactionalGraph g, QueryBuilder query) {
-               List<Vertex> results = null;
-               Vertex start = query.getStart();
-               if (start != null) {
-                       results = ((GremlinPipeline)query.getQuery()).cast(Vertex.class).toList();
-               } else {
-                       GremlinPipeline pipe = new GremlinPipeline(g);
-                       results = process(pipe, (GremlinPipeline)query.getQuery());
-
-               }
-               return results;
-       }
-       
-       @Override
-       public List<Vertex> executeParentQuery(TransactionalGraph g, QueryBuilder query) {
-               List<Vertex> results = null;
-               Vertex start = query.getStart();
-               if (start != null) {
-                       results = ((GremlinPipeline)query.getParentQuery()).cast(Vertex.class).toList();
-               } else {
-                       GremlinPipeline pipe = new GremlinPipeline(g);
-                       results = process(pipe, (GremlinPipeline)query.getParentQuery());
-
-               }
-               return results;
-       }
-
-       @Override
-       public List<Vertex> findParents(Vertex start) {
-               GremlinPipeline<Vertex, Vertex> pipe = new GremlinPipeline(start).as("x").inE()
-                               .has("isParent", true).outV().loop("x", new PipeFunction<LoopPipe.LoopBundle<Vertex>, Boolean>() {
-
-                                       @Override
-                                       public Boolean compute(LoopPipe.LoopBundle<Vertex> argument) {
-                                               GremlinPipeline<Vertex, Long> pipe = new GremlinPipeline<>(argument.getObject());
-                                               return pipe.inE().has("isParent", true).count() == 1 || argument.getLoops() < 100;
-                                       }
-                                       
-                               }, new PipeFunction<LoopPipe.LoopBundle<Vertex>, Boolean>() {
-
-                                       @Override
-                                       public Boolean compute(LoopPipe.LoopBundle<Vertex> argument) {
-                                               return true;
-                                       }
-                                       
-                               });
-               
-               List<Vertex> results = pipe.toList();
-               results.add(0, start);
-               return results;
-       }
-
-       @Override
-       public List<Vertex> findChildren(Vertex start) {
-               Set<Vertex> seen = new HashSet<>();
-               seen.add(start);
-               GremlinPipeline<Vertex, Vertex> pipe = new GremlinPipeline(start).as("x").outE().has("isParent", true).inV()
-                               .except(seen).store(seen).loop("x", new PipeFunction<LoopPipe.LoopBundle<Vertex>, Boolean>() {
-
-                                       @Override
-                                       public Boolean compute(LoopPipe.LoopBundle<Vertex> argument) {
-                                               GremlinPipeline<Vertex, Long> pipe = new GremlinPipeline<>(argument.getObject());
-                                               return pipe.outE().has("isParent", true).count() >= 1 || argument.getLoops() < 100;
-                                       }
-                                       
-                               }, new PipeFunction<LoopPipe.LoopBundle<Vertex>, Boolean>() {
-
-                                       @Override
-                                       public Boolean compute(LoopPipe.LoopBundle<Vertex> argument) {
-                                               return true;
-                                       }
-                                       
-                               });
-               
-               List<Vertex> results = pipe.toList();
-               results.add(0, start);
-               return results;
-       }
-
-       @Override
-       public List<Vertex> findDeletable(Vertex start) {
-               Set<Vertex> seen = new HashSet<>();
-               seen.add(start);
-               GremlinPipeline<Vertex, Vertex> pipe = new GremlinPipeline<Vertex, Vertex>(start).as("x").outE().or(
-                               new GremlinPipeline(new IdentityPipe()).has("isParent", true),
-                               new GremlinPipeline(new IdentityPipe()).has("hasDelTarget", true)).inV()
-                               .except(seen).store(seen).loop("x", new PipeFunction<LoopPipe.LoopBundle<Vertex>, Boolean>() {
-
-                                       @Override
-                                       public Boolean compute(LoopPipe.LoopBundle<Vertex> argument) {
-                                               GremlinPipeline<Vertex, Long> pipe = new GremlinPipeline<>(argument.getObject());
-                                               return pipe.outE().or(
-                                                               new GremlinPipeline(new IdentityPipe()).has("isParent", true),
-                                                               new GremlinPipeline(new IdentityPipe()).has("hasDelTarget", true)).count() >= 1 || argument.getLoops() < 100;
-                                       }
-                                       
-                               }, new PipeFunction<LoopPipe.LoopBundle<Vertex>, Boolean>() {
-
-                                       @Override
-                                       public Boolean compute(LoopPipe.LoopBundle<Vertex> argument) {
-                                               return true;
-                                       }
-                                       
-                               });
-               List<Vertex> results = pipe.toList();
-               results.add(0, start);
-               
-               return results;
-       }
-       
-       private List<Vertex> process(GremlinPipeline start, GremlinPipeline pipe) {
-               
-               
-               return start.add(pipe).cast(Vertex.class).toList();
-       }
-
-       @Override
-       public List<Vertex> findRelatedVertices(Vertex start, Direction direction, String label, String nodeType) {
-               GremlinPipeline<Vertex, Vertex> pipe = new GremlinPipeline<Vertex, Vertex>(start);
-               switch (direction) {
-                       case OUT:
-                               pipe.out(label);
-                               break;
-                       case IN:
-                               pipe.in(label);
-                               break;
-                       case BOTH:
-                               pipe.both(label);
-                               break;
-                        default:
-                               break;
-               }
-               
-               pipe.has(AAIProperties.NODE_TYPE, nodeType).dedup();
-               List<Vertex> result = pipe.toList();
-               return result;
-       }
-
-}
-*/