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/01 18:16:59 UTC

svn commit: r1332734 - /incubator/syncope/trunk/core/src/main/java/org/apache/syncope/core/rest/data/PolicyDataBinder.java

Author: rene
Date: Tue May  1 16:16:58 2012
New Revision: 1332734

URL: http://svn.apache.org/viewvc?rev=1332734&view=rev
Log:
sonar - fix unconfirmed casts

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=1332734&r1=1332733&r2=1332734&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 Tue May  1 16:16:58 2012
@@ -41,37 +41,43 @@ public class PolicyDataBinder {
      */
     public <T extends PolicyTO> T getPolicyTO(final Policy policy) {
         final PolicyTO policyTO;
+
+        boolean isGlobal = Boolean.FALSE;
         switch (policy.getType()) {
             case GLOBAL_PASSWORD:
-                policyTO = new PasswordPolicyTO(true);
-                ((PasswordPolicyTO) policyTO).setSpecification((PasswordPolicySpec) policy.getSpecification());
-                break;
+            case GLOBAL_ACCOUNT:
+            case GLOBAL_SYNC:
+                isGlobal = Boolean.TRUE;
+            default:
+        }
 
+        switch (policy.getType()) {
+            case GLOBAL_PASSWORD:
             case PASSWORD:
-                policyTO = new PasswordPolicyTO();
+                if (!(policy.getSpecification() instanceof PasswordPolicySpec)) {
+                    throw new ClassCastException("policy is expected to be typed PasswordPolicySpec: " + policy.getSpecification().getClass().getName());
+                }
+                policyTO = new PasswordPolicyTO(isGlobal);
                 ((PasswordPolicyTO) policyTO).setSpecification((PasswordPolicySpec) policy.getSpecification());
                 break;
 
             case GLOBAL_ACCOUNT:
-                policyTO = new AccountPolicyTO(true);
-                ((AccountPolicyTO) policyTO).setSpecification((AccountPolicySpec) policy.getSpecification());
-                break;
-
             case ACCOUNT:
-                policyTO = new AccountPolicyTO();
+                if (!(policy.getSpecification() instanceof AccountPolicySpec)) {
+                    throw new ClassCastException("policy is expected to be typed AccountPolicySpec: " + policy.getSpecification().getClass().getName());
+                }
+                policyTO = new AccountPolicyTO(isGlobal);
                 ((AccountPolicyTO) policyTO).setSpecification((AccountPolicySpec) policy.getSpecification());
                 break;
 
             case GLOBAL_SYNC:
-                policyTO = new SyncPolicyTO(true);
-                ((SyncPolicyTO) policyTO).setSpecification((SyncPolicySpec) policy.getSpecification());
-                break;
-
             case SYNC:
             default:
-                policyTO = new SyncPolicyTO();
+                if (!(policy.getSpecification() instanceof SyncPolicySpec)) {
+                    throw new ClassCastException("policy is expected to be typed SyncPolicySpec: " + policy.getSpecification().getClass().getName());
+                }
+                policyTO = new SyncPolicyTO(isGlobal);
                 ((SyncPolicyTO) policyTO).setSpecification((SyncPolicySpec) policy.getSpecification());
-
         }
 
         policyTO.setId(policy.getId());
@@ -83,8 +89,7 @@ public class PolicyDataBinder {
     public <T extends Policy> T getPolicy(T policy, final PolicyTO policyTO) {
 
         if (policy != null && policy.getType() != policyTO.getType()) {
-            throw new IllegalArgumentException(String.format("Cannot update %s from %s", policy.getType(), policyTO
-                    .getType()));
+            throw new IllegalArgumentException(String.format("Cannot update %s from %s", policy.getType(), policyTO.getType()));
         }
 
         switch (policyTO.getType()) {