Update of /var/cvs/src/org/mmbase/datatypes In directory james.mmbase.org:/tmp/cvs-serv1399
Modified Files: BasicDataType.java DataType.java Log Message: MMB-1794 See also: http://cvs.mmbase.org/viewcvs/src/org/mmbase/datatypes See also: http://www.mmbase.org/jira/browse/MMB-1794 Index: BasicDataType.java =================================================================== RCS file: /var/cvs/src/org/mmbase/datatypes/BasicDataType.java,v retrieving revision 1.103 retrieving revision 1.104 diff -u -b -r1.103 -r1.104 --- BasicDataType.java 8 Feb 2009 21:15:13 -0000 1.103 +++ BasicDataType.java 17 Mar 2009 14:42:02 -0000 1.104 @@ -40,7 +40,7 @@ * @author Pierre van Rooden * @author Michiel Meeuwissen * @since MMBase-1.8 - * @version $Id: BasicDataType.java,v 1.103 2009/02/08 21:15:13 michiel Exp $ + * @version $Id: BasicDataType.java,v 1.104 2009/03/17 14:42:02 michiel Exp $ */ public class BasicDataType<C> extends AbstractDescriptor implements DataType<C>, Comparable<DataType<C>>, Descriptor { @@ -430,6 +430,7 @@ case DataType.ENFORCE_ALWAYS: return "always"; case DataType.ENFORCE_ONCHANGE: return "onchange"; case DataType.ENFORCE_ONCREATE: return "oncreate"; + case DataType.ENFORCE_ONVALIDATE: return "onvalidate"; case DataType.ENFORCE_NEVER: return "never"; default: return "???"; } @@ -515,6 +516,9 @@ * {...@inheritdoc} */ private final Collection<LocalizedString> validate(final Object value, final Node node, final Field field, boolean testEnum) { + if (log.isDebugEnabled()) { + log.debug("Validating " + value); + } Collection<LocalizedString> errors = VALID; Object castValue; try { @@ -527,6 +531,7 @@ } if (errors.size() > 0) { + log.debug("Invalid"); // no need continuing, restrictions will probably not know how to handle this value any way. return errors; } @@ -1060,6 +1065,7 @@ case DataType.ENFORCE_ALWAYS: return true; case DataType.ENFORCE_ONCHANGE: if (node == null || field == null || node.isChanged(field.getName())) return true; case DataType.ENFORCE_ONCREATE: if (node == null || node.isNew()) return true; + case DataType.ENFORCE_ONVALIDATE: return true; case DataType.ENFORCE_NEVER: return false; default: return true; } @@ -1171,7 +1177,10 @@ } protected boolean simpleValid(Object v, Node node, Field field) { - if (! isUnique()) return true; + if (! isUnique()) { + log.debug("Not unique"); + return true; + } if (field != null && v != null && value != null ) { if (field.isVirtual()) { @@ -1192,6 +1201,7 @@ } } + log.debug("Checking '" + value + "'"); NodeManager nodeManager = field.getNodeManager(); Cloud cloud = nodeManager.getCloud(); if (cloud.getUser().getRank().getInt() < Rank.ADMIN_INT) { Index: DataType.java =================================================================== RCS file: /var/cvs/src/org/mmbase/datatypes/DataType.java,v retrieving revision 1.70 retrieving revision 1.71 diff -u -b -r1.70 -r1.71 --- DataType.java 27 Aug 2008 17:09:16 -0000 1.70 +++ DataType.java 17 Mar 2009 14:42:02 -0000 1.71 @@ -33,7 +33,7 @@ * @author Pierre van Rooden * @author Michiel Meeuwissen * @since MMBase-1.8 - * @version $Id: DataType.java,v 1.70 2008/08/27 17:09:16 michiel Exp $ + * @version $Id: DataType.java,v 1.71 2009/03/17 14:42:02 michiel Exp $ * @param <C> Class this DataType */ @@ -76,6 +76,17 @@ static final int ENFORCE_ONCREATE = 1000; /** + * Return value for {...@link DataType.Restriction#getEnforceStrength}. This means that ta + * restriction on a value must be enforced only on validation of the value. This means that it + * has no influence of the validity of the <em>node</em>. + * @todo No difference made between always/change/create for this. We could also add + * ENfORCE_ONVALIDATE_CHANGE, ENFORMCE_ONVALIDATE_CREATE + * @since MMBase-1.9.1 + */ + + static final int ENFORCE_ONVALIDATE = 500; + + /** * Return value for {...@link DataType.Restriction#getEnforceStrength}. This means that the * restriction on a value must be enforced never, so the restriction serves only as UI indication. */ _______________________________________________ Cvs mailing list Cvs@lists.mmbase.org http://lists.mmbase.org/mailman/listinfo/cvs