+ public QueryBuilder<Vertex> createEdgeTraversal(String outNodeType, String inNodeType) throws AAIException {
+
+ Introspector out = loader.introspectorFromName(outNodeType);
+ Introspector in = loader.introspectorFromName(inNodeType);
+
+ QueryBuilder<Vertex> cousinBuilder = null;
+ QueryBuilder<Vertex> treeBuilder = null;
+ QueryBuilder<Vertex> queryBuilder = null;
+
+ try {
+ cousinBuilder = this.newInstance().createEdgeTraversal(EdgeType.COUSIN, out, in);
+ } catch (AAIException e) {
+ }
+
+ if(cousinBuilder != null){
+ try {
+ treeBuilder = this.newInstance().createEdgeTraversal(EdgeType.TREE, out, in);
+ } catch (AAIException e) {
+ }
+ if(treeBuilder != null){
+ queryBuilder = this.union(new QueryBuilder[]{cousinBuilder, treeBuilder});
+ } else {
+ queryBuilder = this.union(new QueryBuilder[]{cousinBuilder});
+ }
+ } else {
+ treeBuilder = this.newInstance().createEdgeTraversal(EdgeType.TREE, out, in);
+ queryBuilder = this.union(new QueryBuilder[]{treeBuilder});
+ }
+
+
+ return queryBuilder;
+ }
+
+ public QueryBuilder<Vertex> createPrivateEdgeTraversal(EdgeType type, String outNodeType, String inNodeType) throws AAIException {
+ Introspector out = loader.introspectorFromName(outNodeType);
+ Introspector in = loader.introspectorFromName(inNodeType);
+ return createPrivateEdgeTraversal(type, out, in);
+ }
+