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);
       }
   }
  
  
  

Reply via email to