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
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs