[MMBASE CVS] src/org/mmbase/bridge/util AbstractNode.java
Update of /var/cvs/src/org/mmbase/bridge/util In directory james.mmbase.org:/tmp/cvs-serv11560/util Modified Files: AbstractNode.java Log Message: MMB-1815, Plus some issues that made test-cases fail. Like that fact that commit processors where sometimes not called, or called too often. See ProcessorTest.java for what is garanteed to work now. See also: http://cvs.mmbase.org/viewcvs/src/org/mmbase/bridge/util See also: http://www.mmbase.org/jira/browse/MMB-1815 Index: AbstractNode.java === RCS file: /var/cvs/src/org/mmbase/bridge/util/AbstractNode.java,v retrieving revision 1.31 retrieving revision 1.32 diff -u -b -r1.31 -r1.32 --- AbstractNode.java 29 Apr 2009 07:36:08 - 1.31 +++ AbstractNode.java 30 Apr 2009 14:46:39 - 1.32 @@ -32,7 +32,7 @@ * here, to minimalize the implementation effort of fully implemented Nodes. * * @author Michiel Meeuwissen - * @version $Id: AbstractNode.java,v 1.31 2009/04/29 07:36:08 michiel Exp $ + * @version $Id: AbstractNode.java,v 1.32 2009/04/30 14:46:39 michiel Exp $ * @see org.mmbase.bridge.Node * @since MMBase-1.8 */ @@ -502,13 +502,7 @@ return (Element)tree.importNode(doc.getDocumentElement(), true); } -public final void processCommit() { -FieldIterator fi = getNodeManager().getFields().fieldIterator(); -while (fi.hasNext()) { -Field field = fi.nextField(); -field.getDataType().getCommitProcessor().commit(this, field); -} -} + public CollectionString validate() { ListString errors = new ArrayListString(); ___ Cvs mailing list Cvs@lists.mmbase.org http://lists.mmbase.org/mailman/listinfo/cvs
[MMBASE CVS] src/org/mmbase/bridge/util AbstractNode.java
Update of /var/cvs/src/org/mmbase/bridge/util In directory james.mmbase.org:/tmp/cvs-serv2889/bridge/util Modified Files: AbstractNode.java Log Message: removed some logging See also: http://cvs.mmbase.org/viewcvs/src/org/mmbase/bridge/util Index: AbstractNode.java === RCS file: /var/cvs/src/org/mmbase/bridge/util/AbstractNode.java,v retrieving revision 1.30 retrieving revision 1.31 diff -u -b -r1.30 -r1.31 --- AbstractNode.java 24 Apr 2009 15:12:47 - 1.30 +++ AbstractNode.java 29 Apr 2009 07:36:08 - 1.31 @@ -32,7 +32,7 @@ * here, to minimalize the implementation effort of fully implemented Nodes. * * @author Michiel Meeuwissen - * @version $Id: AbstractNode.java,v 1.30 2009/04/24 15:12:47 michiel Exp $ + * @version $Id: AbstractNode.java,v 1.31 2009/04/29 07:36:08 michiel Exp $ * @see org.mmbase.bridge.Node * @since MMBase-1.8 */ @@ -98,9 +98,6 @@ log.info(Setting size to + si.getSize()); } -log.info(Size + getSize(fieldName)); -log.info(Found + value); - if (value == null dt instanceof org.mmbase.datatypes.NumberDataType) { // null would otherwise be converted to -1, which makes little sense. // but must happen because setNumericValue methods cannot accept null. ___ Cvs mailing list Cvs@lists.mmbase.org http://lists.mmbase.org/mailman/listinfo/cvs
[MMBASE CVS] src/org/mmbase/bridge/util AbstractNode.java
Update of /var/cvs/src/org/mmbase/bridge/util In directory james.mmbase.org:/tmp/cvs-serv14051 Modified Files: AbstractNode.java Log Message: MMB-1810 See also: http://cvs.mmbase.org/viewcvs/src/org/mmbase/bridge/util See also: http://www.mmbase.org/jira/browse/MMB-1810 Index: AbstractNode.java === RCS file: /var/cvs/src/org/mmbase/bridge/util/AbstractNode.java,v retrieving revision 1.29 retrieving revision 1.30 diff -u -b -r1.29 -r1.30 --- AbstractNode.java 7 Apr 2009 08:23:33 - 1.29 +++ AbstractNode.java 24 Apr 2009 15:12:47 - 1.30 @@ -32,7 +32,7 @@ * here, to minimalize the implementation effort of fully implemented Nodes. * * @author Michiel Meeuwissen - * @version $Id: AbstractNode.java,v 1.29 2009/04/07 08:23:33 nklasens Exp $ + * @version $Id: AbstractNode.java,v 1.30 2009/04/24 15:12:47 michiel Exp $ * @see org.mmbase.bridge.Node * @since MMBase-1.8 */ @@ -83,7 +83,24 @@ setValueWithoutProcess(fieldName, value); } else { DataType dt = field.getDataType(); + + value = dt.cast(value, this, field); + +// All this stuff with setSize is pretty horrible +// we need to come up with something clearer than this. +if (value instanceof org.apache.commons.fileupload.FileItem) { +org.apache.commons.fileupload.FileItem fi = (org.apache.commons.fileupload.FileItem) value; +setSize(fieldName, fi.getSize()); +} else if (value instanceof SerializableInputStream) { +SerializableInputStream si = (SerializableInputStream) value; +setSize(fieldName, si.getSize()); +log.info(Setting size to + si.getSize()); +} + +log.info(Size + getSize(fieldName)); +log.info(Found + value); + if (value == null dt instanceof org.mmbase.datatypes.NumberDataType) { // null would otherwise be converted to -1, which makes little sense. // but must happen because setNumericValue methods cannot accept null. @@ -97,7 +114,7 @@ break; case Field.TYPE_BINARY:{ long length = getSize(fieldName); -setInputStreamValue(fieldName, Casting.toInputStream(value), length); +setInputStreamValue(fieldName, Casting.toSerializableInputStream(value), length); break; } case Field.TYPE_FLOAT: @@ -233,6 +250,7 @@ private static final int readLimit = 10 * 1024 * 1024; public final void setInputStreamValue(String fieldName, final InputStream value, long size) { +log.info(Setting + size + + bytes ( + value + )); setSize(fieldName, size); Field field = getNodeManager().getField(fieldName); if (log.isDebugEnabled()) { @@ -240,6 +258,7 @@ } Object v = value; try { +if (field.getDataType().getProcessor(DataType.PROCESS_SET, Field.TYPE_BINARY) != null) { if (value.markSupported() size readLimit) { if (log.isDebugEnabled()) { log.debug(Mark supported and using + field.getDataType().getProcessor(DataType.PROCESS_SET, Field.TYPE_BINARY)); @@ -248,23 +267,21 @@ v = field.getDataType().getProcessor(DataType.PROCESS_SET, Field.TYPE_BINARY).process(this, field, value); value.reset(); } else { -if (field.getDataType().getProcessor(DataType.PROCESS_SET, Field.TYPE_BINARY) != null) { + if (log.isDebugEnabled()) { log.debug(Mark not supported but using + field.getDataType().getProcessor(DataType.PROCESS_SET, Field.TYPE_BINARY)); } -// well, we must read it to byte-array then, first. -ByteArrayOutputStream b = new ByteArrayOutputStream((int) size); -IOUtil.copy(value, b); -byte[] byteArray = b.toByteArray(); -v = field.getDataType().getProcessor(DataType.PROCESS_SET, Field.TYPE_BINARY).process(this, field, byteArray); +org.mmbase.util.SerializableInputStream si = Casting.toSerializableInputStream(value); +v = field.getDataType().getProcessor(DataType.PROCESS_SET, Field.TYPE_BINARY).process(this, field, si); +} } else { -log.debug(Mark not support but no need for processing); +log.debug(No need for processing); v = value; } -} } catch (IOException ioe) { -log.error(ioe); +log.error(ioe.getMessage(), ioe); } +log.debug(Setting + v); setValueWithoutProcess(fieldName, v); }
[MMBASE CVS] src/org/mmbase/bridge/util AbstractNode.java
Update of /var/cvs/src/org/mmbase/bridge/util In directory james.mmbase.org:/tmp/cvs-serv952/src/org/mmbase/bridge/util Modified Files: Tag: MMBase-1_8 AbstractNode.java Log Message: MMB-1806 Improve io stream copy performance See also: http://cvs.mmbase.org/viewcvs/src/org/mmbase/bridge/util See also: http://www.mmbase.org/jira/browse/MMB-1806 Index: AbstractNode.java === RCS file: /var/cvs/src/org/mmbase/bridge/util/AbstractNode.java,v retrieving revision 1.14.2.5 retrieving revision 1.14.2.6 diff -u -b -r1.14.2.5 -r1.14.2.6 --- AbstractNode.java 23 Mar 2009 16:02:08 - 1.14.2.5 +++ AbstractNode.java 7 Apr 2009 08:23:12 - 1.14.2.6 @@ -31,7 +31,7 @@ * here, to minimalize the implementation effort of fully implemented Nodes. * * @author Michiel Meeuwissen - * @version $Id: AbstractNode.java,v 1.14.2.5 2009/03/23 16:02:08 michiel Exp $ + * @version $Id: AbstractNode.java,v 1.14.2.6 2009/04/07 08:23:12 nklasens Exp $ * @see org.mmbase.bridge.Node * @since MMBase-1.8 */ @@ -231,10 +231,7 @@ } // well, we must read it to byte-array then, first. ByteArrayOutputStream b = new ByteArrayOutputStream((int) size); -int c; -while((c = value.read()) -1) { -b.write(c); -} +IOUtil.copy(value, b); byte[] byteArray = b.toByteArray(); v = field.getDataType().getProcessor(DataType.PROCESS_SET, Field.TYPE_BINARY).process(this, field, byteArray); } else { ___ Cvs mailing list Cvs@lists.mmbase.org http://lists.mmbase.org/mailman/listinfo/cvs
[MMBASE CVS] src/org/mmbase/bridge/util AbstractNode.java
Update of /var/cvs/src/org/mmbase/bridge/util In directory james.mmbase.org:/tmp/cvs-serv1070/src/org/mmbase/bridge/util Modified Files: AbstractNode.java Log Message: MMB-1806 Improve io stream copy performance See also: http://cvs.mmbase.org/viewcvs/src/org/mmbase/bridge/util See also: http://www.mmbase.org/jira/browse/MMB-1806 Index: AbstractNode.java === RCS file: /var/cvs/src/org/mmbase/bridge/util/AbstractNode.java,v retrieving revision 1.28 retrieving revision 1.29 diff -u -b -r1.28 -r1.29 --- AbstractNode.java 9 Dec 2008 15:42:31 - 1.28 +++ AbstractNode.java 7 Apr 2009 08:23:33 - 1.29 @@ -32,7 +32,7 @@ * here, to minimalize the implementation effort of fully implemented Nodes. * * @author Michiel Meeuwissen - * @version $Id: AbstractNode.java,v 1.28 2008/12/09 15:42:31 michiel Exp $ + * @version $Id: AbstractNode.java,v 1.29 2009/04/07 08:23:33 nklasens Exp $ * @see org.mmbase.bridge.Node * @since MMBase-1.8 */ @@ -254,10 +254,7 @@ } // well, we must read it to byte-array then, first. ByteArrayOutputStream b = new ByteArrayOutputStream((int) size); -int c; -while((c = value.read()) -1) { -b.write(c); -} +IOUtil.copy(value, b); byte[] byteArray = b.toByteArray(); v = field.getDataType().getProcessor(DataType.PROCESS_SET, Field.TYPE_BINARY).process(this, field, byteArray); } else { ___ Cvs mailing list Cvs@lists.mmbase.org http://lists.mmbase.org/mailman/listinfo/cvs
[MMBASE CVS] src/org/mmbase/bridge/util AbstractNode.java
Update of /var/cvs/src/org/mmbase/bridge/util In directory james.mmbase.org:/tmp/cvs-serv32649 Modified Files: Tag: MMBase-1_8 AbstractNode.java Log Message: ported implementation of validate from HEAD to 1.8, otherwise fix for MMB-1794 doesn't work (and I need it for EO) See also: http://cvs.mmbase.org/viewcvs/src/org/mmbase/bridge/util See also: http://www.mmbase.org/jira/browse/MMB-1794 Index: AbstractNode.java === RCS file: /var/cvs/src/org/mmbase/bridge/util/AbstractNode.java,v retrieving revision 1.14.2.4 retrieving revision 1.14.2.5 diff -u -b -r1.14.2.4 -r1.14.2.5 --- AbstractNode.java 16 Oct 2008 13:56:59 - 1.14.2.4 +++ AbstractNode.java 23 Mar 2009 16:02:08 - 1.14.2.5 @@ -31,7 +31,7 @@ * here, to minimalize the implementation effort of fully implemented Nodes. * * @author Michiel Meeuwissen - * @version $Id: AbstractNode.java,v 1.14.2.4 2008/10/16 13:56:59 michiel Exp $ + * @version $Id: AbstractNode.java,v 1.14.2.5 2009/03/23 16:02:08 michiel Exp $ * @see org.mmbase.bridge.Node * @since MMBase-1.8 */ @@ -471,7 +471,8 @@ FieldIterator fi = getNodeManager().getFields().fieldIterator(); while (fi.hasNext()) { Field field = fi.nextField(); -field.getDataType().getCommitProcessor().commit(this, field); +org.mmbase.datatypes.processors.CommitProcessor cp = field.getDataType().getCommitProcessor(); +cp.commit(this, field); } } @@ -481,7 +482,12 @@ Locale locale = getCloud().getLocale(); while (fi.hasNext()) { Field field = fi.nextField(); -if (! field.isReadOnly() !field.isVirtual() (isNew() || isChanged(field.getName( { +if (! field.isReadOnly() !field.isVirtual()) { +DataType dataType = field.getDataType(); +int enforceStrength = dataType.getEnforceStrength(); +if ((enforceStrength DataType.ENFORCE_ONCHANGE) || + (isChanged(field.getName()) (enforceStrength = DataType.ENFORCE_ONCREATE)) || + (isNew() (enforceStrength = DataType.ENFORCE_NEVER))) { // don't validate read-only fields. Users cannot have edited those. Most noticably, // the _number_ field must not be validated, because for new nodes it does not yet // point to an existing node... I think the number field should not be a NODE field... @@ -495,6 +501,7 @@ } } } +} return errors; } ___ Cvs mailing list Cvs@lists.mmbase.org http://lists.mmbase.org/mailman/listinfo/cvs
[MMBASE CVS] src/org/mmbase/bridge/util AbstractNode.java
Update of /var/cvs/src/org/mmbase/bridge/util In directory james.mmbase.org:/tmp/cvs-serv3910/bridge/util Modified Files: AbstractNode.java Log Message: indentation only See also: http://cvs.mmbase.org/viewcvs/src/org/mmbase/bridge/util Index: AbstractNode.java === RCS file: /var/cvs/src/org/mmbase/bridge/util/AbstractNode.java,v retrieving revision 1.27 retrieving revision 1.28 diff -u -b -r1.27 -r1.28 --- AbstractNode.java 1 Dec 2008 22:41:06 - 1.27 +++ AbstractNode.java 9 Dec 2008 15:42:31 - 1.28 @@ -32,7 +32,7 @@ * here, to minimalize the implementation effort of fully implemented Nodes. * * @author Michiel Meeuwissen - * @version $Id: AbstractNode.java,v 1.27 2008/12/01 22:41:06 michiel Exp $ + * @version $Id: AbstractNode.java,v 1.28 2008/12/09 15:42:31 michiel Exp $ * @see org.mmbase.bridge.Node * @since MMBase-1.8 */ ___ Cvs mailing list Cvs@lists.mmbase.org http://lists.mmbase.org/mailman/listinfo/cvs
[MMBASE CVS] src/org/mmbase/bridge/util AbstractNode.java NodeWrapper.java
Update of /var/cvs/src/org/mmbase/bridge/util In directory james.mmbase.org:/tmp/cvs-serv29264/util Modified Files: AbstractNode.java NodeWrapper.java Log Message: MMB-1736 See also: http://cvs.mmbase.org/viewcvs/src/org/mmbase/bridge/util See also: http://www.mmbase.org/jira/browse/MMB-1736 Index: AbstractNode.java === RCS file: /var/cvs/src/org/mmbase/bridge/util/AbstractNode.java,v retrieving revision 1.26 retrieving revision 1.27 diff -u -b -r1.26 -r1.27 --- AbstractNode.java 24 Sep 2008 22:34:50 - 1.26 +++ AbstractNode.java 1 Dec 2008 22:41:06 - 1.27 @@ -12,6 +12,7 @@ import java.util.*; import java.io.*; +import java.math.BigDecimal; import java.text.Collator; @@ -31,7 +32,7 @@ * here, to minimalize the implementation effort of fully implemented Nodes. * * @author Michiel Meeuwissen - * @version $Id: AbstractNode.java,v 1.26 2008/09/24 22:34:50 michiel Exp $ + * @version $Id: AbstractNode.java,v 1.27 2008/12/01 22:41:06 michiel Exp $ * @see org.mmbase.bridge.Node * @since MMBase-1.8 */ @@ -112,6 +113,7 @@ case Field.TYPE_NODE:setNodeValue(fieldName, Casting.toNode(value, getCloud())); break; case Field.TYPE_DATETIME: setDateValue(fieldName, (Date) value); break; case Field.TYPE_BOOLEAN: setBooleanValue(fieldName, Casting.toBoolean(value)); break; +case Field.TYPE_DECIMAL: setDecimalValue(fieldName, Casting.toDecimal(value)); break; case Field.TYPE_LIST:setListValue(fieldName, (List) value); break; default: setObjectValue(fieldName, value); } @@ -163,6 +165,11 @@ Object v = field.getDataType().getProcessor(DataType.PROCESS_SET, Field.TYPE_DATETIME).process(this, field, value); setValueWithoutProcess(fieldName, v); } +public final void setDecimalValue(String fieldName, final BigDecimal value) { +Field field = getNodeManager().getField(fieldName); +Object v = field.getDataType().getProcessor(DataType.PROCESS_SET, Field.TYPE_DECIMAL).process(this, field, value); +setValueWithoutProcess(fieldName, v); +} public final void setListValue(String fieldName, final List value) { Field field = getNodeManager().getField(fieldName); @@ -312,6 +319,7 @@ } case Field.TYPE_BOOLEAN: return Boolean.valueOf(getBooleanValue(fieldName)); case Field.TYPE_DATETIME:return getDateValue(fieldName); +case Field.TYPE_DECIMAL: return getDecimalValue(fieldName); case Field.TYPE_LIST:return getListValue(fieldName); default: log.error(Unknown fieldtype ' + type + '); @@ -357,6 +365,15 @@ } return result; } +public BigDecimal getDecimalValue(String fieldName) { +BigDecimal result = Casting.toDecimal(getValueWithoutProcess(fieldName)); +NodeManager nodeManager = getNodeManager(); +if (nodeManager.hasField(fieldName)) { // gui(..) stuff could not work. +Field field = nodeManager.getField(fieldName); +result = (BigDecimal) field.getDataType().getProcessor(DataType.PROCESS_GET, Field.TYPE_DECIMAL).process(this, field, result); +} +return result; +} public List getListValue(String fieldName) { List result = Casting.toList(getValueWithoutProcess(fieldName)); Index: NodeWrapper.java === RCS file: /var/cvs/src/org/mmbase/bridge/util/NodeWrapper.java,v retrieving revision 1.21 retrieving revision 1.22 diff -u -b -r1.21 -r1.22 --- NodeWrapper.java18 Sep 2008 09:49:35 - 1.21 +++ NodeWrapper.java1 Dec 2008 22:41:06 - 1.22 @@ -22,7 +22,7 @@ * implementation on a existing codeNode/code instance. * * @author Michiel Meeuwissen - * @version $Id: NodeWrapper.java,v 1.21 2008/09/18 09:49:35 michiel Exp $ + * @version $Id: NodeWrapper.java,v 1.22 2008/12/01 22:41:06 michiel Exp $ * @since MMBase-1.8 */ @@ -54,6 +54,7 @@ public void setLongValue(String fieldName, long value) { node.setLongValue(fieldName, value); } public void setStringValue(String fieldName, String value) { node.setStringValue(fieldName, value); } public void setDateValue(String fieldName, Date value) { node.setDateValue(fieldName, value); } +public void setDecimalValue(String fieldName, java.math.BigDecimal value) { node.setDecimalValue(fieldName, value); } public void setListValue(String fieldName, List? value) { node.setListValue(fieldName, value); } public boolean isNull(String fieldName) { return node.isNull(fieldName); } public longgetSize(String fieldName) { return node.getSize(fieldName); } @@ -70,6 +71,7 @@ public java.io.InputStream getInputStreamValue(String fieldName) {
[MMBASE CVS] src/org/mmbase/bridge/util AbstractNode.java
Update of /var/cvs/src/org/mmbase/bridge/util In directory james.mmbase.org:/tmp/cvs-serv28245 Modified Files: Tag: MMBase-1_8 AbstractNode.java Log Message: lowered a log for Field.TYPE_UNKOWN, because sometimes we purposely create a (virtual) field with unknown, or a type which cannot be otherwise mapped to a mmbase type, type See also: http://cvs.mmbase.org/viewcvs/src/org/mmbase/bridge/util Index: AbstractNode.java === RCS file: /var/cvs/src/org/mmbase/bridge/util/AbstractNode.java,v retrieving revision 1.14.2.3 retrieving revision 1.14.2.4 diff -u -b -r1.14.2.3 -r1.14.2.4 --- AbstractNode.java 17 Oct 2007 12:43:10 - 1.14.2.3 +++ AbstractNode.java 16 Oct 2008 13:56:59 - 1.14.2.4 @@ -31,7 +31,7 @@ * here, to minimalize the implementation effort of fully implemented Nodes. * * @author Michiel Meeuwissen - * @version $Id: AbstractNode.java,v 1.14.2.3 2007/10/17 12:43:10 michiel Exp $ + * @version $Id: AbstractNode.java,v 1.14.2.4 2008/10/16 13:56:59 michiel Exp $ * @see org.mmbase.bridge.Node * @since MMBase-1.8 */ @@ -302,8 +302,11 @@ case Field.TYPE_BOOLEAN: return Boolean.valueOf(getBooleanValue(fieldName)); case Field.TYPE_DATETIME:return getDateValue(fieldName); case Field.TYPE_LIST:return getListValue(fieldName); +case Field.TYPE_UNKNOWN: +log.debug(Unknown fieldtype ' + type + ' for field + fieldName + : + nm.getField(fieldName)); +return value; default: -log.error(Unknown fieldtype ' + type + '); +log.error(Unknown fieldtype ' + type + ' for field + fieldName + : + nm.getField(fieldName)); return value; } } else { ___ Cvs mailing list Cvs@lists.mmbase.org http://lists.mmbase.org/mailman/listinfo/cvs
[MMBASE CVS] src/org/mmbase/bridge/util AbstractNode.java
Update of /var/cvs/src/org/mmbase/bridge/util In directory james.mmbase.org:/tmp/cvs-serv4602 Modified Files: AbstractNode.java Log Message: check with instance of seemed a good idea, but I encountered some problems with it any way. Rolled that back. See also: http://cvs.mmbase.org/viewcvs/src/org/mmbase/bridge/util Index: AbstractNode.java === RCS file: /var/cvs/src/org/mmbase/bridge/util/AbstractNode.java,v retrieving revision 1.24 retrieving revision 1.25 diff -u -b -r1.24 -r1.25 --- AbstractNode.java 16 Sep 2008 16:43:32 - 1.24 +++ AbstractNode.java 18 Sep 2008 09:47:48 - 1.25 @@ -31,7 +31,7 @@ * here, to minimalize the implementation effort of fully implemented Nodes. * * @author Michiel Meeuwissen - * @version $Id: AbstractNode.java,v 1.24 2008/09/16 16:43:32 michiel Exp $ + * @version $Id: AbstractNode.java,v 1.25 2008/09/18 09:47:48 michiel Exp $ * @see org.mmbase.bridge.Node * @since MMBase-1.8 */ @@ -740,13 +740,11 @@ public FieldValue getFunctionValue(String functionName, List? parameters) { Function function = getFunction(functionName); -Parameters params; -if (parameters instanceof Parameters) { -params = (Parameters) parameters; -} else { -params = function.createParameters(); +Parameters params = function.createParameters(); +// Always create a new parameters object, which makes it possible to use a Parameters object +// not created with createParameters too. + params.setAll(parameters); -} return createFunctionValue(function.getFunctionValue(params)); } ___ Cvs mailing list Cvs@lists.mmbase.org http://lists.mmbase.org/mailman/listinfo/cvs