return Text.textPrefix(value); case "textRegex": return Text.textRegex(value); default: return (P) P.class.getMethod(predicate, Object.class).invoke(null, value);
@Override public void query(GraphRewrite event, GraphTraversal<?, Vertex> pipeline) { pipeline.out(FileReferenceModel.FILE_MODEL).in(FileReferenceModel.FILE_MODEL) .has(JavaTypeReferenceModel.RESOLVED_SOURCE_SNIPPIT, Text.textRegex(compiledPattern.toString())); } });
@Override public void query(GraphRewrite event, GraphTraversal<?, Vertex> pipeline) { pipeline.out(FileReferenceModel.FILE_MODEL).in(FileReferenceModel.FILE_MODEL) .has(JavaTypeReferenceModel.RESOLVED_SOURCE_SNIPPIT, Text.textRegex(compiledPattern.toString())); } });
public List<FileModel> findArchiveEntryWithExtension(String... values) { // build regex if (values.length == 0) return Collections.emptyList(); final String regex; if (values.length == 1) { regex = ".+\\." + values[0] + "$"; } else { StringBuilder builder = new StringBuilder(); builder.append("\\b("); for (String value : values) { builder.append("|"); builder.append(value); } builder.append(")\\b"); regex = ".+\\." + builder.toString() + "$"; } return (List<FileModel>)getGraphContext().getQuery(FileModel.class).traverse(g -> g.has("filePath", Text.textRegex(regex))) .toList(FileModel.class); } }
public List<FileModel> findArchiveEntryWithExtension(String... values) { // build regex if (values.length == 0) return Collections.emptyList(); final String regex; if (values.length == 1) { regex = ".+\\." + values[0] + "$"; } else { StringBuilder builder = new StringBuilder(); builder.append("\\b("); for (String value : values) { builder.append("|"); builder.append(value); } builder.append(")\\b"); regex = ".+\\." + builder.toString() + "$"; } return (List<FileModel>)getGraphContext().getQuery(FileModel.class).traverse(g -> g.has("filePath", Text.textRegex(regex))) .toList(FileModel.class); } }
@Override public void query(GraphRewrite event, GraphTraversal<?, Vertex> pipeline) { pipeline.as("result") .out(FileReferenceModel.FILE_MODEL) .out(JavaSourceFileModel.JAVA_CLASS_MODEL) .has(JavaClassModel.QUALIFIED_NAME, Text.textRegex(compiledTypeFilterPattern.pattern())) .select("result"); } }
@Override public Iterable<T> findAllByPropertyMatchingRegex(final String key, final String... regex) { return ExecutionStatistics.performBenchmarked("GraphService.findAllByPropertyMatchingRegex(" + key + ")", () -> { if (regex.length == 0) return IterablesUtil.emptyIterable(); final String regexFinal; if (regex.length == 1) { regexFinal = regex[0]; } else { StringBuilder builder = new StringBuilder(); builder.append("\\b("); int i = 0; for (String value : regex) { if (i > 0) builder.append("|"); builder.append(value); i++; } builder.append(")\\b"); regexFinal = builder.toString(); } return (List<T>)findAllQuery().traverse(g -> g.has(key, Text.textRegex(regexFinal))).toList(type); }); }
@Override public void query(GraphRewrite event, GraphTraversal<?, Vertex> pipeline) { pipeline.as("result") .out(FileReferenceModel.FILE_MODEL) .out(JavaSourceFileModel.JAVA_CLASS_MODEL) .has(JavaClassModel.QUALIFIED_NAME, Text.textRegex(compiledTypeFilterPattern.pattern())) .select("result"); } }
@Override public Iterable<T> findAllByPropertyMatchingRegex(final String key, final String... regex) { return ExecutionStatistics.performBenchmarked("GraphService.findAllByPropertyMatchingRegex(" + key + ")", () -> { if (regex.length == 0) return IterablesUtil.emptyIterable(); final String regexFinal; if (regex.length == 1) { regexFinal = regex[0]; } else { StringBuilder builder = new StringBuilder(); builder.append("\\b("); int i = 0; for (String value : regex) { if (i > 0) builder.append("|"); builder.append(value); i++; } builder.append(")\\b"); regexFinal = builder.toString(); } return (List<T>)findAllQuery().traverse(g -> g.has(key, Text.textRegex(regexFinal))).toList(type); }); }
@Override public void query(GraphRewrite event, GraphTraversal<?, Vertex> pipeline) { pipeline.has(DoctypeMetaModel.PROPERTY_PUBLIC_ID, Text.textRegex(REGEX_HIBERNATE)); Traversal<?, ?> systemIDQuery = event.getGraphContext().getQuery(DoctypeMetaModel.class) .getRawTraversal() .has(DoctypeMetaModel.PROPERTY_SYSTEM_ID, Text.textRegex(REGEX_HIBERNATE)); GraphTraversal<Vertex, Vertex> systemIdPipeline = new GraphTraversalSource(event.getGraphContext().getGraph()).V(systemIDQuery.toList()); pipeline.union(systemIdPipeline); pipeline.dedup(); } };
@Override public void query(GraphRewrite event, GraphTraversal<?, Vertex> pipeline) { pipeline.has(DoctypeMetaModel.PROPERTY_PUBLIC_ID, Text.textRegex(REGEX_HIBERNATE)); Traversal<?, ?> systemIDQuery = event.getGraphContext().getQuery(DoctypeMetaModel.class) .getRawTraversal().has(DoctypeMetaModel.PROPERTY_SYSTEM_ID, Text.textRegex(REGEX_HIBERNATE)); GraphTraversal<Vertex, Vertex> systemIdPipeline = new GraphTraversalSource(event.getGraphContext().getGraph()).V(systemIDQuery.toList()); pipeline.union(systemIdPipeline); pipeline.dedup(); } };
@Override public void query(GraphRewrite event, GraphTraversal<?, Vertex> pipeline) { pipeline.has(DoctypeMetaModel.PROPERTY_PUBLIC_ID, Text.textRegex(REGEX_HIBERNATE)); Traversal<?, ?> systemIDQuery = event.getGraphContext().getQuery(DoctypeMetaModel.class) .getRawTraversal().has(DoctypeMetaModel.PROPERTY_SYSTEM_ID, Text.textRegex(REGEX_HIBERNATE)); GraphTraversal<Vertex, Vertex> systemIdPipeline = new GraphTraversalSource(event.getGraphContext().getGraph()).V(systemIDQuery.toList()); pipeline.union(systemIdPipeline); pipeline.dedup(); } };
@Override public void query(GraphRewrite event, GraphTraversal<?, Vertex> pipeline) { pipeline.has(DoctypeMetaModel.PROPERTY_PUBLIC_ID, Text.textRegex(REGEX_HIBERNATE)); Traversal<?, ?> systemIDQuery = event.getGraphContext().getQuery(DoctypeMetaModel.class) .getRawTraversal() .has(DoctypeMetaModel.PROPERTY_SYSTEM_ID, Text.textRegex(REGEX_HIBERNATE)); GraphTraversal<Vertex, Vertex> systemIdPipeline = new GraphTraversalSource(event.getGraphContext().getGraph()).V(systemIDQuery.toList()); pipeline.union(systemIdPipeline); pipeline.dedup(); } };
public Iterable<FileModel> findByFilenameRegex(String filenameRegex) { filenameRegex = TitanUtil.titanifyRegex(filenameRegex); Iterable<Vertex> vertices = getGraphContext().getGraph() .traversal() .V() .has(FileModel.FILE_NAME, Text.textRegex(filenameRegex)) // I'm not sure why this is necessary, but for some reason ".has(WindupFrame.TYPE_PROP, FileModel.TYPE)" // seems to be unreliable with this query. Doing it with this filter seems to fix it. .filter(traversal -> { Iterator<VertexProperty<String>> typeIterator = traversal.get().properties(WindupFrame.TYPE_PROP); while (typeIterator.hasNext()) { if (FileModel.TYPE.equals(typeIterator.next().value())) { return true; } } return false; }) .toList(); return new FramedVertexIterable<>(getGraphContext().getFramed(), vertices, FileModel.class); }
public Iterable<FileModel> findByFilenameRegex(String filenameRegex) { filenameRegex = TitanUtil.titanifyRegex(filenameRegex); Iterable<Vertex> vertices = getGraphContext().getGraph() .traversal() .V() .has(FileModel.FILE_NAME, Text.textRegex(filenameRegex)) // I'm not sure why this is necessary, but for some reason ".has(WindupFrame.TYPE_PROP, FileModel.TYPE)" // seems to be unreliable with this query. Doing it with this filter seems to fix it. .filter(traversal -> { Iterator<VertexProperty<String>> typeIterator = traversal.get().properties(WindupFrame.TYPE_PROP); while (typeIterator.hasNext()) { if (FileModel.TYPE.equals(typeIterator.next().value())) { return true; } } return false; }) .toList(); return new FramedVertexIterable<>(getGraphContext().getFramed(), vertices, FileModel.class); }
@Override public void query(GraphRewrite event, GraphTraversal<?, Vertex> pipeline) { switch (searchType) { case EQUALS: pipeline.has(this.propertyName, this.searchValue); break; case NOT_EQUALS: pipeline.has(this.propertyName, P.neq(this.searchValue)); break; case CONTAINS_TOKEN: pipeline.has(this.propertyName, Text.textContains(searchValue)); break; case CONTAINS_ANY_TOKEN: pipeline.has(this.propertyName, new P(new MultipleValueTitanPredicate(), searchValue)); break; case REGEX: pipeline.has(this.propertyName, Text.textRegex(searchValue)); break; case DEFINED: pipeline.has(this.propertyName); break; case NOT_DEFINED: pipeline.hasNot(this.propertyName); break; default: throw new IllegalArgumentException("Unrecognized property query type: " + searchType); } }
@Override public void query(GraphRewrite event, GraphTraversal<?, Vertex> pipeline) { switch (searchType) { case EQUALS: pipeline.has(this.propertyName, this.searchValue); break; case NOT_EQUALS: pipeline.has(this.propertyName, P.neq(this.searchValue)); break; case CONTAINS_TOKEN: pipeline.has(this.propertyName, Text.textContains(searchValue)); break; case CONTAINS_ANY_TOKEN: pipeline.has(this.propertyName, new P(new MultipleValueTitanPredicate(), searchValue)); break; case REGEX: pipeline.has(this.propertyName, Text.textRegex(searchValue)); break; case DEFINED: pipeline.has(this.propertyName); break; case NOT_DEFINED: pipeline.hasNot(this.propertyName); break; default: throw new IllegalArgumentException("Unrecognized property query type: " + searchType); } }
resolvedTextSearch.has(JavaTypeReferenceModel.RESOLVED_SOURCE_SNIPPIT, Text.textRegex(TitanUtil.titanifyRegex(compiledPattern.pattern())));
resolvedTextSearch.has(JavaTypeReferenceModel.RESOLVED_SOURCE_SNIPPIT, Text.textRegex(TitanUtil.titanifyRegex(compiledPattern.pattern())));