You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by fm...@apache.org on 2015/10/23 12:29:08 UTC
[07/54] [abbrv] syncope git commit: Small enhancement in
ExternalResource entity validation
Small enhancement in ExternalResource entity validation
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/77c2999b
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/77c2999b
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/77c2999b
Branch: refs/heads/SYNCOPE-156
Commit: 77c2999b339ca2c3ef510578780a17a5d0c79f3e
Parents: c1bd770
Author: Francesco Chicchiriccò <il...@apache.org>
Authored: Thu Oct 15 12:26:24 2015 +0200
Committer: Francesco Chicchiriccò <il...@apache.org>
Committed: Thu Oct 15 12:26:24 2015 +0200
----------------------------------------------------------------------
.../entity/ExternalResourceValidator.java | 32 ++++++++++++--------
1 file changed, 20 insertions(+), 12 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/77c2999b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/validation/entity/ExternalResourceValidator.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/validation/entity/ExternalResourceValidator.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/validation/entity/ExternalResourceValidator.java
index 7879661..fb5a0a9 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/validation/entity/ExternalResourceValidator.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/validation/entity/ExternalResourceValidator.java
@@ -32,6 +32,7 @@ import org.apache.syncope.core.persistence.api.entity.resource.MappingItem;
import org.apache.syncope.core.persistence.api.entity.resource.Provision;
import org.apache.syncope.core.provisioning.api.data.MappingItemTransformer;
import org.apache.syncope.core.provisioning.api.propagation.PropagationActions;
+import org.identityconnectors.framework.common.objects.ObjectClass;
public class ExternalResourceValidator extends AbstractValidator<ExternalResourceCheck, ExternalResource> {
@@ -162,22 +163,29 @@ public class ExternalResourceValidator extends AbstractValidator<ExternalResourc
}
}
+ final Set<AnyType> anyTypes = new HashSet<>();
final Set<String> objectClasses = new HashSet<>();
- boolean validMappings = CollectionUtils.matchesAll(resource.getProvisions(),
- new Predicate<Provision>() {
-
- @Override
- public boolean evaluate(final Provision provision) {
- if (provision.getObjectClass() != null) {
- objectClasses.add(provision.getObjectClass().getObjectClassValue());
- }
- return isValid(provision.getAnyType(), provision.getMapping(), context);
- }
- });
+ boolean validMappings = CollectionUtils.matchesAll(resource.getProvisions(), new Predicate<Provision>() {
+ @Override
+ public boolean evaluate(final Provision provision) {
+ anyTypes.add(provision.getAnyType());
+ if (provision.getObjectClass() != null) {
+ objectClasses.add(provision.getObjectClass().getObjectClassValue());
+ }
+ return isValid(provision.getAnyType(), provision.getMapping(), context);
+ }
+ });
+
+ if (anyTypes.size() < resource.getProvisions().size()) {
+ context.buildConstraintViolationWithTemplate(getTemplate(EntityViolationType.InvalidResource,
+ "Each provision requires a different " + AnyType.class.getSimpleName())).
+ addPropertyNode("provisions").addConstraintViolation();
+ return false;
+ }
if (objectClasses.size() < resource.getProvisions().size()) {
context.buildConstraintViolationWithTemplate(getTemplate(EntityViolationType.InvalidResource,
- "Each provision requires a different ObjectClass")).
+ "Each provision requires a different" + ObjectClass.class.getSimpleName())).
addPropertyNode("provisions").addConstraintViolation();
return false;
}