You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by br...@apache.org on 2004/03/18 12:45:55 UTC

cvs commit: cocoon-2.1/src/blocks/forms/java/org/apache/cocoon/forms/datatype/typeimpl DoubleType.java DoubleTypeBuilder.java

bruno       2004/03/18 03:45:55

  Modified:    src/blocks/forms/conf forms-datatype.xconf
  Added:       src/blocks/forms/java/org/apache/cocoon/forms/datatype/convertor
                        FormattingDoubleConvertor.java
                        FormattingDoubleConvertorBuilder.java
                        PlainDoubleConvertor.java
                        PlainDoubleConvertorBuilder.java
               src/blocks/forms/java/org/apache/cocoon/forms/datatype/typeimpl
                        DoubleType.java DoubleTypeBuilder.java
  Log:
  Added a double datatype
  
  Revision  Changes    Path
  1.2       +6 -0      cocoon-2.1/src/blocks/forms/conf/forms-datatype.xconf
  
  Index: forms-datatype.xconf
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/forms/conf/forms-datatype.xconf,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- forms-datatype.xconf	9 Mar 2004 10:34:05 -0000	1.1
  +++ forms-datatype.xconf	18 Mar 2004 11:45:55 -0000	1.2
  @@ -51,6 +51,12 @@
             <convertor name="formatting" src="org.apache.cocoon.forms.datatype.convertor.FormattingFloatConvertorBuilder"/>
           </convertors>
         </datatype>
  +      <datatype name="double" src="org.apache.cocoon.forms.datatype.typeimpl.DoubleTypeBuilder">
  +        <convertors default="formatting" plain="plain">
  +          <convertor name="plain" src="org.apache.cocoon.forms.datatype.convertor.PlainDoubleConvertorBuilder"/>
  +          <convertor name="formatting" src="org.apache.cocoon.forms.datatype.convertor.FormattingDoubleConvertorBuilder"/>
  +        </convertors>
  +      </datatype>
         <datatype name="date" src="org.apache.cocoon.forms.datatype.typeimpl.DateTypeBuilder">
           <convertors default="formatting" plain="millis">
             <convertor name="formatting" src="org.apache.cocoon.forms.datatype.convertor.FormattingDateConvertorBuilder"/>
  
  
  
  1.1                  cocoon-2.1/src/blocks/forms/java/org/apache/cocoon/forms/datatype/convertor/FormattingDoubleConvertor.java
  
  Index: FormattingDoubleConvertor.java
  ===================================================================
  /*
   * Copyright 1999-2004 The Apache Software Foundation.
   *
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   *
   *      http://www.apache.org/licenses/LICENSE-2.0
   *
   * Unless required by applicable law or agreed to in writing, software
   * distributed under the License is distributed on an "AS IS" BASIS,
   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   * See the License for the specific language governing permissions and
   * limitations under the License.
   */
  package org.apache.cocoon.forms.datatype.convertor;
  
  import org.outerj.i18n.DecimalFormat;
  
  import java.util.Locale;
  import java.text.ParseException;
  
  /**
   * A Convertor for {@link Double}s backed by the
   * {@link java.text.DecimalFormat DecimalFormat} class.
   *
   * <p>This class is mostly the same as the {@link FormattingDecimalConvertor},
   * so see there for more information.
   *
   * @version CVS $Id: FormattingDoubleConvertor.java,v 1.1 2004/03/18 11:45:55 bruno Exp $
   */
  public class FormattingDoubleConvertor extends FormattingDecimalConvertor {
  
      public FormattingDoubleConvertor() {
          super();
      }
  
      public Object convertFromString(String value, Locale locale, Convertor.FormatCache formatCache) {
          DecimalFormat decimalFormat = getDecimalFormat(locale, formatCache);
          try {
              Number decimalValue = decimalFormat.parse(value);
              if (decimalValue instanceof Double)
                  return decimalValue;
              else
                  return new Double(decimalValue.doubleValue());
          } catch (ParseException e) {
              return null;
          }
      }
  
      public Class getTypeClass() {
          return Double.class;
      }
  }
  
  
  
  1.1                  cocoon-2.1/src/blocks/forms/java/org/apache/cocoon/forms/datatype/convertor/FormattingDoubleConvertorBuilder.java
  
  Index: FormattingDoubleConvertorBuilder.java
  ===================================================================
  /*
   * Copyright 1999-2004 The Apache Software Foundation.
   *
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   *
   *      http://www.apache.org/licenses/LICENSE-2.0
   *
   * Unless required by applicable law or agreed to in writing, software
   * distributed under the License is distributed on an "AS IS" BASIS,
   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   * See the License for the specific language governing permissions and
   * limitations under the License.
   */
  package org.apache.cocoon.forms.datatype.convertor;
  
  /**
   * Builds {@link FormattingDoubleConvertor}s.
   *
   * @version CVS $Id: FormattingDoubleConvertorBuilder.java,v 1.1 2004/03/18 11:45:55 bruno Exp $
   */
  public class FormattingDoubleConvertorBuilder extends FormattingDecimalConvertorBuilder {
      protected FormattingDecimalConvertor createConvertor() {
          return new FormattingDoubleConvertor();
      }
  }
  
  
  1.1                  cocoon-2.1/src/blocks/forms/java/org/apache/cocoon/forms/datatype/convertor/PlainDoubleConvertor.java
  
  Index: PlainDoubleConvertor.java
  ===================================================================
  /*
   * Copyright 1999-2004 The Apache Software Foundation.
   *
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   *
   *      http://www.apache.org/licenses/LICENSE-2.0
   *
   * Unless required by applicable law or agreed to in writing, software
   * distributed under the License is distributed on an "AS IS" BASIS,
   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   * See the License for the specific language governing permissions and
   * limitations under the License.
   */
  package org.apache.cocoon.forms.datatype.convertor;
  
  import java.util.Locale;
  
  /**
   * Convertor for java.lang.Doubles that does not do any (Locale-dependent)
   * formatting. It simply uses String.valueOf() and Long.parseLong().
   *
   * @version CVS $Id: PlainDoubleConvertor.java,v 1.1 2004/03/18 11:45:55 bruno Exp $
   */
  public class PlainDoubleConvertor implements Convertor {
      public Object convertFromString(String value, Locale locale, Convertor.FormatCache formatCache) {
          try {
              return new Double(Double.parseDouble(value));
          } catch (NumberFormatException e) {
              return null;
          }
      }
  
      public String convertToString(Object value, Locale locale, Convertor.FormatCache formatCache) {
          return String.valueOf(value);
      }
  
      public Class getTypeClass() {
          return Double.class;
      }
  }
  
  
  1.1                  cocoon-2.1/src/blocks/forms/java/org/apache/cocoon/forms/datatype/convertor/PlainDoubleConvertorBuilder.java
  
  Index: PlainDoubleConvertorBuilder.java
  ===================================================================
  /*
   * Copyright 1999-2004 The Apache Software Foundation.
   *
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   *
   *      http://www.apache.org/licenses/LICENSE-2.0
   *
   * Unless required by applicable law or agreed to in writing, software
   * distributed under the License is distributed on an "AS IS" BASIS,
   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   * See the License for the specific language governing permissions and
   * limitations under the License.
   */
  package org.apache.cocoon.forms.datatype.convertor;
  
  import org.w3c.dom.Element;
  
  /**
   *
   * @version CVS $Id: PlainDoubleConvertorBuilder.java,v 1.1 2004/03/18 11:45:55 bruno Exp $
   */
  public class PlainDoubleConvertorBuilder implements ConvertorBuilder {
      public Convertor build(Element configElement) throws Exception {
          return new PlainDoubleConvertor();
      }
  }
  
  
  1.1                  cocoon-2.1/src/blocks/forms/java/org/apache/cocoon/forms/datatype/typeimpl/DoubleType.java
  
  Index: DoubleType.java
  ===================================================================
  /*
   * Copyright 1999-2004 The Apache Software Foundation.
   *
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   *
   *      http://www.apache.org/licenses/LICENSE-2.0
   *
   * Unless required by applicable law or agreed to in writing, software
   * distributed under the License is distributed on an "AS IS" BASIS,
   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   * See the License for the specific language governing permissions and
   * limitations under the License.
   */
  package org.apache.cocoon.forms.datatype.typeimpl;
  
  /**
   * A {@link org.apache.cocoon.forms.datatype.Datatype Datatype} implementation
   * for double numbers (backed by the java.lang.Double class).
   *
   * @version $Id: DoubleType.java,v 1.1 2004/03/18 11:45:55 bruno Exp $
   */
  public class DoubleType extends AbstractDatatype {
      public Class getTypeClass() {
          return Double.class;
      }
  
      public String getDescriptiveName() {
          return "double";
      }
  }
  
  
  1.1                  cocoon-2.1/src/blocks/forms/java/org/apache/cocoon/forms/datatype/typeimpl/DoubleTypeBuilder.java
  
  Index: DoubleTypeBuilder.java
  ===================================================================
  /*
   * Copyright 1999-2004 The Apache Software Foundation.
   *
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   *
   *      http://www.apache.org/licenses/LICENSE-2.0
   *
   * Unless required by applicable law or agreed to in writing, software
   * distributed under the License is distributed on an "AS IS" BASIS,
   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   * See the License for the specific language governing permissions and
   * limitations under the License.
   */
  package org.apache.cocoon.forms.datatype.typeimpl;
  
  import org.apache.cocoon.forms.datatype.Datatype;
  import org.apache.cocoon.forms.datatype.DatatypeManager;
  import org.w3c.dom.Element;
  
  /**
   * Builds {@link DoubleType}s.
   *
   * @version $Id: DoubleTypeBuilder.java,v 1.1 2004/03/18 11:45:55 bruno Exp $
   */
  public class DoubleTypeBuilder extends AbstractDatatypeBuilder {
      public Datatype build(Element datatypeElement, boolean arrayType, DatatypeManager datatypeManager) throws Exception {
          DoubleType type = new DoubleType();
          type.setArrayType(arrayType);
          type.setBuilder(this);
  
          buildValidationRules(datatypeElement, type, datatypeManager);
          buildConvertor(datatypeElement, type);
  
          return type;
      }
  }