ZEST-113; Removed the use of Specification and replaced with Java 8 Predicate.
Project: http://git-wip-us.apache.org/repos/asf/zest-java/repo Commit: http://git-wip-us.apache.org/repos/asf/zest-java/commit/b659ba67 Tree: http://git-wip-us.apache.org/repos/asf/zest-java/tree/b659ba67 Diff: http://git-wip-us.apache.org/repos/asf/zest-java/diff/b659ba67 Branch: refs/heads/develop Commit: b659ba675214e353749527bd155dd0a6bb5fe6b2 Parents: 8f889ea Author: Niclas Hedhman <[email protected]> Authored: Sat Aug 22 17:33:38 2015 +0800 Committer: Niclas Hedhman <[email protected]> Committed: Sat Aug 22 17:33:39 2015 +0800 ---------------------------------------------------------------------- .../org/apache/zest/api/dataset/DataSet.java | 4 +- .../java/org/apache/zest/api/dataset/Query.java | 4 +- .../api/dataset/iterable/IterableDataSet.java | 4 +- .../api/dataset/iterable/IterableQuery.java | 4 +- .../org/apache/zest/api/query/QueryBuilder.java | 4 +- .../apache/zest/api/query/QueryExpressions.java | 160 ++++++------ .../zest/api/query/grammar/AndPredicate.java | 56 ++++ .../api/query/grammar/AndSpecification.java | 56 ---- .../grammar/AssociationNotNullPredicate.java | 67 +++++ .../AssociationNotNullSpecification.java | 67 ----- .../query/grammar/AssociationNullPredicate.java | 67 +++++ .../grammar/AssociationNullSpecification.java | 67 ----- .../zest/api/query/grammar/BinaryPredicate.java | 41 +++ .../api/query/grammar/BinarySpecification.java | 41 --- .../api/query/grammar/ComparisonPredicate.java | 76 ++++++ .../query/grammar/ComparisonSpecification.java | 76 ------ .../api/query/grammar/ContainsAllPredicate.java | 78 ++++++ .../query/grammar/ContainsAllSpecification.java | 78 ------ .../api/query/grammar/ContainsPredicate.java | 67 +++++ .../query/grammar/ContainsSpecification.java | 67 ----- .../zest/api/query/grammar/EqPredicate.java | 43 ++++ .../zest/api/query/grammar/EqSpecification.java | 43 ---- .../api/query/grammar/ExpressionPredicate.java | 60 +++++ .../query/grammar/ExpressionSpecification.java | 60 ----- .../zest/api/query/grammar/GePredicate.java | 44 ++++ .../zest/api/query/grammar/GeSpecification.java | 44 ---- .../zest/api/query/grammar/GtPredicate.java | 44 ++++ .../zest/api/query/grammar/GtSpecification.java | 44 ---- .../zest/api/query/grammar/LePredicate.java | 44 ++++ .../zest/api/query/grammar/LeSpecification.java | 44 ---- .../zest/api/query/grammar/LtPredicate.java | 44 ++++ .../zest/api/query/grammar/LtSpecification.java | 44 ---- .../ManyAssociationContainsPredicate.java | 65 +++++ .../ManyAssociationContainsSpecification.java | 65 ----- .../api/query/grammar/MatchesPredicate.java | 93 +++++++ .../api/query/grammar/MatchesSpecification.java | 93 ------- .../NamedAssociationContainsNamePredicate.java | 65 +++++ ...medAssociationContainsNameSpecification.java | 65 ----- .../NamedAssociationContainsPredicate.java | 65 +++++ .../NamedAssociationContainsSpecification.java | 65 ----- .../zest/api/query/grammar/NePredicate.java | 43 ++++ .../zest/api/query/grammar/NeSpecification.java | 43 ---- .../api/query/grammar/NotSpecification.java | 53 ---- .../zest/api/query/grammar/Notpredicate.java | 53 ++++ .../zest/api/query/grammar/OrPredicate.java | 56 ++++ .../zest/api/query/grammar/OrSpecification.java | 56 ---- .../query/grammar/PropertyNotNullPredicate.java | 60 +++++ .../grammar/PropertyNotNullSpecification.java | 60 ----- .../query/grammar/PropertyNullPredicate.java | 60 +++++ .../grammar/PropertyNullSpecification.java | 60 ----- .../api/query/grammar/QuerySpecification.java | 8 +- .../importer/ServiceSelectorImporter.java | 6 +- .../zest/api/service/qualifier/Active.java | 4 +- .../service/qualifier/AnnotationQualifier.java | 4 +- .../zest/api/service/qualifier/Available.java | 4 +- .../zest/api/service/qualifier/HasMetaInfo.java | 8 +- .../api/service/qualifier/IdentifiedBy.java | 4 +- .../api/service/qualifier/ServiceQualifier.java | 36 +-- .../zest/api/service/qualifier/Tagged.java | 4 +- .../zest/api/type/MatchTypeSpecification.java | 6 +- .../org/apache/zest/api/util/Annotations.java | 14 +- .../java/org/apache/zest/api/util/Classes.java | 56 ++-- .../java/org/apache/zest/api/util/Methods.java | 6 +- .../java/org/apache/zest/api/OperatorsTest.java | 10 +- .../org/apache/zest/api/util/ClassesTest.java | 4 +- .../zest/bootstrap/AssemblySpecifications.java | 10 +- .../org/apache/zest/bootstrap/ClassScanner.java | 26 +- .../apache/zest/bootstrap/LayerAssembly.java | 14 +- .../apache/zest/bootstrap/ModuleAssembly.java | 16 +- .../zest/bootstrap/DocumentationSupport.java | 6 +- .../org/apache/zest/functional/ForEach.java | 3 +- .../org/apache/zest/functional/Functions.java | 69 +---- .../org/apache/zest/functional/Iterables.java | 23 +- .../apache/zest/functional/Specification.java | 37 --- .../apache/zest/functional/Specifications.java | 88 +++---- .../IntegerRangeSpecificationTest.java | 17 +- .../apache/zest/functional/IterablesTest.java | 5 +- .../zest/functional/SpecificationsTest.java | 36 +-- .../java/org/apache/zest/io/Transforms.java | 10 +- .../bootstrap/CompositeAssemblyImpl.java | 39 +-- .../runtime/bootstrap/LayerAssemblyImpl.java | 14 +- .../runtime/bootstrap/ModuleAssemblyImpl.java | 34 +-- .../runtime/composite/CompositeMethodModel.java | 6 +- .../runtime/composite/GenericSpecification.java | 37 --- .../runtime/composite/Genericpredicate.java | 37 +++ .../zest/runtime/composite/MixinsModel.java | 6 +- .../zest/runtime/injection/DependencyModel.java | 6 +- .../runtime/injection/InjectedFieldModel.java | 6 +- .../injection/InjectedParametersModel.java | 6 +- .../ServiceInjectionProviderFactory.java | 16 +- .../provider/ThisInjectionProviderFactory.java | 2 +- .../zest/runtime/query/IterableQuerySource.java | 12 +- .../zest/runtime/query/QueryBuilderImpl.java | 8 +- .../apache/zest/runtime/query/QueryImpl.java | 6 +- .../service/ImportedServicesInstance.java | 6 +- .../zest/runtime/service/ServiceInstance.java | 2 +- .../zest/runtime/service/ServicesInstance.java | 6 +- .../zest/runtime/structure/ModuleInstance.java | 14 +- .../runtime/structure/ModuleUnitOfWork.java | 8 +- .../zest/runtime/structure/TypeLookup.java | 14 +- .../structure/VisibilitySpecification.java | 47 ---- .../runtime/structure/Visibilitypredicate.java | 47 ++++ .../zest/runtime/types/ValueTypeFactory.java | 2 +- .../runtime/unitofwork/BuilderEntityState.java | 2 +- .../runtime/injection/ServiceInjectionTest.java | 8 +- .../apache/zest/runtime/mixin/JDKMixinTest.java | 10 +- .../entitystore/helpers/DefaultEntityState.java | 2 +- .../org/apache/zest/spi/query/EntityFinder.java | 8 +- .../org/apache/zest/spi/query/QuerySource.java | 8 +- .../test/indexing/AbstractEntityFinderTest.java | 4 +- .../test/indexing/AbstractNamedQueryTest.java | 8 +- .../elasticsearch/ElasticSearchFinder.java | 154 +++++------ .../ElasticSearchFinderSupport.java | 12 +- .../zest/index/rdf/query/RdfQueryParser.java | 4 +- .../zest/index/rdf/query/RdfQueryService.java | 8 +- .../rdf/query/internal/RdfQueryParserImpl.java | 140 +++++----- .../zest/index/rdf/RdfNamedQueryTest.java | 4 +- .../solr/internal/SolrEntityQueryMixin.java | 8 +- .../zest/index/solr/SolrNamedQueryTest.java | 4 +- .../index/sql/internal/SQLEntityFinder.java | 8 +- .../zest/index/sql/support/api/SQLQuerying.java | 4 +- .../support/postgresql/PostgreSQLQuerying.java | 4 +- .../support/skeletons/AbstractSQLIndexing.java | 6 +- .../support/skeletons/AbstractSQLQuerying.java | 254 +++++++++---------- .../support/skeletons/AbstractSQLStartup.java | 6 +- .../skeletons/SQLCompatEntityStateWrapper.java | 6 +- .../library/circuitbreaker/CircuitBreaker.java | 8 +- .../library/circuitbreaker/CircuitBreakers.java | 16 +- .../conversion/values/EntityToValue.java | 12 +- .../zest/library/conversion/values/Shared.java | 20 +- .../conversion/values/ValueToEntityMixin.java | 24 +- .../conversion/values/ValueToEntityTest.java | 14 +- .../source/helper/ApplicationEvents.java | 46 ++-- .../domain/source/helper/EventRouter.java | 10 +- .../domain/source/helper/Events.java | 58 ++--- .../domain/source/helper/UnitOfWorkRouter.java | 10 +- .../org/apache/zest/library/jmx/ZestMBeans.java | 6 +- .../rest/client/api/ContextResourceClient.java | 2 +- .../library/rest/client/api/ErrorHandler.java | 18 +- .../library/rest/common/link/LinksUtil.java | 26 +- .../server/assembler/RestServerAssembler.java | 6 +- .../restlet/crud/IdentitySpecification.java | 7 +- .../restlet/identity/IdentityManager.java | 6 +- .../restlet/repository/CrudRepository.java | 5 +- .../restlet/repository/RepositoryLocator.java | 5 +- .../repository/SmallCrudRepositoryMixin.java | 5 +- .../library/sql/datasource/DataSources.java | 4 +- 147 files changed, 2292 insertions(+), 2365 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/zest-java/blob/b659ba67/core/api/src/main/java/org/apache/zest/api/dataset/DataSet.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/apache/zest/api/dataset/DataSet.java b/core/api/src/main/java/org/apache/zest/api/dataset/DataSet.java index 532c4c2..960cd39 100644 --- a/core/api/src/main/java/org/apache/zest/api/dataset/DataSet.java +++ b/core/api/src/main/java/org/apache/zest/api/dataset/DataSet.java @@ -19,7 +19,7 @@ package org.apache.zest.api.dataset; import java.util.function.Function; -import org.apache.zest.functional.Specification; +import java.util.function.Predicate; /** * definition.constrain(entity(Person.class)) @@ -28,7 +28,7 @@ import org.apache.zest.functional.Specification; */ public interface DataSet<T> { - DataSet<T> constrain( Specification<T> selection ); + DataSet<T> constrain( Predicate<T> selection ); <U> DataSet<U> project( Function<T, U> conversion ); http://git-wip-us.apache.org/repos/asf/zest-java/blob/b659ba67/core/api/src/main/java/org/apache/zest/api/dataset/Query.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/apache/zest/api/dataset/Query.java b/core/api/src/main/java/org/apache/zest/api/dataset/Query.java index 53244ac..b5124cb 100644 --- a/core/api/src/main/java/org/apache/zest/api/dataset/Query.java +++ b/core/api/src/main/java/org/apache/zest/api/dataset/Query.java @@ -18,10 +18,10 @@ */ package org.apache.zest.api.dataset; +import java.util.function.Predicate; import org.apache.zest.api.property.Property; import org.apache.zest.api.query.QueryException; import org.apache.zest.api.query.QueryExecutionException; -import org.apache.zest.functional.Specification; import org.apache.zest.functional.Visitor; /** @@ -34,7 +34,7 @@ public interface Query<T> ASCENDING, DESCENDING } - Query filter( Specification<T> filter ); + Query filter( Predicate<T> filter ); Query orderBy( final Property<?> property, final Order order ); http://git-wip-us.apache.org/repos/asf/zest-java/blob/b659ba67/core/api/src/main/java/org/apache/zest/api/dataset/iterable/IterableDataSet.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/apache/zest/api/dataset/iterable/IterableDataSet.java b/core/api/src/main/java/org/apache/zest/api/dataset/iterable/IterableDataSet.java index 1f88034..be2ddf4 100644 --- a/core/api/src/main/java/org/apache/zest/api/dataset/iterable/IterableDataSet.java +++ b/core/api/src/main/java/org/apache/zest/api/dataset/iterable/IterableDataSet.java @@ -19,10 +19,10 @@ package org.apache.zest.api.dataset.iterable; import java.util.function.Function; +import java.util.function.Predicate; import org.apache.zest.api.dataset.DataSet; import org.apache.zest.api.dataset.Query; import org.apache.zest.functional.Iterables; -import org.apache.zest.functional.Specification; /** * TODO @@ -38,7 +38,7 @@ public class IterableDataSet<T> } @Override - public DataSet<T> constrain( Specification<T> selection ) + public DataSet<T> constrain( Predicate<T> selection ) { return new IterableDataSet<T>( Iterables.filter( selection, iterable ) ); } http://git-wip-us.apache.org/repos/asf/zest-java/blob/b659ba67/core/api/src/main/java/org/apache/zest/api/dataset/iterable/IterableQuery.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/apache/zest/api/dataset/iterable/IterableQuery.java b/core/api/src/main/java/org/apache/zest/api/dataset/iterable/IterableQuery.java index 4c4952a..7476500 100644 --- a/core/api/src/main/java/org/apache/zest/api/dataset/iterable/IterableQuery.java +++ b/core/api/src/main/java/org/apache/zest/api/dataset/iterable/IterableQuery.java @@ -20,11 +20,11 @@ package org.apache.zest.api.dataset.iterable; import java.util.HashMap; import java.util.Map; +import java.util.function.Predicate; import org.apache.zest.api.dataset.Query; import org.apache.zest.api.property.Property; import org.apache.zest.api.query.QueryException; import org.apache.zest.functional.Iterables; -import org.apache.zest.functional.Specification; import org.apache.zest.functional.Visitor; /** @@ -43,7 +43,7 @@ public class IterableQuery<T> implements Query<T> } @Override - public Query filter( Specification<T> filter ) + public Query filter( Predicate<T> filter ) { iterable = Iterables.filter( filter, iterable ); http://git-wip-us.apache.org/repos/asf/zest-java/blob/b659ba67/core/api/src/main/java/org/apache/zest/api/query/QueryBuilder.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/apache/zest/api/query/QueryBuilder.java b/core/api/src/main/java/org/apache/zest/api/query/QueryBuilder.java index 38b010c..3384911 100644 --- a/core/api/src/main/java/org/apache/zest/api/query/QueryBuilder.java +++ b/core/api/src/main/java/org/apache/zest/api/query/QueryBuilder.java @@ -19,8 +19,8 @@ */ package org.apache.zest.api.query; +import java.util.function.Predicate; import org.apache.zest.api.composite.Composite; -import org.apache.zest.functional.Specification; /** * QueryBuilders are used to create {@link Query} instances. @@ -43,7 +43,7 @@ public interface QueryBuilder<T> * * @return a new builder with the added where-clause */ - QueryBuilder<T> where( Specification<Composite> specification ); + QueryBuilder<T> where( Predicate<Composite> specification ); /** * Create a new query with the declared where-clauses that will be evaluated against the iterable entries. http://git-wip-us.apache.org/repos/asf/zest-java/blob/b659ba67/core/api/src/main/java/org/apache/zest/api/query/QueryExpressions.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/apache/zest/api/query/QueryExpressions.java b/core/api/src/main/java/org/apache/zest/api/query/QueryExpressions.java index a109310..7c18bcc 100644 --- a/core/api/src/main/java/org/apache/zest/api/query/QueryExpressions.java +++ b/core/api/src/main/java/org/apache/zest/api/query/QueryExpressions.java @@ -28,6 +28,7 @@ import java.lang.reflect.Proxy; import java.lang.reflect.Type; import java.util.Arrays; import java.util.Collection; +import java.util.function.Predicate; import org.apache.zest.api.association.Association; import org.apache.zest.api.association.GenericAssociationInfo; import org.apache.zest.api.association.ManyAssociation; @@ -37,34 +38,33 @@ import org.apache.zest.api.entity.Identity; import org.apache.zest.api.injection.scope.State; import org.apache.zest.api.property.GenericPropertyInfo; import org.apache.zest.api.property.Property; -import org.apache.zest.api.query.grammar.AndSpecification; +import org.apache.zest.api.query.grammar.AndPredicate; import org.apache.zest.api.query.grammar.AssociationFunction; -import org.apache.zest.api.query.grammar.AssociationNotNullSpecification; -import org.apache.zest.api.query.grammar.AssociationNullSpecification; -import org.apache.zest.api.query.grammar.ContainsAllSpecification; -import org.apache.zest.api.query.grammar.ContainsSpecification; -import org.apache.zest.api.query.grammar.EqSpecification; -import org.apache.zest.api.query.grammar.GeSpecification; -import org.apache.zest.api.query.grammar.GtSpecification; -import org.apache.zest.api.query.grammar.LeSpecification; -import org.apache.zest.api.query.grammar.LtSpecification; -import org.apache.zest.api.query.grammar.ManyAssociationContainsSpecification; +import org.apache.zest.api.query.grammar.AssociationNotNullPredicate; +import org.apache.zest.api.query.grammar.AssociationNullPredicate; +import org.apache.zest.api.query.grammar.ContainsAllPredicate; +import org.apache.zest.api.query.grammar.ContainsPredicate; +import org.apache.zest.api.query.grammar.EqPredicate; +import org.apache.zest.api.query.grammar.GePredicate; +import org.apache.zest.api.query.grammar.GtPredicate; +import org.apache.zest.api.query.grammar.LePredicate; +import org.apache.zest.api.query.grammar.LtPredicate; +import org.apache.zest.api.query.grammar.ManyAssociationContainsPredicate; import org.apache.zest.api.query.grammar.ManyAssociationFunction; -import org.apache.zest.api.query.grammar.MatchesSpecification; -import org.apache.zest.api.query.grammar.NamedAssociationContainsNameSpecification; -import org.apache.zest.api.query.grammar.NamedAssociationContainsSpecification; +import org.apache.zest.api.query.grammar.MatchesPredicate; +import org.apache.zest.api.query.grammar.NamedAssociationContainsNamePredicate; +import org.apache.zest.api.query.grammar.NamedAssociationContainsPredicate; import org.apache.zest.api.query.grammar.NamedAssociationFunction; -import org.apache.zest.api.query.grammar.NeSpecification; -import org.apache.zest.api.query.grammar.NotSpecification; -import org.apache.zest.api.query.grammar.OrSpecification; +import org.apache.zest.api.query.grammar.NePredicate; +import org.apache.zest.api.query.grammar.Notpredicate; +import org.apache.zest.api.query.grammar.OrPredicate; import org.apache.zest.api.query.grammar.OrderBy; import org.apache.zest.api.query.grammar.PropertyFunction; -import org.apache.zest.api.query.grammar.PropertyNotNullSpecification; -import org.apache.zest.api.query.grammar.PropertyNullSpecification; +import org.apache.zest.api.query.grammar.PropertyNotNullPredicate; +import org.apache.zest.api.query.grammar.PropertyNullPredicate; import org.apache.zest.api.query.grammar.PropertyReference; import org.apache.zest.api.query.grammar.Variable; import org.apache.zest.api.util.NullArgumentException; -import org.apache.zest.functional.Specification; import static org.apache.zest.functional.Iterables.first; import static org.apache.zest.functional.Iterables.prepend; @@ -300,12 +300,12 @@ public final class QueryExpressions * @return a new AND specification */ @SafeVarargs - public static AndSpecification and( Specification<Composite> left, - Specification<Composite> right, - Specification<Composite>... optionalRight + public static AndPredicate and( Predicate<Composite> left, + Predicate<Composite> right, + Predicate<Composite>... optionalRight ) { - return new AndSpecification( prepend( left, prepend( right, Arrays.asList( optionalRight ) ) ) ); + return new AndPredicate( prepend( left, prepend( right, Arrays.asList( optionalRight ) ) ) ); } /** @@ -316,9 +316,9 @@ public final class QueryExpressions * @return a new OR specification */ @SafeVarargs - public static OrSpecification or( Specification<Composite>... specs ) + public static OrPredicate or( Predicate<Composite>... specs ) { - return new OrSpecification( Arrays.asList( specs ) ); + return new OrPredicate( Arrays.asList( specs ) ); } /** @@ -328,9 +328,9 @@ public final class QueryExpressions * * @return a new NOT specification */ - public static NotSpecification not( Specification<Composite> operand ) + public static Notpredicate not( Predicate<Composite> operand ) { - return new NotSpecification( operand ); + return new Notpredicate( operand ); } // Comparisons -----------------------------------------------------------| @@ -343,9 +343,9 @@ public final class QueryExpressions * * @return a new EQUALS specification for a Property. */ - public static <T> EqSpecification<T> eq( Property<T> property, T value ) + public static <T> EqPredicate<T> eq( Property<T> property, T value ) { - return new EqSpecification<>( property( property ), value ); + return new EqPredicate<>( property( property ), value ); } /** @@ -357,9 +357,9 @@ public final class QueryExpressions * @return a new EQUALS specification for a Property using a named Variable. */ @SuppressWarnings( {"raw", "unchecked"} ) - public static <T> EqSpecification<T> eq( Property<T> property, Variable variable ) + public static <T> EqPredicate<T> eq( Property<T> property, Variable variable ) { - return new EqSpecification( property( property ), variable ); + return new EqPredicate( property( property ), variable ); } /** @@ -370,9 +370,9 @@ public final class QueryExpressions * * @return a new EQUALS specification for an Association. */ - public static <T> EqSpecification<String> eq( Association<T> association, T value ) + public static <T> EqPredicate<String> eq( Association<T> association, T value ) { - return new EqSpecification<>( new PropertyFunction<String>( null, + return new EqPredicate<>( new PropertyFunction<String>( null, association( association ), null, null, @@ -388,9 +388,9 @@ public final class QueryExpressions * * @return a new GREATER OR EQUALS specification for a Property. */ - public static <T> GeSpecification<T> ge( Property<T> property, T value ) + public static <T> GePredicate<T> ge( Property<T> property, T value ) { - return new GeSpecification<>( property( property ), value ); + return new GePredicate<>( property( property ), value ); } /** @@ -402,9 +402,9 @@ public final class QueryExpressions * @return a new GREATER OR EQUALS specification for a Property using a named Variable. */ @SuppressWarnings( {"raw", "unchecked"} ) - public static <T> GeSpecification<T> ge( Property<T> property, Variable variable ) + public static <T> GePredicate<T> ge( Property<T> property, Variable variable ) { - return new GeSpecification( property( property ), variable ); + return new GePredicate( property( property ), variable ); } /** @@ -415,9 +415,9 @@ public final class QueryExpressions * * @return a new GREATER THAN specification for a Property. */ - public static <T> GtSpecification<T> gt( Property<T> property, T value ) + public static <T> GtPredicate<T> gt( Property<T> property, T value ) { - return new GtSpecification<>( property( property ), value ); + return new GtPredicate<>( property( property ), value ); } /** @@ -429,9 +429,9 @@ public final class QueryExpressions * @return a new GREATER THAN specification for a Property using a named Variable. */ @SuppressWarnings( {"raw", "unchecked"} ) - public static <T> GtSpecification<T> gt( Property<T> property, Variable variable ) + public static <T> GtPredicate<T> gt( Property<T> property, Variable variable ) { - return new GtSpecification( property( property ), variable ); + return new GtPredicate( property( property ), variable ); } /** @@ -442,9 +442,9 @@ public final class QueryExpressions * * @return a new LESS OR EQUALS specification for a Property. */ - public static <T> LeSpecification<T> le( Property<T> property, T value ) + public static <T> LePredicate<T> le( Property<T> property, T value ) { - return new LeSpecification<>( property( property ), value ); + return new LePredicate<>( property( property ), value ); } /** @@ -456,9 +456,9 @@ public final class QueryExpressions * @return a new LESS OR EQUALS specification for a Property using a named Variable. */ @SuppressWarnings( {"raw", "unchecked"} ) - public static <T> LeSpecification<T> le( Property<T> property, Variable variable ) + public static <T> LePredicate<T> le( Property<T> property, Variable variable ) { - return new LeSpecification( property( property ), variable ); + return new LePredicate( property( property ), variable ); } /** @@ -469,9 +469,9 @@ public final class QueryExpressions * * @return a new LESSER THAN specification for a Property. */ - public static <T> LtSpecification<T> lt( Property<T> property, T value ) + public static <T> LtPredicate<T> lt( Property<T> property, T value ) { - return new LtSpecification<>( property( property ), value ); + return new LtPredicate<>( property( property ), value ); } /** @@ -483,9 +483,9 @@ public final class QueryExpressions * @return a new LESSER THAN specification for a Property using a named Variable. */ @SuppressWarnings( {"raw", "unchecked"} ) - public static <T> LtSpecification<T> lt( Property<T> property, Variable variable ) + public static <T> LtPredicate<T> lt( Property<T> property, Variable variable ) { - return new LtSpecification( property( property ), variable ); + return new LtPredicate( property( property ), variable ); } /** @@ -496,9 +496,9 @@ public final class QueryExpressions * * @return a new NOT EQUALS specification for a Property. */ - public static <T> NeSpecification<T> ne( Property<T> property, T value ) + public static <T> NePredicate<T> ne( Property<T> property, T value ) { - return new NeSpecification<>( property( property ), value ); + return new NePredicate<>( property( property ), value ); } /** @@ -510,9 +510,9 @@ public final class QueryExpressions * @return a new NOT EQUALS specification for a Property using a named Variable. */ @SuppressWarnings( {"raw", "unchecked"} ) - public static <T> NeSpecification<T> ne( Property<T> property, Variable variable ) + public static <T> NePredicate<T> ne( Property<T> property, Variable variable ) { - return new NeSpecification( property( property ), variable ); + return new NePredicate( property( property ), variable ); } /** @@ -523,9 +523,9 @@ public final class QueryExpressions * * @return a new REGULAR EXPRESSION specification for a Property. */ - public static MatchesSpecification matches( Property<String> property, String regexp ) + public static MatchesPredicate matches( Property<String> property, String regexp ) { - return new MatchesSpecification( property( property ), regexp ); + return new MatchesPredicate( property( property ), regexp ); } /** @@ -536,9 +536,9 @@ public final class QueryExpressions * * @return a new REGULAR EXPRESSION specification for a Property using a named Variable. */ - public static MatchesSpecification matches( Property<String> property, Variable variable ) + public static MatchesPredicate matches( Property<String> property, Variable variable ) { - return new MatchesSpecification( property( property ), variable ); + return new MatchesPredicate( property( property ), variable ); } // Null checks -----------------------------------------------------------| @@ -550,9 +550,9 @@ public final class QueryExpressions * * @return a new NOT NULL specification for a Property. */ - public static <T> PropertyNotNullSpecification<T> isNotNull( Property<T> property ) + public static <T> PropertyNotNullPredicate<T> isNotNull( Property<T> property ) { - return new PropertyNotNullSpecification<>( property( property ) ); + return new PropertyNotNullPredicate<>( property( property ) ); } /** @@ -562,9 +562,9 @@ public final class QueryExpressions * * @return a new NULL specification for a Property. */ - public static <T> PropertyNullSpecification<T> isNull( Property<T> property ) + public static <T> PropertyNullPredicate<T> isNull( Property<T> property ) { - return new PropertyNullSpecification<>( property( property ) ); + return new PropertyNullPredicate<>( property( property ) ); } /** @@ -574,9 +574,9 @@ public final class QueryExpressions * * @return a new NOT NULL specification for an Association. */ - public static <T> AssociationNotNullSpecification<T> isNotNull( Association<T> association ) + public static <T> AssociationNotNullPredicate<T> isNotNull( Association<T> association ) { - return new AssociationNotNullSpecification<>( association( association ) ); + return new AssociationNotNullPredicate<>( association( association ) ); } /** @@ -586,9 +586,9 @@ public final class QueryExpressions * * @return a new NULL specification for an Association. */ - public static <T> AssociationNullSpecification<T> isNull( Association<T> association ) + public static <T> AssociationNullPredicate<T> isNull( Association<T> association ) { - return new AssociationNullSpecification<>( association( association ) ); + return new AssociationNullPredicate<>( association( association ) ); } // Collections -----------------------------------------------------------| @@ -601,11 +601,11 @@ public final class QueryExpressions * * @return a new CONTAINS ALL specification for a Collection Property. */ - public static <T> ContainsAllSpecification<T> containsAll( Property<? extends Collection<T>> collectionProperty, + public static <T> ContainsAllPredicate<T> containsAll( Property<? extends Collection<T>> collectionProperty, Iterable<T> values ) { NullArgumentException.validateNotNull( "Values", values ); - return new ContainsAllSpecification<>( property( collectionProperty ), values ); + return new ContainsAllPredicate<>( property( collectionProperty ), values ); } /** @@ -617,12 +617,12 @@ public final class QueryExpressions * @return a new CONTAINS ALL specification for a Collection Property using named Variables. */ @SuppressWarnings( {"raw", "unchecked"} ) - public static <T> ContainsAllSpecification<T> containsAllVariables( + public static <T> ContainsAllPredicate<T> containsAllVariables( Property<? extends Collection<T>> collectionProperty, Iterable<Variable> variables ) { NullArgumentException.validateNotNull( "Variables", variables ); - return new ContainsAllSpecification( property( collectionProperty ), variables ); + return new ContainsAllPredicate( property( collectionProperty ), variables ); } /** @@ -633,11 +633,11 @@ public final class QueryExpressions * * @return a new CONTAINS specification for a Collection Property. */ - public static <T> ContainsSpecification<T> contains( Property<? extends Collection<T>> collectionProperty, + public static <T> ContainsPredicate<T> contains( Property<? extends Collection<T>> collectionProperty, T value ) { NullArgumentException.validateNotNull( "Value", value ); - return new ContainsSpecification<>( property( collectionProperty ), value ); + return new ContainsPredicate<>( property( collectionProperty ), value ); } /** @@ -649,11 +649,11 @@ public final class QueryExpressions * @return a new CONTAINS specification for a Collection Property using named Variables. */ @SuppressWarnings( {"raw", "unchecked"} ) - public static <T> ContainsSpecification<T> contains( Property<? extends Collection<T>> collectionProperty, + public static <T> ContainsPredicate<T> contains( Property<? extends Collection<T>> collectionProperty, Variable variable ) { NullArgumentException.validateNotNull( "Variable", variable ); - return new ContainsSpecification( property( collectionProperty ), variable ); + return new ContainsPredicate( property( collectionProperty ), variable ); } /** @@ -664,9 +664,9 @@ public final class QueryExpressions * * @return a new CONTAINS specification for a ManyAssociation. */ - public static <T> ManyAssociationContainsSpecification<T> contains( ManyAssociation<T> manyAssoc, T value ) + public static <T> ManyAssociationContainsPredicate<T> contains( ManyAssociation<T> manyAssoc, T value ) { - return new ManyAssociationContainsSpecification<>( manyAssociation( manyAssoc ), value ); + return new ManyAssociationContainsPredicate<>( manyAssociation( manyAssoc ), value ); } /** @@ -677,9 +677,9 @@ public final class QueryExpressions * * @return a new CONTAINS specification for a NamedAssociation. */ - public static <T> NamedAssociationContainsSpecification<T> contains( NamedAssociation<T> namedAssoc, T value ) + public static <T> NamedAssociationContainsPredicate<T> contains( NamedAssociation<T> namedAssoc, T value ) { - return new NamedAssociationContainsSpecification<>( namedAssociation( namedAssoc ), value ); + return new NamedAssociationContainsPredicate<>( namedAssociation( namedAssoc ), value ); } /** @@ -690,10 +690,10 @@ public final class QueryExpressions * * @return a new CONTAINS NAME specification for a NamedAssociation. */ - public static <T> NamedAssociationContainsNameSpecification<T> containsName( NamedAssociation<T> namedAssoc, + public static <T> NamedAssociationContainsNamePredicate<T> containsName( NamedAssociation<T> namedAssoc, String name ) { - return new NamedAssociationContainsNameSpecification<>( namedAssociation( namedAssoc ), name ); + return new NamedAssociationContainsNamePredicate<>( namedAssociation( namedAssoc ), name ); } // Ordering --------------------------------------------------------------| http://git-wip-us.apache.org/repos/asf/zest-java/blob/b659ba67/core/api/src/main/java/org/apache/zest/api/query/grammar/AndPredicate.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/apache/zest/api/query/grammar/AndPredicate.java b/core/api/src/main/java/org/apache/zest/api/query/grammar/AndPredicate.java new file mode 100644 index 0000000..d89c65a --- /dev/null +++ b/core/api/src/main/java/org/apache/zest/api/query/grammar/AndPredicate.java @@ -0,0 +1,56 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you 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. + */ +package org.apache.zest.api.query.grammar; + +import java.util.function.Predicate; +import org.apache.zest.api.composite.Composite; +import org.apache.zest.functional.Specifications; + +/** + * AND Specification. + */ +public class AndPredicate + extends BinaryPredicate +{ + + public AndPredicate( Iterable<Predicate<Composite>> operands ) + { + super( operands ); + } + + @Override + public boolean test( Composite item ) + { + return Specifications.and( operands ).test( item ); + } + + @Override + public String toString() + { + StringBuilder sb = new StringBuilder( "(" ); + String and = ""; + for( Predicate<Composite> operand : operands ) + { + sb.append( and ).append( operand ); + and = " and "; + } + return sb.append( ")" ).toString(); + } + +} http://git-wip-us.apache.org/repos/asf/zest-java/blob/b659ba67/core/api/src/main/java/org/apache/zest/api/query/grammar/AndSpecification.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/apache/zest/api/query/grammar/AndSpecification.java b/core/api/src/main/java/org/apache/zest/api/query/grammar/AndSpecification.java deleted file mode 100644 index 3d710ad..0000000 --- a/core/api/src/main/java/org/apache/zest/api/query/grammar/AndSpecification.java +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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. - */ -package org.apache.zest.api.query.grammar; - -import org.apache.zest.api.composite.Composite; -import org.apache.zest.functional.Specification; -import org.apache.zest.functional.Specifications; - -/** - * AND Specification. - */ -public class AndSpecification - extends BinarySpecification -{ - - public AndSpecification( Iterable<Specification<Composite>> operands ) - { - super( operands ); - } - - @Override - public boolean satisfiedBy( Composite item ) - { - return Specifications.and( operands ).satisfiedBy( item ); - } - - @Override - public String toString() - { - StringBuilder sb = new StringBuilder( "(" ); - String and = ""; - for( Specification<Composite> operand : operands ) - { - sb.append( and ).append( operand ); - and = " and "; - } - return sb.append( ")" ).toString(); - } - -} http://git-wip-us.apache.org/repos/asf/zest-java/blob/b659ba67/core/api/src/main/java/org/apache/zest/api/query/grammar/AssociationNotNullPredicate.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/apache/zest/api/query/grammar/AssociationNotNullPredicate.java b/core/api/src/main/java/org/apache/zest/api/query/grammar/AssociationNotNullPredicate.java new file mode 100644 index 0000000..05bb3b5 --- /dev/null +++ b/core/api/src/main/java/org/apache/zest/api/query/grammar/AssociationNotNullPredicate.java @@ -0,0 +1,67 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you 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. + */ +package org.apache.zest.api.query.grammar; + +import org.apache.zest.api.association.Association; +import org.apache.zest.api.composite.Composite; + +/** + * Association not null Specification. + */ +public class AssociationNotNullPredicate<T> + extends ExpressionPredicate +{ + private AssociationFunction<T> association; + + public AssociationNotNullPredicate( AssociationFunction<T> association ) + { + this.association = association; + } + + public AssociationFunction<T> association() + { + return association; + } + + @Override + public boolean test( Composite item ) + { + try + { + Association<T> assoc = association.apply( item ); + + if( assoc == null ) + { + return false; + } + + return assoc.get() != null; + } + catch( IllegalArgumentException e ) + { + return false; + } + } + + @Override + public String toString() + { + return association.toString() + "is not null"; + } +} http://git-wip-us.apache.org/repos/asf/zest-java/blob/b659ba67/core/api/src/main/java/org/apache/zest/api/query/grammar/AssociationNotNullSpecification.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/apache/zest/api/query/grammar/AssociationNotNullSpecification.java b/core/api/src/main/java/org/apache/zest/api/query/grammar/AssociationNotNullSpecification.java deleted file mode 100644 index 30774f8..0000000 --- a/core/api/src/main/java/org/apache/zest/api/query/grammar/AssociationNotNullSpecification.java +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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. - */ -package org.apache.zest.api.query.grammar; - -import org.apache.zest.api.association.Association; -import org.apache.zest.api.composite.Composite; - -/** - * Association not null Specification. - */ -public class AssociationNotNullSpecification<T> - extends ExpressionSpecification -{ - private AssociationFunction<T> association; - - public AssociationNotNullSpecification( AssociationFunction<T> association ) - { - this.association = association; - } - - public AssociationFunction<T> association() - { - return association; - } - - @Override - public boolean satisfiedBy( Composite item ) - { - try - { - Association<T> assoc = association.apply( item ); - - if( assoc == null ) - { - return false; - } - - return assoc.get() != null; - } - catch( IllegalArgumentException e ) - { - return false; - } - } - - @Override - public String toString() - { - return association.toString() + "is not null"; - } -} http://git-wip-us.apache.org/repos/asf/zest-java/blob/b659ba67/core/api/src/main/java/org/apache/zest/api/query/grammar/AssociationNullPredicate.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/apache/zest/api/query/grammar/AssociationNullPredicate.java b/core/api/src/main/java/org/apache/zest/api/query/grammar/AssociationNullPredicate.java new file mode 100644 index 0000000..7f04ed5 --- /dev/null +++ b/core/api/src/main/java/org/apache/zest/api/query/grammar/AssociationNullPredicate.java @@ -0,0 +1,67 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you 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. + */ +package org.apache.zest.api.query.grammar; + +import org.apache.zest.api.association.Association; +import org.apache.zest.api.composite.Composite; + +/** + * Association null Specification. + */ +public class AssociationNullPredicate<T> + extends ExpressionPredicate +{ + private AssociationFunction<T> association; + + public AssociationNullPredicate( AssociationFunction<T> association ) + { + this.association = association; + } + + public AssociationFunction<T> association() + { + return association; + } + + @Override + public boolean test( Composite item ) + { + try + { + Association<T> assoc = association.apply( item ); + + if( assoc == null ) + { + return true; + } + + return assoc.get() == null; + } + catch( IllegalArgumentException e ) + { + return true; + } + } + + @Override + public String toString() + { + return association.toString() + "is null"; + } +} http://git-wip-us.apache.org/repos/asf/zest-java/blob/b659ba67/core/api/src/main/java/org/apache/zest/api/query/grammar/AssociationNullSpecification.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/apache/zest/api/query/grammar/AssociationNullSpecification.java b/core/api/src/main/java/org/apache/zest/api/query/grammar/AssociationNullSpecification.java deleted file mode 100644 index 64f0171..0000000 --- a/core/api/src/main/java/org/apache/zest/api/query/grammar/AssociationNullSpecification.java +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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. - */ -package org.apache.zest.api.query.grammar; - -import org.apache.zest.api.association.Association; -import org.apache.zest.api.composite.Composite; - -/** - * Association null Specification. - */ -public class AssociationNullSpecification<T> - extends ExpressionSpecification -{ - private AssociationFunction<T> association; - - public AssociationNullSpecification( AssociationFunction<T> association ) - { - this.association = association; - } - - public AssociationFunction<T> association() - { - return association; - } - - @Override - public boolean satisfiedBy( Composite item ) - { - try - { - Association<T> assoc = association.apply( item ); - - if( assoc == null ) - { - return true; - } - - return assoc.get() == null; - } - catch( IllegalArgumentException e ) - { - return true; - } - } - - @Override - public String toString() - { - return association.toString() + "is null"; - } -} http://git-wip-us.apache.org/repos/asf/zest-java/blob/b659ba67/core/api/src/main/java/org/apache/zest/api/query/grammar/BinaryPredicate.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/apache/zest/api/query/grammar/BinaryPredicate.java b/core/api/src/main/java/org/apache/zest/api/query/grammar/BinaryPredicate.java new file mode 100644 index 0000000..73d5ec9 --- /dev/null +++ b/core/api/src/main/java/org/apache/zest/api/query/grammar/BinaryPredicate.java @@ -0,0 +1,41 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you 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. + */ +package org.apache.zest.api.query.grammar; + +import java.util.function.Predicate; +import org.apache.zest.api.composite.Composite; + +/** + * Base binary Specification, used for AND and OR Specifications.. + */ +public abstract class BinaryPredicate + extends ExpressionPredicate +{ + protected final Iterable<Predicate<Composite>> operands; + + protected BinaryPredicate( Iterable<Predicate<Composite>> operands ) + { + this.operands = operands; + } + + public Iterable<Predicate<Composite>> operands() + { + return operands; + } +} http://git-wip-us.apache.org/repos/asf/zest-java/blob/b659ba67/core/api/src/main/java/org/apache/zest/api/query/grammar/BinarySpecification.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/apache/zest/api/query/grammar/BinarySpecification.java b/core/api/src/main/java/org/apache/zest/api/query/grammar/BinarySpecification.java deleted file mode 100644 index 177caf0..0000000 --- a/core/api/src/main/java/org/apache/zest/api/query/grammar/BinarySpecification.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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. - */ -package org.apache.zest.api.query.grammar; - -import org.apache.zest.api.composite.Composite; -import org.apache.zest.functional.Specification; - -/** - * Base binary Specification, used for AND and OR Specifications.. - */ -public abstract class BinarySpecification - extends ExpressionSpecification -{ - protected final Iterable<Specification<Composite>> operands; - - protected BinarySpecification( Iterable<Specification<Composite>> operands ) - { - this.operands = operands; - } - - public Iterable<Specification<Composite>> operands() - { - return operands; - } -} http://git-wip-us.apache.org/repos/asf/zest-java/blob/b659ba67/core/api/src/main/java/org/apache/zest/api/query/grammar/ComparisonPredicate.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/apache/zest/api/query/grammar/ComparisonPredicate.java b/core/api/src/main/java/org/apache/zest/api/query/grammar/ComparisonPredicate.java new file mode 100644 index 0000000..a5cf551 --- /dev/null +++ b/core/api/src/main/java/org/apache/zest/api/query/grammar/ComparisonPredicate.java @@ -0,0 +1,76 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you 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. + */ +package org.apache.zest.api.query.grammar; + +import org.apache.zest.api.composite.Composite; +import org.apache.zest.api.property.Property; + +/** + * Base comparison Specification. + */ +public abstract class ComparisonPredicate<T> + extends ExpressionPredicate +{ + protected final PropertyFunction<T> property; + protected final T value; + + public ComparisonPredicate( PropertyFunction<T> property, T value ) + { + this.property = property; + this.value = value; + } + + public PropertyFunction<T> property() + { + return property; + } + + @Override + public final boolean test( Composite item ) + { + try + { + Property<T> prop = property.apply( item ); + + if( prop == null ) + { + return false; + } + + T propValue = prop.get(); + if( propValue == null ) + { + return false; + } + + return compare( propValue ); + } + catch( IllegalArgumentException e ) + { + return false; + } + } + + protected abstract boolean compare( T value ); + + public T value() + { + return value; + } +} http://git-wip-us.apache.org/repos/asf/zest-java/blob/b659ba67/core/api/src/main/java/org/apache/zest/api/query/grammar/ComparisonSpecification.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/apache/zest/api/query/grammar/ComparisonSpecification.java b/core/api/src/main/java/org/apache/zest/api/query/grammar/ComparisonSpecification.java deleted file mode 100644 index 5cb6043..0000000 --- a/core/api/src/main/java/org/apache/zest/api/query/grammar/ComparisonSpecification.java +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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. - */ -package org.apache.zest.api.query.grammar; - -import org.apache.zest.api.composite.Composite; -import org.apache.zest.api.property.Property; - -/** - * Base comparison Specification. - */ -public abstract class ComparisonSpecification<T> - extends ExpressionSpecification -{ - protected final PropertyFunction<T> property; - protected final T value; - - public ComparisonSpecification( PropertyFunction<T> property, T value ) - { - this.property = property; - this.value = value; - } - - public PropertyFunction<T> property() - { - return property; - } - - @Override - public final boolean satisfiedBy( Composite item ) - { - try - { - Property<T> prop = property.apply( item ); - - if( prop == null ) - { - return false; - } - - T propValue = prop.get(); - if( propValue == null ) - { - return false; - } - - return compare( propValue ); - } - catch( IllegalArgumentException e ) - { - return false; - } - } - - protected abstract boolean compare( T value ); - - public T value() - { - return value; - } -} http://git-wip-us.apache.org/repos/asf/zest-java/blob/b659ba67/core/api/src/main/java/org/apache/zest/api/query/grammar/ContainsAllPredicate.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/apache/zest/api/query/grammar/ContainsAllPredicate.java b/core/api/src/main/java/org/apache/zest/api/query/grammar/ContainsAllPredicate.java new file mode 100644 index 0000000..ddbcc3a --- /dev/null +++ b/core/api/src/main/java/org/apache/zest/api/query/grammar/ContainsAllPredicate.java @@ -0,0 +1,78 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you 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. + */ +package org.apache.zest.api.query.grammar; + +import java.util.Collection; +import org.apache.zest.api.composite.Composite; +import org.apache.zest.functional.Iterables; + +/** + * Contains All Specification. + */ +public class ContainsAllPredicate<T> + extends ExpressionPredicate +{ + private PropertyFunction<? extends Collection<T>> collectionProperty; + private Iterable<T> valueCollection; + + public ContainsAllPredicate( PropertyFunction<? extends Collection<T>> collectionProperty, + Iterable<T> valueCollection + ) + { + this.collectionProperty = collectionProperty; + this.valueCollection = valueCollection; + } + + public PropertyFunction<? extends Collection<T>> collectionProperty() + { + return collectionProperty; + } + + public Iterable<T> containedValues() + { + return valueCollection; + } + + @Override + public boolean test( Composite item ) + { + Collection<T> collection = collectionProperty.apply( item ).get(); + + if( collection == null ) + { + return false; + } + + for( T value : valueCollection ) + { + if( !collection.contains( value ) ) + { + return false; + } + } + + return true; + } + + @Override + public String toString() + { + return collectionProperty + " contains " + Iterables.toList( valueCollection ); + } +} http://git-wip-us.apache.org/repos/asf/zest-java/blob/b659ba67/core/api/src/main/java/org/apache/zest/api/query/grammar/ContainsAllSpecification.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/apache/zest/api/query/grammar/ContainsAllSpecification.java b/core/api/src/main/java/org/apache/zest/api/query/grammar/ContainsAllSpecification.java deleted file mode 100644 index 89902e6..0000000 --- a/core/api/src/main/java/org/apache/zest/api/query/grammar/ContainsAllSpecification.java +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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. - */ -package org.apache.zest.api.query.grammar; - -import java.util.Collection; -import org.apache.zest.api.composite.Composite; -import org.apache.zest.functional.Iterables; - -/** - * Contains All Specification. - */ -public class ContainsAllSpecification<T> - extends ExpressionSpecification -{ - private PropertyFunction<? extends Collection<T>> collectionProperty; - private Iterable<T> valueCollection; - - public ContainsAllSpecification( PropertyFunction<? extends Collection<T>> collectionProperty, - Iterable<T> valueCollection - ) - { - this.collectionProperty = collectionProperty; - this.valueCollection = valueCollection; - } - - public PropertyFunction<? extends Collection<T>> collectionProperty() - { - return collectionProperty; - } - - public Iterable<T> containedValues() - { - return valueCollection; - } - - @Override - public boolean satisfiedBy( Composite item ) - { - Collection<T> collection = collectionProperty.apply( item ).get(); - - if( collection == null ) - { - return false; - } - - for( T value : valueCollection ) - { - if( !collection.contains( value ) ) - { - return false; - } - } - - return true; - } - - @Override - public String toString() - { - return collectionProperty + " contains " + Iterables.toList( valueCollection ); - } -} http://git-wip-us.apache.org/repos/asf/zest-java/blob/b659ba67/core/api/src/main/java/org/apache/zest/api/query/grammar/ContainsPredicate.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/apache/zest/api/query/grammar/ContainsPredicate.java b/core/api/src/main/java/org/apache/zest/api/query/grammar/ContainsPredicate.java new file mode 100644 index 0000000..dfb5087 --- /dev/null +++ b/core/api/src/main/java/org/apache/zest/api/query/grammar/ContainsPredicate.java @@ -0,0 +1,67 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you 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. + */ +package org.apache.zest.api.query.grammar; + +import java.util.Collection; +import org.apache.zest.api.composite.Composite; + +/** + * Contains Specification. + */ +public class ContainsPredicate<T> + extends ExpressionPredicate +{ + private PropertyFunction<? extends Collection<T>> collectionProperty; + private T value; + + public ContainsPredicate( PropertyFunction<? extends Collection<T>> collectionProperty, T value ) + { + this.collectionProperty = collectionProperty; + this.value = value; + } + + public PropertyFunction<? extends Collection<T>> collectionProperty() + { + return collectionProperty; + } + + public T value() + { + return value; + } + + @Override + public boolean test( Composite item ) + { + Collection<T> collection = collectionProperty.apply( item ).get(); + + if( collection == null ) + { + return false; + } + + return collection.contains( value ); + } + + @Override + public String toString() + { + return collectionProperty + " contains " + value; + } +} http://git-wip-us.apache.org/repos/asf/zest-java/blob/b659ba67/core/api/src/main/java/org/apache/zest/api/query/grammar/ContainsSpecification.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/apache/zest/api/query/grammar/ContainsSpecification.java b/core/api/src/main/java/org/apache/zest/api/query/grammar/ContainsSpecification.java deleted file mode 100644 index d1ecd88..0000000 --- a/core/api/src/main/java/org/apache/zest/api/query/grammar/ContainsSpecification.java +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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. - */ -package org.apache.zest.api.query.grammar; - -import java.util.Collection; -import org.apache.zest.api.composite.Composite; - -/** - * Contains Specification. - */ -public class ContainsSpecification<T> - extends ExpressionSpecification -{ - private PropertyFunction<? extends Collection<T>> collectionProperty; - private T value; - - public ContainsSpecification( PropertyFunction<? extends Collection<T>> collectionProperty, T value ) - { - this.collectionProperty = collectionProperty; - this.value = value; - } - - public PropertyFunction<? extends Collection<T>> collectionProperty() - { - return collectionProperty; - } - - public T value() - { - return value; - } - - @Override - public boolean satisfiedBy( Composite item ) - { - Collection<T> collection = collectionProperty.apply( item ).get(); - - if( collection == null ) - { - return false; - } - - return collection.contains( value ); - } - - @Override - public String toString() - { - return collectionProperty + " contains " + value; - } -} http://git-wip-us.apache.org/repos/asf/zest-java/blob/b659ba67/core/api/src/main/java/org/apache/zest/api/query/grammar/EqPredicate.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/apache/zest/api/query/grammar/EqPredicate.java b/core/api/src/main/java/org/apache/zest/api/query/grammar/EqPredicate.java new file mode 100644 index 0000000..61dcb5a --- /dev/null +++ b/core/api/src/main/java/org/apache/zest/api/query/grammar/EqPredicate.java @@ -0,0 +1,43 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you 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. + */ +package org.apache.zest.api.query.grammar; + +/** + * Equals Specification. + */ +public class EqPredicate<T> + extends ComparisonPredicate<T> +{ + public EqPredicate( PropertyFunction<T> property, T value ) + { + super( property, value ); + } + + @Override + protected boolean compare( T value ) + { + return value.equals( this.value ); + } + + @Override + public String toString() + { + return property.toString() + "=" + value.toString(); + } +} http://git-wip-us.apache.org/repos/asf/zest-java/blob/b659ba67/core/api/src/main/java/org/apache/zest/api/query/grammar/EqSpecification.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/apache/zest/api/query/grammar/EqSpecification.java b/core/api/src/main/java/org/apache/zest/api/query/grammar/EqSpecification.java deleted file mode 100644 index b7ed03c..0000000 --- a/core/api/src/main/java/org/apache/zest/api/query/grammar/EqSpecification.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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. - */ -package org.apache.zest.api.query.grammar; - -/** - * Equals Specification. - */ -public class EqSpecification<T> - extends ComparisonSpecification<T> -{ - public EqSpecification( PropertyFunction<T> property, T value ) - { - super( property, value ); - } - - @Override - protected boolean compare( T value ) - { - return value.equals( this.value ); - } - - @Override - public String toString() - { - return property.toString() + "=" + value.toString(); - } -} http://git-wip-us.apache.org/repos/asf/zest-java/blob/b659ba67/core/api/src/main/java/org/apache/zest/api/query/grammar/ExpressionPredicate.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/apache/zest/api/query/grammar/ExpressionPredicate.java b/core/api/src/main/java/org/apache/zest/api/query/grammar/ExpressionPredicate.java new file mode 100644 index 0000000..36dc427 --- /dev/null +++ b/core/api/src/main/java/org/apache/zest/api/query/grammar/ExpressionPredicate.java @@ -0,0 +1,60 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you 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. + */ +package org.apache.zest.api.query.grammar; + +import java.util.function.Predicate; +import org.apache.zest.api.composite.Composite; + +import static org.apache.zest.functional.Iterables.append; +import static org.apache.zest.functional.Iterables.iterable; + +/** + * Base expression Specification. + */ +public abstract class ExpressionPredicate + implements Predicate<Composite> +{ + +// @SuppressWarnings( "unchecked" ) +// public AndPredicate and( Predicate<Composite> specification ) +// { +// if( this instanceof AndPredicate ) +// { +// return new AndPredicate( append( specification, ( (AndPredicate) this ).operands() ) ); +// } +// else +// { +// return new AndPredicate( iterable( this, specification ) ); +// } +// } +// +// @SuppressWarnings( "unchecked" ) +// public OrPredicate or( Predicate<Composite> specification ) +// { +// if( this instanceof OrPredicate ) +// { +// return new OrPredicate( append( specification, ( (OrPredicate) this ).operands() ) ); +// } +// else +// { +// return new OrPredicate( iterable( this, specification ) ); +// } +// } +// +} http://git-wip-us.apache.org/repos/asf/zest-java/blob/b659ba67/core/api/src/main/java/org/apache/zest/api/query/grammar/ExpressionSpecification.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/apache/zest/api/query/grammar/ExpressionSpecification.java b/core/api/src/main/java/org/apache/zest/api/query/grammar/ExpressionSpecification.java deleted file mode 100644 index f0dd6b2..0000000 --- a/core/api/src/main/java/org/apache/zest/api/query/grammar/ExpressionSpecification.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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. - */ -package org.apache.zest.api.query.grammar; - -import org.apache.zest.api.composite.Composite; -import org.apache.zest.functional.Specification; - -import static org.apache.zest.functional.Iterables.append; -import static org.apache.zest.functional.Iterables.iterable; - -/** - * Base expression Specification. - */ -public abstract class ExpressionSpecification - implements Specification<Composite> -{ - - @SuppressWarnings( "unchecked" ) - public AndSpecification and( Specification<Composite> specification ) - { - if( this instanceof AndSpecification ) - { - return new AndSpecification( append( specification, ( (AndSpecification) this ).operands() ) ); - } - else - { - return new AndSpecification( iterable( this, specification ) ); - } - } - - @SuppressWarnings( "unchecked" ) - public OrSpecification or( Specification<Composite> specification ) - { - if( this instanceof OrSpecification ) - { - return new OrSpecification( append( specification, ( (OrSpecification) this ).operands() ) ); - } - else - { - return new OrSpecification( iterable( this, specification ) ); - } - } - -} http://git-wip-us.apache.org/repos/asf/zest-java/blob/b659ba67/core/api/src/main/java/org/apache/zest/api/query/grammar/GePredicate.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/apache/zest/api/query/grammar/GePredicate.java b/core/api/src/main/java/org/apache/zest/api/query/grammar/GePredicate.java new file mode 100644 index 0000000..13d5d0b --- /dev/null +++ b/core/api/src/main/java/org/apache/zest/api/query/grammar/GePredicate.java @@ -0,0 +1,44 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you 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. + */ +package org.apache.zest.api.query.grammar; + +/** + * Greater or equals Specification. + */ +public class GePredicate<T> + extends ComparisonPredicate<T> +{ + public GePredicate( PropertyFunction<T> property, T value ) + { + super( property, value ); + } + + @Override + @SuppressWarnings( "unchecked" ) + protected boolean compare( T value ) + { + return ( (Comparable) value ).compareTo( this.value ) >= 0; + } + + @Override + public String toString() + { + return property.toString() + ">=" + value.toString(); + } +} http://git-wip-us.apache.org/repos/asf/zest-java/blob/b659ba67/core/api/src/main/java/org/apache/zest/api/query/grammar/GeSpecification.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/apache/zest/api/query/grammar/GeSpecification.java b/core/api/src/main/java/org/apache/zest/api/query/grammar/GeSpecification.java deleted file mode 100644 index f012293..0000000 --- a/core/api/src/main/java/org/apache/zest/api/query/grammar/GeSpecification.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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. - */ -package org.apache.zest.api.query.grammar; - -/** - * Greater or equals Specification. - */ -public class GeSpecification<T> - extends ComparisonSpecification<T> -{ - public GeSpecification( PropertyFunction<T> property, T value ) - { - super( property, value ); - } - - @Override - @SuppressWarnings( "unchecked" ) - protected boolean compare( T value ) - { - return ( (Comparable) value ).compareTo( this.value ) >= 0; - } - - @Override - public String toString() - { - return property.toString() + ">=" + value.toString(); - } -} http://git-wip-us.apache.org/repos/asf/zest-java/blob/b659ba67/core/api/src/main/java/org/apache/zest/api/query/grammar/GtPredicate.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/apache/zest/api/query/grammar/GtPredicate.java b/core/api/src/main/java/org/apache/zest/api/query/grammar/GtPredicate.java new file mode 100644 index 0000000..ee42c96 --- /dev/null +++ b/core/api/src/main/java/org/apache/zest/api/query/grammar/GtPredicate.java @@ -0,0 +1,44 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you 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. + */ +package org.apache.zest.api.query.grammar; + +/** + * Greater than Specification. + */ +public class GtPredicate<T> + extends ComparisonPredicate<T> +{ + public GtPredicate( PropertyFunction<T> property, T value ) + { + super( property, value ); + } + + @Override + @SuppressWarnings( "unchecked" ) + protected boolean compare( T value ) + { + return ( (Comparable) value ).compareTo( this.value ) > 0; + } + + @Override + public String toString() + { + return property.toString() + ">" + value.toString(); + } +} http://git-wip-us.apache.org/repos/asf/zest-java/blob/b659ba67/core/api/src/main/java/org/apache/zest/api/query/grammar/GtSpecification.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/apache/zest/api/query/grammar/GtSpecification.java b/core/api/src/main/java/org/apache/zest/api/query/grammar/GtSpecification.java deleted file mode 100644 index 880fb67..0000000 --- a/core/api/src/main/java/org/apache/zest/api/query/grammar/GtSpecification.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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. - */ -package org.apache.zest.api.query.grammar; - -/** - * Greater than Specification. - */ -public class GtSpecification<T> - extends ComparisonSpecification<T> -{ - public GtSpecification( PropertyFunction<T> property, T value ) - { - super( property, value ); - } - - @Override - @SuppressWarnings( "unchecked" ) - protected boolean compare( T value ) - { - return ( (Comparable) value ).compareTo( this.value ) > 0; - } - - @Override - public String toString() - { - return property.toString() + ">" + value.toString(); - } -} http://git-wip-us.apache.org/repos/asf/zest-java/blob/b659ba67/core/api/src/main/java/org/apache/zest/api/query/grammar/LePredicate.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/apache/zest/api/query/grammar/LePredicate.java b/core/api/src/main/java/org/apache/zest/api/query/grammar/LePredicate.java new file mode 100644 index 0000000..0d31998 --- /dev/null +++ b/core/api/src/main/java/org/apache/zest/api/query/grammar/LePredicate.java @@ -0,0 +1,44 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you 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. + */ +package org.apache.zest.api.query.grammar; + +/** + * Less or equals Specification. + */ +public class LePredicate<T> + extends ComparisonPredicate<T> +{ + public LePredicate( PropertyFunction<T> property, T value ) + { + super( property, value ); + } + + @Override + @SuppressWarnings( "unchecked" ) + protected boolean compare( T value ) + { + return ( (Comparable) value ).compareTo( this.value ) <= 0; + } + + @Override + public String toString() + { + return property.toString() + "<=" + value.toString(); + } +}
