[SYNCOPE-1350] Smarter getValueAsString

Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/2569668a
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/2569668a
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/2569668a

Branch: refs/heads/2_0_X
Commit: 2569668a69ba8585577b99db4f90e7fe2a322157
Parents: c819eb5
Author: Francesco Chicchiriccò <ilgro...@apache.org>
Authored: Thu Aug 9 12:12:08 2018 +0200
Committer: Francesco Chicchiriccò <ilgro...@apache.org>
Committed: Thu Aug 9 12:12:22 2018 +0200

----------------------------------------------------------------------
 .../persistence/api/entity/PlainAttrValue.java  |  2 +
 .../jpa/entity/AbstractPlainAttrValue.java      | 52 ++++++++++++--------
 .../provisioning/java/MappingManagerImpl.java   |  6 ++-
 3 files changed, 38 insertions(+), 22 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/syncope/blob/2569668a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/PlainAttrValue.java
----------------------------------------------------------------------
diff --git 
a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/PlainAttrValue.java
 
b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/PlainAttrValue.java
index 87eac8f..67282ee 100644
--- 
a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/PlainAttrValue.java
+++ 
b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/PlainAttrValue.java
@@ -43,6 +43,8 @@ public interface PlainAttrValue extends Entity {
 
     String getValueAsString(AttrSchemaType type);
 
+    String getValueAsString(PlainSchema schema);
+
     void parseValue(PlainSchema schema, String value);
 
     void setAttr(PlainAttr<?> attr);

http://git-wip-us.apache.org/repos/asf/syncope/blob/2569668a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractPlainAttrValue.java
----------------------------------------------------------------------
diff --git 
a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractPlainAttrValue.java
 
b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractPlainAttrValue.java
index fed4d05..03083e8 100644
--- 
a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractPlainAttrValue.java
+++ 
b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractPlainAttrValue.java
@@ -219,18 +219,7 @@ public abstract class AbstractPlainAttrValue extends 
AbstractGeneratedKeyEntity
                                                 : getStringValue());
     }
 
-    @Override
-    public String getValueAsString() {
-        final AttrSchemaType type = getAttr() == null || getAttr().getSchema() 
== null
-                || getAttr().getSchema().getType() == null
-                ? AttrSchemaType.String
-                : getAttr().getSchema().getType();
-
-        return getValueAsString(type);
-    }
-
-    @Override
-    public String getValueAsString(final AttrSchemaType type) {
+    private String getValueAsString(final AttrSchemaType type, final 
PlainSchema schema) {
         String result;
         switch (type) {
 
@@ -239,24 +228,21 @@ public abstract class AbstractPlainAttrValue extends 
AbstractGeneratedKeyEntity
                 break;
 
             case Long:
-                result = getAttr() == null || getAttr().getSchema() == null
-                        || getAttr().getSchema().getConversionPattern() == null
+                result = schema == null || schema.getConversionPattern() == 
null
                         ? getLongValue().toString()
-                        : FormatUtils.format(getLongValue(), 
getAttr().getSchema().getConversionPattern());
+                        : FormatUtils.format(getLongValue(), 
schema.getConversionPattern());
                 break;
 
             case Double:
-                result = getAttr() == null || getAttr().getSchema() == null
-                        || getAttr().getSchema().getConversionPattern() == null
+                result = schema == null || schema.getConversionPattern() == 
null
                         ? getDoubleValue().toString()
-                        : FormatUtils.format(getDoubleValue(), 
getAttr().getSchema().getConversionPattern());
+                        : FormatUtils.format(getDoubleValue(), 
schema.getConversionPattern());
                 break;
 
             case Date:
-                result = getAttr() == null || getAttr().getSchema() == null
-                        || getAttr().getSchema().getConversionPattern() == null
+                result = schema == null || schema.getConversionPattern() == 
null
                         ? FormatUtils.format(getDateValue())
-                        : FormatUtils.format(getDateValue(), false, 
getAttr().getSchema().getConversionPattern());
+                        : FormatUtils.format(getDateValue(), false, 
schema.getConversionPattern());
                 break;
 
             case Binary:
@@ -275,6 +261,30 @@ public abstract class AbstractPlainAttrValue extends 
AbstractGeneratedKeyEntity
     }
 
     @Override
+    public String getValueAsString() {
+        PlainSchema schema = getAttr() == null || getAttr().getSchema() == null
+                ? null
+                : getAttr().getSchema();
+        AttrSchemaType type = schema == null || schema.getType() == null
+                ? AttrSchemaType.String
+                : getAttr().getSchema().getType();
+
+        return getValueAsString(type, schema);
+    }
+
+    @Override
+    public String getValueAsString(final AttrSchemaType type) {
+        return getValueAsString(
+                type,
+                getAttr() == null || getAttr().getSchema() == null ? null : 
getAttr().getSchema());
+    }
+
+    @Override
+    public String getValueAsString(final PlainSchema schema) {
+        return getValueAsString(schema.getType(), schema);
+    }
+
+    @Override
     public String toString() {
         return ReflectionToStringBuilder.toString(this, 
ToStringStyle.JSON_STYLE);
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/2569668a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/MappingManagerImpl.java
----------------------------------------------------------------------
diff --git 
a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/MappingManagerImpl.java
 
b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/MappingManagerImpl.java
index 4fa0e8e..4a66677 100644
--- 
a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/MappingManagerImpl.java
+++ 
b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/MappingManagerImpl.java
@@ -362,7 +362,11 @@ public class MappingManagerImpl implements MappingManager {
                 if 
(FrameworkUtil.isSupportedAttributeType(schemaType.getType())) {
                     objValues.add(value.getValue());
                 } else {
-                    objValues.add(value.getValueAsString(schemaType));
+                    if (schema instanceof PlainSchema) {
+                        objValues.add(value.getValueAsString((PlainSchema) 
schema));
+                    } else {
+                        objValues.add(value.getValueAsString(schemaType));
+                    }
                 }
             }
 

Reply via email to