bruno 2004/04/10 06:40:27
Modified: src/blocks/forms/java/org/apache/cocoon/forms/datatype
Datatype.java
src/blocks/forms/java/org/apache/cocoon/forms/datatype/convertor
Convertor.java DummyStringConvertor.java
EnumConvertor.java FormattingDateConvertor.java
FormattingDecimalConvertor.java
MillisDateConvertor.java PlainBooleanConvertor.java
PlainDecimalConvertor.java
PlainDoubleConvertor.java PlainFloatConvertor.java
PlainIntegerConvertor.java PlainLongConvertor.java
src/blocks/forms/java/org/apache/cocoon/forms/datatype/typeimpl
AbstractDatatype.java
Log:
Added generateSaxFragment() method to datatypes and convertors to allow
them to generate some info about themselves for inclusion in the
widget instance output XML.
Revision Changes Path
1.3 +8 -1
cocoon-2.1/src/blocks/forms/java/org/apache/cocoon/forms/datatype/Datatype.java
Index: Datatype.java
===================================================================
RCS file:
/home/cvs/cocoon-2.1/src/blocks/forms/java/org/apache/cocoon/forms/datatype/Datatype.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- Datatype.java 9 Mar 2004 14:58:45 -0000 1.2
+++ Datatype.java 10 Apr 2004 13:40:27 -0000 1.3
@@ -18,6 +18,8 @@
import org.outerj.expression.ExpressionContext;
import org.apache.cocoon.forms.datatype.convertor.Convertor;
import org.apache.cocoon.forms.validation.ValidationError;
+import org.xml.sax.SAXException;
+import org.xml.sax.ContentHandler;
import java.util.Locale;
@@ -102,4 +104,9 @@
* Returns the factory that built this datatype.
*/
DatatypeBuilder getBuilder();
+
+ /**
+ * Generates a bit of information about this datatype.
+ */
+ void generateSaxFragment(ContentHandler contentHandler, Locale locale)
throws SAXException;
}
1.2 +9 -1
cocoon-2.1/src/blocks/forms/java/org/apache/cocoon/forms/datatype/convertor/Convertor.java
Index: Convertor.java
===================================================================
RCS file:
/home/cvs/cocoon-2.1/src/blocks/forms/java/org/apache/cocoon/forms/datatype/convertor/Convertor.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- Convertor.java 9 Mar 2004 10:34:06 -0000 1.1
+++ Convertor.java 10 Apr 2004 13:40:27 -0000 1.2
@@ -15,6 +15,9 @@
*/
package org.apache.cocoon.forms.datatype.convertor;
+import org.xml.sax.SAXException;
+import org.xml.sax.ContentHandler;
+
import java.util.Locale;
/**
@@ -44,6 +47,11 @@
String convertToString(Object value, Locale locale, FormatCache
formatCache);
Class getTypeClass();
+
+ /**
+ * Generates a bit of information about this convertor (optional).
+ */
+ void generateSaxFragment(ContentHandler contentHandler, Locale locale)
throws SAXException;
public interface FormatCache {
public Object get();
1.2 +8 -1
cocoon-2.1/src/blocks/forms/java/org/apache/cocoon/forms/datatype/convertor/DummyStringConvertor.java
Index: DummyStringConvertor.java
===================================================================
RCS file:
/home/cvs/cocoon-2.1/src/blocks/forms/java/org/apache/cocoon/forms/datatype/convertor/DummyStringConvertor.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- DummyStringConvertor.java 9 Mar 2004 10:34:06 -0000 1.1
+++ DummyStringConvertor.java 10 Apr 2004 13:40:27 -0000 1.2
@@ -15,6 +15,9 @@
*/
package org.apache.cocoon.forms.datatype.convertor;
+import org.xml.sax.ContentHandler;
+import org.xml.sax.SAXException;
+
import java.util.Locale;
/**
@@ -34,5 +37,9 @@
public Class getTypeClass() {
return String.class;
+ }
+
+ public void generateSaxFragment(ContentHandler contentHandler, Locale
locale) throws SAXException {
+ // intentionally empty
}
}
1.3 +7 -1
cocoon-2.1/src/blocks/forms/java/org/apache/cocoon/forms/datatype/convertor/EnumConvertor.java
Index: EnumConvertor.java
===================================================================
RCS file:
/home/cvs/cocoon-2.1/src/blocks/forms/java/org/apache/cocoon/forms/datatype/convertor/EnumConvertor.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- EnumConvertor.java 9 Mar 2004 11:31:12 -0000 1.2
+++ EnumConvertor.java 10 Apr 2004 13:40:27 -0000 1.3
@@ -21,6 +21,8 @@
import java.util.Locale;
import org.apache.avalon.framework.CascadingRuntimeException;
+import org.xml.sax.ContentHandler;
+import org.xml.sax.SAXException;
/**
* A [EMAIL PROTECTED] org.apache.cocoon.forms.datatype.convertor.Convertor
Convertor}
@@ -108,5 +110,9 @@
*/
public Class getTypeClass() {
return clazz;
+ }
+
+ public void generateSaxFragment(ContentHandler contentHandler, Locale
locale) throws SAXException {
+ // intentionally empty
}
}
1.2 +20 -1
cocoon-2.1/src/blocks/forms/java/org/apache/cocoon/forms/datatype/convertor/FormattingDateConvertor.java
Index: FormattingDateConvertor.java
===================================================================
RCS file:
/home/cvs/cocoon-2.1/src/blocks/forms/java/org/apache/cocoon/forms/datatype/convertor/FormattingDateConvertor.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- FormattingDateConvertor.java 9 Mar 2004 10:34:06 -0000 1.1
+++ FormattingDateConvertor.java 10 Apr 2004 13:40:27 -0000 1.2
@@ -17,6 +17,10 @@
import org.outerj.i18n.DateFormat;
import org.outerj.i18n.I18nSupport;
+import org.xml.sax.ContentHandler;
+import org.xml.sax.SAXException;
+import org.apache.cocoon.forms.Constants;
+import org.apache.cocoon.xml.AttributesImpl;
import java.util.Locale;
import java.util.Date;
@@ -137,5 +141,20 @@
public void setNonLocalizedPattern(String pattern) {
this.nonLocalizedPattern = pattern;
+ }
+
+ private static final String CONVERTOR_EL = "convertor";
+
+ public void generateSaxFragment(ContentHandler contentHandler, Locale
locale) throws SAXException {
+ String pattern = (String)localizedPatterns.get(locale);
+ if (pattern == null)
+ pattern = nonLocalizedPattern;
+
+ if (pattern != null) {
+ AttributesImpl attrs = new AttributesImpl();
+ attrs.addCDATAAttribute("pattern", pattern);
+ contentHandler.startElement(Constants.INSTANCE_NS, CONVERTOR_EL,
Constants.INSTANCE_PREFIX_COLON + CONVERTOR_EL, attrs);
+ contentHandler.endElement(Constants.INSTANCE_NS, CONVERTOR_EL,
Constants.INSTANCE_PREFIX_COLON + CONVERTOR_EL);
+ }
}
}
1.3 +7 -1
cocoon-2.1/src/blocks/forms/java/org/apache/cocoon/forms/datatype/convertor/FormattingDecimalConvertor.java
Index: FormattingDecimalConvertor.java
===================================================================
RCS file:
/home/cvs/cocoon-2.1/src/blocks/forms/java/org/apache/cocoon/forms/datatype/convertor/FormattingDecimalConvertor.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- FormattingDecimalConvertor.java 28 Mar 2004 20:51:23 -0000 1.2
+++ FormattingDecimalConvertor.java 10 Apr 2004 13:40:27 -0000 1.3
@@ -17,6 +17,8 @@
import org.outerj.i18n.I18nSupport;
import org.outerj.i18n.DecimalFormat;
+import org.xml.sax.ContentHandler;
+import org.xml.sax.SAXException;
import java.util.Locale;
import java.text.ParseException;
@@ -148,5 +150,9 @@
public Class getTypeClass() {
return java.math.BigDecimal.class;
+ }
+
+ public void generateSaxFragment(ContentHandler contentHandler, Locale
locale) throws SAXException {
+ // intentionally empty
}
}
1.2 +8 -1
cocoon-2.1/src/blocks/forms/java/org/apache/cocoon/forms/datatype/convertor/MillisDateConvertor.java
Index: MillisDateConvertor.java
===================================================================
RCS file:
/home/cvs/cocoon-2.1/src/blocks/forms/java/org/apache/cocoon/forms/datatype/convertor/MillisDateConvertor.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- MillisDateConvertor.java 9 Mar 2004 10:34:06 -0000 1.1
+++ MillisDateConvertor.java 10 Apr 2004 13:40:27 -0000 1.2
@@ -15,6 +15,9 @@
*/
package org.apache.cocoon.forms.datatype.convertor;
+import org.xml.sax.ContentHandler;
+import org.xml.sax.SAXException;
+
import java.util.Locale;
import java.util.Date;
@@ -41,5 +44,9 @@
public Class getTypeClass() {
return Date.class;
+ }
+
+ public void generateSaxFragment(ContentHandler contentHandler, Locale
locale) throws SAXException {
+ // intentionally empty
}
}
1.2 +8 -1
cocoon-2.1/src/blocks/forms/java/org/apache/cocoon/forms/datatype/convertor/PlainBooleanConvertor.java
Index: PlainBooleanConvertor.java
===================================================================
RCS file:
/home/cvs/cocoon-2.1/src/blocks/forms/java/org/apache/cocoon/forms/datatype/convertor/PlainBooleanConvertor.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- PlainBooleanConvertor.java 9 Mar 2004 10:34:06 -0000 1.1
+++ PlainBooleanConvertor.java 10 Apr 2004 13:40:27 -0000 1.2
@@ -15,6 +15,9 @@
*/
package org.apache.cocoon.forms.datatype.convertor;
+import org.xml.sax.ContentHandler;
+import org.xml.sax.SAXException;
+
import java.util.Locale;
/**
@@ -33,5 +36,9 @@
public Class getTypeClass() {
return Boolean.class;
+ }
+
+ public void generateSaxFragment(ContentHandler contentHandler, Locale
locale) throws SAXException {
+ // intentionally empty
}
}
1.2 +8 -1
cocoon-2.1/src/blocks/forms/java/org/apache/cocoon/forms/datatype/convertor/PlainDecimalConvertor.java
Index: PlainDecimalConvertor.java
===================================================================
RCS file:
/home/cvs/cocoon-2.1/src/blocks/forms/java/org/apache/cocoon/forms/datatype/convertor/PlainDecimalConvertor.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- PlainDecimalConvertor.java 9 Mar 2004 10:34:06 -0000 1.1
+++ PlainDecimalConvertor.java 10 Apr 2004 13:40:27 -0000 1.2
@@ -15,6 +15,9 @@
*/
package org.apache.cocoon.forms.datatype.convertor;
+import org.xml.sax.ContentHandler;
+import org.xml.sax.SAXException;
+
import java.util.Locale;
import java.math.BigDecimal;
@@ -39,5 +42,9 @@
public Class getTypeClass() {
return BigDecimal.class;
+ }
+
+ public void generateSaxFragment(ContentHandler contentHandler, Locale
locale) throws SAXException {
+ // intentionally empty
}
}
1.2 +8 -1
cocoon-2.1/src/blocks/forms/java/org/apache/cocoon/forms/datatype/convertor/PlainDoubleConvertor.java
Index: PlainDoubleConvertor.java
===================================================================
RCS file:
/home/cvs/cocoon-2.1/src/blocks/forms/java/org/apache/cocoon/forms/datatype/convertor/PlainDoubleConvertor.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- PlainDoubleConvertor.java 18 Mar 2004 11:45:55 -0000 1.1
+++ PlainDoubleConvertor.java 10 Apr 2004 13:40:27 -0000 1.2
@@ -15,6 +15,9 @@
*/
package org.apache.cocoon.forms.datatype.convertor;
+import org.xml.sax.ContentHandler;
+import org.xml.sax.SAXException;
+
import java.util.Locale;
/**
@@ -38,5 +41,9 @@
public Class getTypeClass() {
return Double.class;
+ }
+
+ public void generateSaxFragment(ContentHandler contentHandler, Locale
locale) throws SAXException {
+ // intentionally empty
}
}
1.2 +8 -1
cocoon-2.1/src/blocks/forms/java/org/apache/cocoon/forms/datatype/convertor/PlainFloatConvertor.java
Index: PlainFloatConvertor.java
===================================================================
RCS file:
/home/cvs/cocoon-2.1/src/blocks/forms/java/org/apache/cocoon/forms/datatype/convertor/PlainFloatConvertor.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- PlainFloatConvertor.java 9 Mar 2004 10:34:06 -0000 1.1
+++ PlainFloatConvertor.java 10 Apr 2004 13:40:27 -0000 1.2
@@ -15,6 +15,9 @@
*/
package org.apache.cocoon.forms.datatype.convertor;
+import org.xml.sax.ContentHandler;
+import org.xml.sax.SAXException;
+
import java.util.Locale;
/**
@@ -38,5 +41,9 @@
public Class getTypeClass() {
return Float.class;
+ }
+
+ public void generateSaxFragment(ContentHandler contentHandler, Locale
locale) throws SAXException {
+ // intentionally empty
}
}
1.2 +8 -1
cocoon-2.1/src/blocks/forms/java/org/apache/cocoon/forms/datatype/convertor/PlainIntegerConvertor.java
Index: PlainIntegerConvertor.java
===================================================================
RCS file:
/home/cvs/cocoon-2.1/src/blocks/forms/java/org/apache/cocoon/forms/datatype/convertor/PlainIntegerConvertor.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- PlainIntegerConvertor.java 9 Mar 2004 10:34:06 -0000 1.1
+++ PlainIntegerConvertor.java 10 Apr 2004 13:40:27 -0000 1.2
@@ -15,6 +15,9 @@
*/
package org.apache.cocoon.forms.datatype.convertor;
+import org.xml.sax.ContentHandler;
+import org.xml.sax.SAXException;
+
import java.util.Locale;
/**
@@ -39,5 +42,9 @@
public Class getTypeClass() {
return Integer.class;
+ }
+
+ public void generateSaxFragment(ContentHandler contentHandler, Locale
locale) throws SAXException {
+ // intentionally empty
}
}
1.2 +8 -1
cocoon-2.1/src/blocks/forms/java/org/apache/cocoon/forms/datatype/convertor/PlainLongConvertor.java
Index: PlainLongConvertor.java
===================================================================
RCS file:
/home/cvs/cocoon-2.1/src/blocks/forms/java/org/apache/cocoon/forms/datatype/convertor/PlainLongConvertor.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- PlainLongConvertor.java 9 Mar 2004 10:34:06 -0000 1.1
+++ PlainLongConvertor.java 10 Apr 2004 13:40:27 -0000 1.2
@@ -15,6 +15,9 @@
*/
package org.apache.cocoon.forms.datatype.convertor;
+import org.xml.sax.ContentHandler;
+import org.xml.sax.SAXException;
+
import java.util.Locale;
/**
@@ -38,5 +41,9 @@
public Class getTypeClass() {
return Long.class;
+ }
+
+ public void generateSaxFragment(ContentHandler contentHandler, Locale
locale) throws SAXException {
+ // intentionally empty
}
}
1.4 +15 -1
cocoon-2.1/src/blocks/forms/java/org/apache/cocoon/forms/datatype/typeimpl/AbstractDatatype.java
Index: AbstractDatatype.java
===================================================================
RCS file:
/home/cvs/cocoon-2.1/src/blocks/forms/java/org/apache/cocoon/forms/datatype/typeimpl/AbstractDatatype.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- AbstractDatatype.java 24 Mar 2004 18:57:26 -0000 1.3
+++ AbstractDatatype.java 10 Apr 2004 13:40:27 -0000 1.4
@@ -25,7 +25,11 @@
import org.apache.cocoon.forms.datatype.ValidationRule;
import org.apache.cocoon.forms.datatype.convertor.Convertor;
import org.apache.cocoon.forms.validation.ValidationError;
+import org.apache.cocoon.forms.Constants;
+import org.apache.cocoon.xml.AttributesImpl;
import org.outerj.expression.ExpressionContext;
+import org.xml.sax.ContentHandler;
+import org.xml.sax.SAXException;
/**
* Abstract base class for Datatype implementations. Most concreate datatypes
@@ -87,5 +91,15 @@
public String convertToString(Object value, Locale locale) {
return getConvertor().convertToString(value, locale, null);
+ }
+
+ private static final String DATATYPE_EL = "datatype";
+
+ public void generateSaxFragment(ContentHandler contentHandler, Locale
locale) throws SAXException {
+ AttributesImpl attrs = new AttributesImpl();
+ attrs.addCDATAAttribute("type", getDescriptiveName());
+ contentHandler.startElement(Constants.INSTANCE_NS, DATATYPE_EL,
Constants.INSTANCE_PREFIX_COLON + DATATYPE_EL, attrs);
+ getConvertor().generateSaxFragment(contentHandler, locale);
+ contentHandler.endElement(Constants.INSTANCE_NS, DATATYPE_EL,
Constants.INSTANCE_PREFIX_COLON + DATATYPE_EL);
}
}