[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)); + } } }