This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository wikitty. See http://git.nuiton.org/wikitty.git commit 9a667bfd586bcb9dbc5deec0e560406ac4ba03d1 Author: Benjamin POUSSIN <poussin@codelutin.com> Date: Fri Jul 17 02:22:55 2015 +0200 fixes #3733: Simplify field cardinality migration --- .../java/org/nuiton/wikitty/entities/FieldType.java | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/wikitty-api/src/main/java/org/nuiton/wikitty/entities/FieldType.java b/wikitty-api/src/main/java/org/nuiton/wikitty/entities/FieldType.java index 939dd26..8ee6b63 100644 --- a/wikitty-api/src/main/java/org/nuiton/wikitty/entities/FieldType.java +++ b/wikitty-api/src/main/java/org/nuiton/wikitty/entities/FieldType.java @@ -32,6 +32,7 @@ import java.util.LinkedHashSet; import java.util.List; import java.util.Map; import java.util.Set; +import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -130,6 +131,18 @@ public class FieldType implements WikittyTagValue, Serializable { * @return object in type of this FieldType */ public Object getContainedValidObject( Object value ) { + // to permit simple migration from cardinality N to 1 for field + if (value != null && (value instanceof Collection || value.getClass().isArray())) { + int size = CollectionUtils.size(value); + if (size > 0) { + value = CollectionUtils.get(value, 0); + if (size > 1) { + log.warn("migrate field cardinality N to 1, but collection contains " + + size + " values, only first is migrate, all other are loose"); + } + } + } + Object result = null; switch (type) { case BINARY: @@ -171,8 +184,9 @@ public class FieldType implements WikittyTagValue, Serializable { result = null; } else if (isCollection()) { if ( !(value instanceof Collection || value.getClass().isArray()) ) { - throw new WikittyException( "A collection or array is expected for type " - + type.name() + "[" + lowerBound + " - " + upperBound + "]" ); + // to simplify migration from field with cardinality 1 to N + // create collection with value + value = new Object[]{value}; } Collection<Object> col; if (isUnique()) { -- To stop receiving notification emails like this one, please contact nuiton.org SCM administrator <admin+scm@nuiton.org>.