You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by re...@apache.org on 2012/05/02 13:22:34 UTC
svn commit: r1332996 -
/incubator/syncope/trunk/core/src/main/java/org/apache/syncope/core/rest/data/PolicyDataBinder.java
Author: rene
Date: Wed May 2 11:22:34 2012
New Revision: 1332996
URL: http://svn.apache.org/viewvc?rev=1332996&view=rev
Log:
sonar: checking type before casting
Modified:
incubator/syncope/trunk/core/src/main/java/org/apache/syncope/core/rest/data/PolicyDataBinder.java
Modified: incubator/syncope/trunk/core/src/main/java/org/apache/syncope/core/rest/data/PolicyDataBinder.java
URL: http://svn.apache.org/viewvc/incubator/syncope/trunk/core/src/main/java/org/apache/syncope/core/rest/data/PolicyDataBinder.java?rev=1332996&r1=1332995&r2=1332996&view=diff
==============================================================================
--- incubator/syncope/trunk/core/src/main/java/org/apache/syncope/core/rest/data/PolicyDataBinder.java (original)
+++ incubator/syncope/trunk/core/src/main/java/org/apache/syncope/core/rest/data/PolicyDataBinder.java Wed May 2 11:22:34 2012
@@ -91,47 +91,47 @@ public class PolicyDataBinder {
if (policy != null && policy.getType() != policyTO.getType()) {
throw new IllegalArgumentException(String.format("Cannot update %s from %s", policy.getType(), policyTO.getType()));
}
-
+
+ boolean isGlobal = Boolean.FALSE;
switch (policyTO.getType()) {
case GLOBAL_PASSWORD:
- if (policy == null) {
- policy = (T) new PasswordPolicy(true);
- }
- policy.setSpecification(((PasswordPolicyTO) policyTO).getSpecification());
- break;
+ case GLOBAL_ACCOUNT:
+ case GLOBAL_SYNC:
+ isGlobal = Boolean.TRUE;
+ default:
+ }
+ switch (policyTO.getType()) {
+ case GLOBAL_PASSWORD:
case PASSWORD:
+ if (!(policyTO instanceof PasswordPolicyTO)) {
+ throw new ClassCastException("policyTO is expected to be typed PasswordPolicyTO: " + policyTO.getClass().getName());
+ }
if (policy == null) {
- policy = (T) new PasswordPolicy();
+ policy = (T) new PasswordPolicy(isGlobal);
}
policy.setSpecification(((PasswordPolicyTO) policyTO).getSpecification());
break;
case GLOBAL_ACCOUNT:
- if (policy == null) {
- policy = (T) new AccountPolicy(true);
- }
- policy.setSpecification(((AccountPolicyTO) policyTO).getSpecification());
- break;
-
case ACCOUNT:
+ if (!(policyTO instanceof AccountPolicyTO)) {
+ throw new ClassCastException("policyTO is expected to be typed AccountPolicyTO: " + policyTO.getClass().getName());
+ }
if (policy == null) {
- policy = (T) new AccountPolicy();
+ policy = (T) new AccountPolicy(isGlobal);
}
policy.setSpecification(((AccountPolicyTO) policyTO).getSpecification());
break;
case GLOBAL_SYNC:
- if (policy == null) {
- policy = (T) new SyncPolicy(true);
- }
- policy.setSpecification(((SyncPolicyTO) policyTO).getSpecification());
- break;
-
case SYNC:
default:
+ if (!(policyTO instanceof SyncPolicyTO)) {
+ throw new ClassCastException("policyTO is expected to be typed SyncPolicyTO: " + policyTO.getClass().getName());
+ }
if (policy == null) {
- policy = (T) new SyncPolicy();
+ policy = (T) new SyncPolicy(isGlobal);
}
policy.setSpecification(((SyncPolicyTO) policyTO).getSpecification());
}