diff --git a/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/TargetManagement.java b/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/TargetManagement.java index 4f89c8263..0e0e474b2 100644 --- a/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/TargetManagement.java +++ b/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/TargetManagement.java @@ -43,7 +43,7 @@ import org.eclipse.hawkbit.repository.model.TargetIdName; import org.eclipse.hawkbit.repository.model.TargetInfo; import org.eclipse.hawkbit.repository.model.TargetInfo_; import org.eclipse.hawkbit.repository.model.TargetTag; -import org.eclipse.hawkbit.repository.model.TargetTagAssigmentResult; +import org.eclipse.hawkbit.repository.model.TargetTagAssignmentResult; import org.eclipse.hawkbit.repository.model.TargetUpdateStatus; import org.eclipse.hawkbit.repository.model.Target_; import org.eclipse.hawkbit.repository.rsql.RSQLUtility; @@ -534,7 +534,7 @@ public class TargetManagement { @Transactional @NotNull @PreAuthorize(SpringEvalExpressions.HAS_AUTH_UPDATE_TARGET) - public TargetTagAssigmentResult toggleTagAssignment(@NotEmpty final List targets, + public TargetTagAssignmentResult toggleTagAssignment(@NotEmpty final List targets, @NotNull final TargetTag tag) { return toggleTagAssignment( targets.stream().map(target -> target.getControllerId()).collect(Collectors.toList()), tag.getName()); @@ -556,7 +556,7 @@ public class TargetManagement { @Transactional @NotNull @PreAuthorize(SpringEvalExpressions.HAS_AUTH_UPDATE_TARGET) - public TargetTagAssigmentResult toggleTagAssignment(@NotEmpty final Collection targetIds, + public TargetTagAssignmentResult toggleTagAssignment(@NotEmpty final Collection targetIds, @NotNull final String tagName) { final TargetTag tag = targetTagRepository.findByNameEquals(tagName); final List alreadyAssignedTargets = targetRepository.findByTagNameAndControllerIdIn(tagName, targetIds); @@ -566,7 +566,7 @@ public class TargetManagement { // all are already assigned -> unassign if (alreadyAssignedTargets.size() == allTargets.size()) { alreadyAssignedTargets.forEach(target -> target.getTags().remove(tag)); - final TargetTagAssigmentResult result = new TargetTagAssigmentResult(0, 0, alreadyAssignedTargets.size(), + final TargetTagAssignmentResult result = new TargetTagAssignmentResult(0, 0, alreadyAssignedTargets.size(), Collections.emptyList(), alreadyAssignedTargets, tag); afterCommit.afterCommit(() -> eventBus.post(new TargetTagAssigmentResultEvent(result))); @@ -576,7 +576,7 @@ public class TargetManagement { allTargets.removeAll(alreadyAssignedTargets); // some or none are assigned -> assign allTargets.forEach(target -> target.getTags().add(tag)); - final TargetTagAssigmentResult result = new TargetTagAssigmentResult(alreadyAssignedTargets.size(), + final TargetTagAssignmentResult result = new TargetTagAssignmentResult(alreadyAssignedTargets.size(), allTargets.size(), 0, targetRepository.save(allTargets), Collections.emptyList(), tag); afterCommit.afterCommit(() -> eventBus.post(new TargetTagAssigmentResultEvent(result))); @@ -607,7 +607,7 @@ public class TargetManagement { final List save = targetRepository.save(allTargets); afterCommit.afterCommit(() -> { - final TargetTagAssigmentResult assigmentResult = new TargetTagAssigmentResult(0, save.size(), 0, save, + final TargetTagAssignmentResult assigmentResult = new TargetTagAssignmentResult(0, save.size(), 0, save, Collections.emptyList(), tag); eventBus.post(new TargetTagAssigmentResultEvent(assigmentResult)); }); @@ -620,7 +620,7 @@ public class TargetManagement { final List save = targetRepository.save(targets); afterCommit.afterCommit(() -> { - final TargetTagAssigmentResult assigmentResult = new TargetTagAssigmentResult(0, 0, save.size(), + final TargetTagAssignmentResult assigmentResult = new TargetTagAssignmentResult(0, 0, save.size(), Collections.emptyList(), save, tag); eventBus.post(new TargetTagAssigmentResultEvent(assigmentResult)); }); diff --git a/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/specifications/DistributionSetSpecification.java b/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/specifications/DistributionSetSpecification.java index 4150229c6..b95f0b8e7 100644 --- a/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/specifications/DistributionSetSpecification.java +++ b/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/specifications/DistributionSetSpecification.java @@ -11,13 +11,11 @@ package org.eclipse.hawkbit.repository.specifications; import java.util.Collection; import javax.persistence.criteria.CriteriaBuilder; -import javax.persistence.criteria.CriteriaQuery; import javax.persistence.criteria.Join; import javax.persistence.criteria.JoinType; import javax.persistence.criteria.ListJoin; import javax.persistence.criteria.Path; import javax.persistence.criteria.Predicate; -import javax.persistence.criteria.Root; import javax.persistence.criteria.SetJoin; import org.eclipse.hawkbit.repository.model.DistributionSet; @@ -33,9 +31,7 @@ import org.springframework.data.jpa.domain.Specification; /** * Specifications class for {@link DistributionSet}s. The class provides Spring - * Data JPQL Specifications - * - * + * Data JPQL Specifications. * */ public final class DistributionSetSpecification { @@ -53,16 +49,8 @@ public final class DistributionSetSpecification { * @return the {@link DistributionSet} {@link Specification} */ public static Specification isDeleted(final Boolean isDeleted) { - final Specification spec = new Specification() { - @Override - public Predicate toPredicate(final Root targetRoot, final CriteriaQuery query, - final CriteriaBuilder cb) { - final Predicate predicate = cb.equal(targetRoot. get(DistributionSet_.deleted), isDeleted); - return predicate; - } - }; + return (targetRoot, query, cb) -> cb.equal(targetRoot. get(DistributionSet_.deleted), isDeleted); - return spec; } /** @@ -75,16 +63,8 @@ public final class DistributionSetSpecification { * @return the {@link DistributionSet} {@link Specification} */ public static Specification isCompleted(final Boolean isCompleted) { - final Specification spec = new Specification() { - @Override - public Predicate toPredicate(final Root targetRoot, final CriteriaQuery query, - final CriteriaBuilder cb) { - final Predicate predicate = cb.equal(targetRoot. get(DistributionSet_.complete), isCompleted); - return predicate; - } - }; + return (targetRoot, query, cb) -> cb.equal(targetRoot. get(DistributionSet_.complete), isCompleted); - return spec; } /** @@ -96,21 +76,15 @@ public final class DistributionSetSpecification { * @return the {@link DistributionSet} {@link Specification} */ public static Specification byId(final Long distid) { - final Specification spec = new Specification() { - @Override - public Predicate toPredicate(final Root targetRoot, final CriteriaQuery query, - final CriteriaBuilder cb) { + return (targetRoot, query, cb) -> { + final Predicate predicate = cb.equal(targetRoot. get(DistributionSet_.id), distid); + targetRoot.fetch(DistributionSet_.modules, JoinType.LEFT); + targetRoot.fetch(DistributionSet_.tags, JoinType.LEFT); + targetRoot.fetch(DistributionSet_.type, JoinType.LEFT); + query.distinct(true); - final Predicate predicate = cb.equal(targetRoot. get(DistributionSet_.id), distid); - targetRoot.fetch(DistributionSet_.modules, JoinType.LEFT); - targetRoot.fetch(DistributionSet_.tags, JoinType.LEFT); - targetRoot.fetch(DistributionSet_.type, JoinType.LEFT); - query.distinct(true); - - return predicate; - } + return predicate; }; - return spec; } /** @@ -122,20 +96,14 @@ public final class DistributionSetSpecification { * @return the {@link DistributionSet} {@link Specification} */ public static Specification byIds(final Collection distids) { - final Specification spec = new Specification() { - @Override - public Predicate toPredicate(final Root targetRoot, final CriteriaQuery query, - final CriteriaBuilder cb) { - - final Predicate predicate = targetRoot. get(DistributionSet_.id).in(distids); - targetRoot.fetch(DistributionSet_.modules, JoinType.LEFT); - targetRoot.fetch(DistributionSet_.tags, JoinType.LEFT); - targetRoot.fetch(DistributionSet_.type, JoinType.LEFT); - query.distinct(true); - return predicate; - } + return (targetRoot, query, cb) -> { + final Predicate predicate = targetRoot. get(DistributionSet_.id).in(distids); + targetRoot.fetch(DistributionSet_.modules, JoinType.LEFT); + targetRoot.fetch(DistributionSet_.tags, JoinType.LEFT); + targetRoot.fetch(DistributionSet_.type, JoinType.LEFT); + query.distinct(true); + return predicate; }; - return spec; } /** @@ -147,21 +115,10 @@ public final class DistributionSetSpecification { * @return the {@link DistributionSet} {@link Specification} */ public static Specification likeNameOrDescriptionOrVersion(final String subString) { - final Specification spec = new Specification() { - @Override - public Predicate toPredicate(final Root targetRoot, final CriteriaQuery query, - final CriteriaBuilder cb) { - final Predicate predicate = cb - .or(cb.like(cb.lower(targetRoot. get(DistributionSet_.name)), subString.toLowerCase()), - cb.like(cb.lower(targetRoot. get(DistributionSet_.version)), - subString.toLowerCase()), - cb.like(cb.lower(targetRoot. get(DistributionSet_.description)), - subString.toLowerCase())); - return predicate; - } - }; - - return spec; + return (targetRoot, query, cb) -> cb.or( + cb.like(cb.lower(targetRoot. get(DistributionSet_.name)), subString.toLowerCase()), + cb.like(cb.lower(targetRoot. get(DistributionSet_.version)), subString.toLowerCase()), + cb.like(cb.lower(targetRoot. get(DistributionSet_.description)), subString.toLowerCase())); } /** @@ -176,19 +133,13 @@ public final class DistributionSetSpecification { */ public static Specification hasTags(final Collection tagNames, final Boolean selectDSWithNoTag) { - final Specification spec = new Specification() { - @Override - public Predicate toPredicate(final Root targetRoot, final CriteriaQuery query, - final CriteriaBuilder cb) { - final SetJoin tags = targetRoot.join(DistributionSet_.tags, - JoinType.LEFT); - final Predicate predicate = getPredicate(tags, tagNames, selectDSWithNoTag, cb); - query.distinct(true); - return predicate; - } + return (targetRoot, query, cb) -> { + final SetJoin tags = targetRoot.join(DistributionSet_.tags, + JoinType.LEFT); + final Predicate predicate = getPredicate(tags, tagNames, selectDSWithNoTag, cb); + query.distinct(true); + return predicate; }; - - return spec; } private static Predicate getPredicate(final SetJoin tags, @@ -218,20 +169,10 @@ public final class DistributionSetSpecification { */ public static Specification equalsNameAndVersionIgnoreCase(final String name, final String version) { - final Specification spec = new Specification() { - @Override - public Predicate toPredicate(final Root targetRoot, final CriteriaQuery query, - final CriteriaBuilder cb) { - final Predicate predicate = cb.and( - // formatter:off - cb.equal(cb.lower(targetRoot. get(DistributionSet_.name)), name.toLowerCase()), - cb.equal(cb.lower(targetRoot. get(DistributionSet_.version)), version.toLowerCase())); - // formatter:on - return predicate; - } - }; + return (targetRoot, query, cb) -> cb.and( + cb.equal(cb.lower(targetRoot. get(DistributionSet_.name)), name.toLowerCase()), + cb.equal(cb.lower(targetRoot. get(DistributionSet_.version)), version.toLowerCase())); - return spec; } /** @@ -243,16 +184,8 @@ public final class DistributionSetSpecification { * @return the {@link DistributionSet} {@link Specification} */ public static Specification byType(final DistributionSetType type) { - final Specification spec = new Specification() { - @Override - public Predicate toPredicate(final Root targetRoot, final CriteriaQuery query, - final CriteriaBuilder cb) { - final Predicate predicate = cb.equal(targetRoot. get(DistributionSet_.type), type); - return predicate; - } - }; + return (targetRoot, query, cb) -> cb.equal(targetRoot. get(DistributionSet_.type), type); - return spec; } /** @@ -263,18 +196,12 @@ public final class DistributionSetSpecification { * installed to the given targetId */ public static Specification installedTarget(final String installedTargetId) { - final Specification spec = new Specification() { - @Override - public Predicate toPredicate(final Root dsRoot, final CriteriaQuery query, - final CriteriaBuilder cb) { - final ListJoin installedTargetJoin = dsRoot - .join(DistributionSet_.installedAtTargets, JoinType.INNER); - final Join targetJoin = installedTargetJoin.join(TargetInfo_.target); - return cb.equal(targetJoin.get(Target_.controllerId), installedTargetId); - } + return (dsRoot, query, cb) -> { + final ListJoin installedTargetJoin = dsRoot + .join(DistributionSet_.installedAtTargets, JoinType.INNER); + final Join targetJoin = installedTargetJoin.join(TargetInfo_.target); + return cb.equal(targetJoin.get(Target_.controllerId), installedTargetId); }; - - return spec; } /** @@ -285,16 +212,11 @@ public final class DistributionSetSpecification { * assigned to the given targetId */ public static Specification assignedTarget(final String assignedTargetId) { - final Specification spec = new Specification() { - @Override - public Predicate toPredicate(final Root dsRoot, final CriteriaQuery query, - final CriteriaBuilder cb) { - final ListJoin assignedTargetJoin = dsRoot - .join(DistributionSet_.assignedToTargets, JoinType.INNER); - return cb.equal(assignedTargetJoin.get(Target_.controllerId), assignedTargetId); - } + return (dsRoot, query, cb) -> { + final ListJoin assignedTargetJoin = dsRoot.join(DistributionSet_.assignedToTargets, + JoinType.INNER); + return cb.equal(assignedTargetJoin.get(Target_.controllerId), assignedTargetId); }; - return spec; } } diff --git a/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/specifications/DistributionSetTypeSpecification.java b/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/specifications/DistributionSetTypeSpecification.java index 1caa5ef59..13776deb0 100644 --- a/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/specifications/DistributionSetTypeSpecification.java +++ b/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/specifications/DistributionSetTypeSpecification.java @@ -8,22 +8,14 @@ */ package org.eclipse.hawkbit.repository.specifications; -import javax.persistence.criteria.CriteriaBuilder; -import javax.persistence.criteria.CriteriaQuery; -import javax.persistence.criteria.Predicate; -import javax.persistence.criteria.Root; - import org.eclipse.hawkbit.repository.model.DistributionSet; import org.eclipse.hawkbit.repository.model.DistributionSetType; import org.eclipse.hawkbit.repository.model.DistributionSetType_; import org.springframework.data.jpa.domain.Specification; /** - * - * - * - * - * + * Specifications class for {@link DistributionSetType}s. The class provides + * Spring Data JPQL Specifications. */ public final class DistributionSetTypeSpecification { private DistributionSetTypeSpecification() { @@ -40,16 +32,7 @@ public final class DistributionSetTypeSpecification { * @return the {@link DistributionSetType} {@link Specification} */ public static Specification isDeleted(final Boolean isDeleted) { - final Specification spec = new Specification() { - @Override - public Predicate toPredicate(final Root targetRoot, final CriteriaQuery query, - final CriteriaBuilder cb) { - final Predicate predicate = cb.equal(targetRoot. get(DistributionSetType_.deleted), isDeleted); - return predicate; - } - }; - - return spec; + return (targetRoot, query, cb) -> cb.equal(targetRoot. get(DistributionSetType_.deleted), isDeleted); } /** @@ -62,16 +45,7 @@ public final class DistributionSetTypeSpecification { * @return the {@link DistributionSet} {@link Specification} */ public static Specification byId(final Long distid) { - final Specification spec = new Specification() { - @Override - public Predicate toPredicate(final Root targetRoot, final CriteriaQuery query, - final CriteriaBuilder cb) { - - final Predicate predicate = cb.equal(targetRoot. get(DistributionSetType_.id), distid); - return predicate; - } - }; - return spec; + return (targetRoot, query, cb) -> cb.equal(targetRoot. get(DistributionSetType_.id), distid); } /** @@ -84,16 +58,7 @@ public final class DistributionSetTypeSpecification { * @return the {@link DistributionSet} {@link Specification} */ public static Specification byName(final String name) { - final Specification spec = new Specification() { - @Override - public Predicate toPredicate(final Root targetRoot, final CriteriaQuery query, - final CriteriaBuilder cb) { - - final Predicate predicate = cb.equal(targetRoot. get(DistributionSetType_.name), name); - return predicate; - } - }; - return spec; + return (targetRoot, query, cb) -> cb.equal(targetRoot. get(DistributionSetType_.name), name); } /** @@ -106,16 +71,7 @@ public final class DistributionSetTypeSpecification { * @return the {@link DistributionSet} {@link Specification} */ public static Specification byKey(final String key) { - final Specification spec = new Specification() { - @Override - public Predicate toPredicate(final Root targetRoot, final CriteriaQuery query, - final CriteriaBuilder cb) { - - final Predicate predicate = cb.equal(targetRoot. get(DistributionSetType_.key), key); - return predicate; - } - }; - return spec; + return (targetRoot, query, cb) -> cb.equal(targetRoot. get(DistributionSetType_.key), key); } } diff --git a/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/specifications/SoftwareModuleSpecification.java b/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/specifications/SoftwareModuleSpecification.java index 2311f59f6..680f97778 100644 --- a/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/specifications/SoftwareModuleSpecification.java +++ b/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/specifications/SoftwareModuleSpecification.java @@ -8,10 +8,7 @@ */ package org.eclipse.hawkbit.repository.specifications; -import javax.persistence.criteria.CriteriaBuilder; -import javax.persistence.criteria.CriteriaQuery; import javax.persistence.criteria.Predicate; -import javax.persistence.criteria.Root; import org.eclipse.hawkbit.repository.model.SoftwareModule; import org.eclipse.hawkbit.repository.model.SoftwareModuleType; @@ -22,8 +19,6 @@ import org.springframework.data.jpa.domain.Specification; * Specifications class for {@link SoftwareModule}s. The class provides Spring * Data JPQL Specifications * - * - * */ public final class SoftwareModuleSpecification { private SoftwareModuleSpecification() { @@ -39,38 +34,21 @@ public final class SoftwareModuleSpecification { * @return the {@link SoftwareModule} {@link Specification} */ public static Specification byId(final Long moduleId) { - final Specification spec = new Specification() { - @Override - public Predicate toPredicate(final Root targetRoot, final CriteriaQuery query, - final CriteriaBuilder cb) { - - final Predicate predicate = cb.equal(targetRoot. get(SoftwareModule_.id), moduleId); - targetRoot.fetch(SoftwareModule_.type); - return predicate; - } + return (targetRoot, query, cb) -> { + final Predicate predicate = cb.equal(targetRoot. get(SoftwareModule_.id), moduleId); + targetRoot.fetch(SoftwareModule_.type); + return predicate; }; - return spec; } /** - * {@link Specification} for retrieving {@link SoftwareModule}s by its - * DELETED attribute. + * {@link Specification} for retrieving {@link SoftwareModule}s where its + * DELETED attribute is false. * - * @param isDeleted - * TRUE/FALSE are compared to the attribute DELETED. If NULL the - * attribute is ignored * @return the {@link SoftwareModule} {@link Specification} */ public static Specification isDeletedFalse() { - final Specification spec = new Specification() { - @Override - public Predicate toPredicate(final Root swRoot, final CriteriaQuery query, - final CriteriaBuilder cb) { - final Predicate predicate = cb.equal(swRoot. get(SoftwareModule_.deleted), Boolean.FALSE); - return predicate; - } - }; - return spec; + return (swRoot, query, cb) -> cb.equal(swRoot. get(SoftwareModule_.deleted), Boolean.FALSE); } /** @@ -82,18 +60,9 @@ public final class SoftwareModuleSpecification { * @return the {@link SoftwareModule} {@link Specification} */ public static Specification likeNameOrVersion(final String subString) { - final Specification spec = new Specification() { - @Override - public Predicate toPredicate(final Root targetRoot, final CriteriaQuery query, - final CriteriaBuilder cb) { - final Predicate predicate = cb.or( - cb.like(cb.lower(targetRoot. get(SoftwareModule_.name)), subString.toLowerCase()), - cb.like(cb.lower(targetRoot. get(SoftwareModule_.version)), subString.toLowerCase())); - return predicate; - } - }; - - return spec; + return (targetRoot, query, cb) -> cb.or( + cb.like(cb.lower(targetRoot. get(SoftwareModule_.name)), subString.toLowerCase()), + cb.like(cb.lower(targetRoot. get(SoftwareModule_.version)), subString.toLowerCase())); } /** @@ -105,16 +74,7 @@ public final class SoftwareModuleSpecification { * @return the {@link SoftwareModule} {@link Specification} */ public static Specification equalType(final SoftwareModuleType type) { - final Specification spec = new Specification() { - @Override - public Predicate toPredicate(final Root targetRoot, final CriteriaQuery query, - final CriteriaBuilder cb) { - final Predicate predicate = cb.equal(targetRoot. get(SoftwareModule_.type), type); - return predicate; - } - }; - - return spec; + return (targetRoot, query, cb) -> cb.equal(targetRoot. get(SoftwareModule_.type), type); } } diff --git a/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/specifications/TargetFilterQuerySpecification.java b/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/specifications/TargetFilterQuerySpecification.java index c92da7ed1..0b600c849 100644 --- a/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/specifications/TargetFilterQuerySpecification.java +++ b/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/specifications/TargetFilterQuerySpecification.java @@ -8,17 +8,13 @@ */ package org.eclipse.hawkbit.repository.specifications; -import javax.persistence.criteria.CriteriaBuilder; -import javax.persistence.criteria.CriteriaQuery; -import javax.persistence.criteria.Predicate; -import javax.persistence.criteria.Root; - import org.eclipse.hawkbit.repository.model.TargetFilterQuery; import org.eclipse.hawkbit.repository.model.TargetFilterQuery_; import org.springframework.data.jpa.domain.Specification; /** - * + * Specifications class for {@link TargetFilterQuery}s. The class provides + * Spring Data JPQL Specifications. * */ public class TargetFilterQuerySpecification { @@ -27,16 +23,9 @@ public class TargetFilterQuerySpecification { } public static Specification likeName(final String searchText) { - final Specification spec = new Specification() { - @Override - public Predicate toPredicate(final Root targetFilterQueryRoot, - final CriteriaQuery query, final CriteriaBuilder cb) { - final String searchTextToLower = searchText.toLowerCase(); - final Predicate predicate = cb.like(cb.lower(targetFilterQueryRoot.get(TargetFilterQuery_.name)), - searchTextToLower); - return predicate; - } + return (targetFilterQueryRoot, query, cb) -> { + final String searchTextToLower = searchText.toLowerCase(); + return cb.like(cb.lower(targetFilterQueryRoot.get(TargetFilterQuery_.name)), searchTextToLower); }; - return spec; } } diff --git a/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/specifications/TargetSpecifications.java b/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/specifications/TargetSpecifications.java index fb0e5740e..de894d3a3 100644 --- a/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/specifications/TargetSpecifications.java +++ b/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/specifications/TargetSpecifications.java @@ -12,7 +12,6 @@ import java.util.Collection; import java.util.List; import javax.persistence.criteria.CriteriaBuilder; -import javax.persistence.criteria.CriteriaQuery; import javax.persistence.criteria.Join; import javax.persistence.criteria.JoinType; import javax.persistence.criteria.Path; @@ -36,8 +35,6 @@ import org.springframework.data.jpa.domain.Specification; * Specifications class for {@link Target}s. The class provides Spring Data JPQL * Specifications. * - * - * */ public final class TargetSpecifications { private TargetSpecifications() { @@ -54,18 +51,12 @@ public final class TargetSpecifications { * @return the {@link Target} {@link Specification} */ public static Specification byControllerIdWithStatusAndTagsInJoin(final Collection controllerIDs) { - final Specification spec = new Specification() { - @Override - public Predicate toPredicate(final Root targetRoot, final CriteriaQuery query, - final CriteriaBuilder cb) { - final Predicate predicate = targetRoot.get(Target_.controllerId).in(controllerIDs); - targetRoot.fetch(Target_.tags, JoinType.LEFT); - query.distinct(true); - return predicate; - } + return (targetRoot, query, cb) -> { + final Predicate predicate = targetRoot.get(Target_.controllerId).in(controllerIDs); + targetRoot.fetch(Target_.tags, JoinType.LEFT); + query.distinct(true); + return predicate; }; - - return spec; } /** @@ -79,18 +70,12 @@ public final class TargetSpecifications { */ public static Specification byControllerIdWithStatusAndAssignedInJoin( final Collection controllerIDs) { - final Specification spec = new Specification() { - @Override - public Predicate toPredicate(final Root targetRoot, final CriteriaQuery query, - final CriteriaBuilder cb) { + return (targetRoot, query, cb) -> { - final Predicate predicate = targetRoot.get(Target_.controllerId).in(controllerIDs); - targetRoot.fetch(Target_.assignedDistributionSet); - return predicate; - } + final Predicate predicate = targetRoot.get(Target_.controllerId).in(controllerIDs); + targetRoot.fetch(Target_.assignedDistributionSet); + return predicate; }; - - return spec; } /** @@ -106,24 +91,18 @@ public final class TargetSpecifications { */ public static Specification hasTargetUpdateStatus(final Collection updateStatus, final boolean fetch) { - final Specification spec = new Specification() { - @Override - public Predicate toPredicate(final Root targetRoot, final CriteriaQuery query, - final CriteriaBuilder cb) { - if (!query.getResultType().isAssignableFrom(Long.class)) { - if (fetch) { - targetRoot.fetch(Target_.targetInfo); - } else { - targetRoot.join(Target_.targetInfo); - } - return targetRoot.get(Target_.targetInfo).get(TargetInfo_.updateStatus).in(updateStatus); + return (targetRoot, query, cb) -> { + if (!query.getResultType().isAssignableFrom(Long.class)) { + if (fetch) { + targetRoot.fetch(Target_.targetInfo); + } else { + targetRoot.join(Target_.targetInfo); } - final Join targetInfoJoin = targetRoot.join(Target_.targetInfo); - return targetInfoJoin.get(TargetInfo_.updateStatus).in(updateStatus); + return targetRoot.get(Target_.targetInfo).get(TargetInfo_.updateStatus).in(updateStatus); } + final Join targetInfoJoin = targetRoot.join(Target_.targetInfo); + return targetInfoJoin.get(TargetInfo_.updateStatus).in(updateStatus); }; - - return spec; } /** @@ -135,18 +114,11 @@ public final class TargetSpecifications { * @return the {@link Target} {@link Specification} */ public static Specification likeNameOrDescriptionOrIp(final String searchText) { - final Specification spec = new Specification() { - @Override - public Predicate toPredicate(final Root targetRoot, final CriteriaQuery query, - final CriteriaBuilder cb) { - final String searchTextToLower = searchText.toLowerCase(); - final Predicate predicate = cb.or(cb.like(cb.lower(targetRoot.get(Target_.name)), searchTextToLower), - cb.like(cb.lower(targetRoot.get(Target_.description)), searchTextToLower)); - return predicate; - } + return (targetRoot, query, cb) -> { + final String searchTextToLower = searchText.toLowerCase(); + return cb.or(cb.like(cb.lower(targetRoot.get(Target_.name)), searchTextToLower), + cb.like(cb.lower(targetRoot.get(Target_.description)), searchTextToLower)); }; - - return spec; } /** @@ -158,21 +130,14 @@ public final class TargetSpecifications { * @return the {@link Target} {@link Specification} */ public static Specification hasInstalledOrAssignedDistributionSet(@NotNull final Long distributionId) { - final Specification spec = new Specification() { - @Override - public Predicate toPredicate(final Root targetRoot, final CriteriaQuery query, - final CriteriaBuilder cb) { - final Join targetInfoJoin = targetRoot.join(Target_.targetInfo); - final Predicate predicate = cb.or( - cb.equal(targetInfoJoin.get(TargetInfo_.installedDistributionSet).get(DistributionSet_.id), - distributionId), - cb.equal(targetRoot. get(Target_.assignedDistributionSet) - .get(DistributionSet_.id), distributionId)); - return predicate; - } + return (targetRoot, query, cb) -> { + final Join targetInfoJoin = targetRoot.join(Target_.targetInfo); + return cb.or( + cb.equal(targetInfoJoin.get(TargetInfo_.installedDistributionSet).get(DistributionSet_.id), + distributionId), + cb.equal(targetRoot. get(Target_.assignedDistributionSet).get(DistributionSet_.id), + distributionId)); }; - - return spec; } /** @@ -187,18 +152,11 @@ public final class TargetSpecifications { */ public static Specification hasControllerIdAndAssignedDistributionSetIdNot(final List tIDs, @NotNull final Long distributionId) { - final Specification spec = new Specification() { - @Override - public Predicate toPredicate(final Root targetRoot, final CriteriaQuery query, - final CriteriaBuilder cb) { - final Predicate predicate = cb.and(targetRoot.get(Target_.controllerId).in(tIDs), + return (targetRoot, query, cb) -> cb + .and(targetRoot.get(Target_.controllerId).in(tIDs), cb.or(cb.notEqual(targetRoot. get(Target_.assignedDistributionSet) .get(DistributionSet_.id), distributionId), - cb.isNull(targetRoot. get(Target_.assignedDistributionSet)))); - return predicate; - } - }; - return spec; + cb.isNull(targetRoot. get(Target_.assignedDistributionSet)))); } /** @@ -212,16 +170,11 @@ public final class TargetSpecifications { * @return the {@link Target} {@link Specification} */ public static Specification hasTags(final String[] tagNames, final Boolean selectTargetWithNoTag) { - final Specification spec = new Specification() { - @Override - public Predicate toPredicate(final Root targetRoot, final CriteriaQuery query, - final CriteriaBuilder cb) { - final Predicate predicate = getPredicate(targetRoot, cb, selectTargetWithNoTag, tagNames); - query.distinct(true); - return predicate; - } + return (targetRoot, query, cb) -> { + final Predicate predicate = getPredicate(targetRoot, cb, selectTargetWithNoTag, tagNames); + query.distinct(true); + return predicate; }; - return spec; } private static Predicate getPredicate(final Root targetRoot, final CriteriaBuilder cb, @@ -248,15 +201,9 @@ public final class TargetSpecifications { * @return the {@link Target} {@link Specification} */ public static Specification hasAssignedDistributionSet(final Long distributionSetId) { - return new Specification() { - @Override - public Predicate toPredicate(final Root targetRoot, final CriteriaQuery query, - final CriteriaBuilder cb) { - return cb.equal( - targetRoot. get(Target_.assignedDistributionSet).get(DistributionSet_.id), - distributionSetId); - } - }; + return (targetRoot, query, cb) -> cb.equal( + targetRoot. get(Target_.assignedDistributionSet).get(DistributionSet_.id), + distributionSetId); } /** @@ -268,14 +215,10 @@ public final class TargetSpecifications { * @return the {@link Target} {@link Specification} */ public static Specification hasInstalledDistributionSet(final Long distributionSetId) { - return new Specification() { - @Override - public Predicate toPredicate(final Root targetRoot, final CriteriaQuery query, - final CriteriaBuilder cb) { - final Join targetInfoJoin = targetRoot.join(Target_.targetInfo); - return cb.equal(targetInfoJoin.get(TargetInfo_.installedDistributionSet).get(DistributionSet_.id), - distributionSetId); - } + return (targetRoot, query, cb) -> { + final Join targetInfoJoin = targetRoot.join(Target_.targetInfo); + return cb.equal(targetInfoJoin.get(TargetInfo_.installedDistributionSet).get(DistributionSet_.id), + distributionSetId); }; } }