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