├── .gitignore ├── LICENSE ├── README.md ├── mvnw ├── mvnw.cmd ├── pom.xml └── src ├── main ├── java │ └── com │ │ └── github │ │ └── carlosraphael │ │ └── specificationpattern │ │ ├── FxTransaction.java │ │ ├── SpecificationPatternApplication.java │ │ ├── entity │ │ ├── BaseEntity.java │ │ ├── Specification.java │ │ ├── SpecificationOperator.java │ │ ├── SpecificationType.java │ │ ├── Subscription.java │ │ └── fieldspecification │ │ │ ├── CurrencyFieldContent.java │ │ │ ├── DateFieldContent.java │ │ │ ├── DecimalFieldContent.java │ │ │ ├── FieldContent.java │ │ │ ├── FieldMapping.java │ │ │ ├── FieldOperator.java │ │ │ ├── FieldSpecification.java │ │ │ ├── FieldType.java │ │ │ ├── IntegerFieldContent.java │ │ │ └── TextFieldContent.java │ │ ├── predicate │ │ ├── FieldSpecificationPredicate.java │ │ ├── Predicates.java │ │ └── SpecificationPredicate.java │ │ ├── repository │ │ ├── FieldMappingRepository.java │ │ ├── SpecificationRepository.java │ │ └── SubscriptionRepository.java │ │ └── util │ │ └── JavaBeanUtil.java └── resources │ └── application.properties └── test └── java └── com └── github └── carlosraphael └── specificationpattern ├── SampleDataFactory.java └── predicate ├── DataMatchingTest.java └── PredicatesTest.java /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlosraphael/specification-pattern/HEAD/.gitignore -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlosraphael/specification-pattern/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlosraphael/specification-pattern/HEAD/README.md -------------------------------------------------------------------------------- /mvnw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlosraphael/specification-pattern/HEAD/mvnw -------------------------------------------------------------------------------- /mvnw.cmd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlosraphael/specification-pattern/HEAD/mvnw.cmd -------------------------------------------------------------------------------- /pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlosraphael/specification-pattern/HEAD/pom.xml -------------------------------------------------------------------------------- /src/main/java/com/github/carlosraphael/specificationpattern/FxTransaction.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlosraphael/specification-pattern/HEAD/src/main/java/com/github/carlosraphael/specificationpattern/FxTransaction.java -------------------------------------------------------------------------------- /src/main/java/com/github/carlosraphael/specificationpattern/SpecificationPatternApplication.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlosraphael/specification-pattern/HEAD/src/main/java/com/github/carlosraphael/specificationpattern/SpecificationPatternApplication.java -------------------------------------------------------------------------------- /src/main/java/com/github/carlosraphael/specificationpattern/entity/BaseEntity.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlosraphael/specification-pattern/HEAD/src/main/java/com/github/carlosraphael/specificationpattern/entity/BaseEntity.java -------------------------------------------------------------------------------- /src/main/java/com/github/carlosraphael/specificationpattern/entity/Specification.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlosraphael/specification-pattern/HEAD/src/main/java/com/github/carlosraphael/specificationpattern/entity/Specification.java -------------------------------------------------------------------------------- /src/main/java/com/github/carlosraphael/specificationpattern/entity/SpecificationOperator.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlosraphael/specification-pattern/HEAD/src/main/java/com/github/carlosraphael/specificationpattern/entity/SpecificationOperator.java -------------------------------------------------------------------------------- /src/main/java/com/github/carlosraphael/specificationpattern/entity/SpecificationType.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlosraphael/specification-pattern/HEAD/src/main/java/com/github/carlosraphael/specificationpattern/entity/SpecificationType.java -------------------------------------------------------------------------------- /src/main/java/com/github/carlosraphael/specificationpattern/entity/Subscription.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlosraphael/specification-pattern/HEAD/src/main/java/com/github/carlosraphael/specificationpattern/entity/Subscription.java -------------------------------------------------------------------------------- /src/main/java/com/github/carlosraphael/specificationpattern/entity/fieldspecification/CurrencyFieldContent.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlosraphael/specification-pattern/HEAD/src/main/java/com/github/carlosraphael/specificationpattern/entity/fieldspecification/CurrencyFieldContent.java -------------------------------------------------------------------------------- /src/main/java/com/github/carlosraphael/specificationpattern/entity/fieldspecification/DateFieldContent.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlosraphael/specification-pattern/HEAD/src/main/java/com/github/carlosraphael/specificationpattern/entity/fieldspecification/DateFieldContent.java -------------------------------------------------------------------------------- /src/main/java/com/github/carlosraphael/specificationpattern/entity/fieldspecification/DecimalFieldContent.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlosraphael/specification-pattern/HEAD/src/main/java/com/github/carlosraphael/specificationpattern/entity/fieldspecification/DecimalFieldContent.java -------------------------------------------------------------------------------- /src/main/java/com/github/carlosraphael/specificationpattern/entity/fieldspecification/FieldContent.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlosraphael/specification-pattern/HEAD/src/main/java/com/github/carlosraphael/specificationpattern/entity/fieldspecification/FieldContent.java -------------------------------------------------------------------------------- /src/main/java/com/github/carlosraphael/specificationpattern/entity/fieldspecification/FieldMapping.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlosraphael/specification-pattern/HEAD/src/main/java/com/github/carlosraphael/specificationpattern/entity/fieldspecification/FieldMapping.java -------------------------------------------------------------------------------- /src/main/java/com/github/carlosraphael/specificationpattern/entity/fieldspecification/FieldOperator.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlosraphael/specification-pattern/HEAD/src/main/java/com/github/carlosraphael/specificationpattern/entity/fieldspecification/FieldOperator.java -------------------------------------------------------------------------------- /src/main/java/com/github/carlosraphael/specificationpattern/entity/fieldspecification/FieldSpecification.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlosraphael/specification-pattern/HEAD/src/main/java/com/github/carlosraphael/specificationpattern/entity/fieldspecification/FieldSpecification.java -------------------------------------------------------------------------------- /src/main/java/com/github/carlosraphael/specificationpattern/entity/fieldspecification/FieldType.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlosraphael/specification-pattern/HEAD/src/main/java/com/github/carlosraphael/specificationpattern/entity/fieldspecification/FieldType.java -------------------------------------------------------------------------------- /src/main/java/com/github/carlosraphael/specificationpattern/entity/fieldspecification/IntegerFieldContent.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlosraphael/specification-pattern/HEAD/src/main/java/com/github/carlosraphael/specificationpattern/entity/fieldspecification/IntegerFieldContent.java -------------------------------------------------------------------------------- /src/main/java/com/github/carlosraphael/specificationpattern/entity/fieldspecification/TextFieldContent.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlosraphael/specification-pattern/HEAD/src/main/java/com/github/carlosraphael/specificationpattern/entity/fieldspecification/TextFieldContent.java -------------------------------------------------------------------------------- /src/main/java/com/github/carlosraphael/specificationpattern/predicate/FieldSpecificationPredicate.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlosraphael/specification-pattern/HEAD/src/main/java/com/github/carlosraphael/specificationpattern/predicate/FieldSpecificationPredicate.java -------------------------------------------------------------------------------- /src/main/java/com/github/carlosraphael/specificationpattern/predicate/Predicates.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlosraphael/specification-pattern/HEAD/src/main/java/com/github/carlosraphael/specificationpattern/predicate/Predicates.java -------------------------------------------------------------------------------- /src/main/java/com/github/carlosraphael/specificationpattern/predicate/SpecificationPredicate.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlosraphael/specification-pattern/HEAD/src/main/java/com/github/carlosraphael/specificationpattern/predicate/SpecificationPredicate.java -------------------------------------------------------------------------------- /src/main/java/com/github/carlosraphael/specificationpattern/repository/FieldMappingRepository.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlosraphael/specification-pattern/HEAD/src/main/java/com/github/carlosraphael/specificationpattern/repository/FieldMappingRepository.java -------------------------------------------------------------------------------- /src/main/java/com/github/carlosraphael/specificationpattern/repository/SpecificationRepository.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlosraphael/specification-pattern/HEAD/src/main/java/com/github/carlosraphael/specificationpattern/repository/SpecificationRepository.java -------------------------------------------------------------------------------- /src/main/java/com/github/carlosraphael/specificationpattern/repository/SubscriptionRepository.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlosraphael/specification-pattern/HEAD/src/main/java/com/github/carlosraphael/specificationpattern/repository/SubscriptionRepository.java -------------------------------------------------------------------------------- /src/main/java/com/github/carlosraphael/specificationpattern/util/JavaBeanUtil.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlosraphael/specification-pattern/HEAD/src/main/java/com/github/carlosraphael/specificationpattern/util/JavaBeanUtil.java -------------------------------------------------------------------------------- /src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/test/java/com/github/carlosraphael/specificationpattern/SampleDataFactory.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlosraphael/specification-pattern/HEAD/src/test/java/com/github/carlosraphael/specificationpattern/SampleDataFactory.java -------------------------------------------------------------------------------- /src/test/java/com/github/carlosraphael/specificationpattern/predicate/DataMatchingTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlosraphael/specification-pattern/HEAD/src/test/java/com/github/carlosraphael/specificationpattern/predicate/DataMatchingTest.java -------------------------------------------------------------------------------- /src/test/java/com/github/carlosraphael/specificationpattern/predicate/PredicatesTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlosraphael/specification-pattern/HEAD/src/test/java/com/github/carlosraphael/specificationpattern/predicate/PredicatesTest.java --------------------------------------------------------------------------------