package org.jboss.windup.config.query; import org.jboss.forge.furnace.util.Predicate; import org.jboss.windup.graph.model.WindupVertexFrame; import org.ocpsoft.rewrite.config.ConditionBuilder; /** * @author <a href="mailto:lincolnbaxter@gmail.com">Lincoln Baxter, III</a> */ public interface QueryBuilderWith extends ConditionBuilder, QueryBuilderAs { /** * Narrow the query via a {@link QueryGremlinCriterion} in order to execute Gremlin queries. */ QueryBuilderPiped piped(QueryGremlinCriterion criterion); /** * Narrow the query to {@link WindupVertexFrame} instances that have the given property defined. */ QueryBuilderWith withProperty(String property); /** * Narrow the query to {@link WindupVertexFrame} instances that contain the given property value. */ QueryBuilderWith withProperty(String property, Object searchValue); /** * Narrow the query to {@link WindupVertexFrame} instances that contain any of the given property values. */ QueryBuilderWith withProperty(String property, Iterable<?> values); /** * Narrow the query to {@link WindupVertexFrame} instances that contain any given property value. */ QueryBuilderWith withProperty(String property, Object searchValue, Object... searchValues); /** * Narrow the query to {@link WindupVertexFrame} instances that satisfy the given property comparison. */ QueryBuilderWith withProperty(String property, QueryPropertyComparisonType searchType, Object searchValue); /** * Narrow the query to {@link WindupVertexFrame} instances that satisfy the given property comparison. */ QueryBuilderWith withoutProperty(String property); /** * Narrow the query with the given {@link Predicate} */ <FRAMETYPE extends WindupVertexFrame> QueryBuilderAs filteredBy(Predicate<FRAMETYPE> predicate); }