Author: hlship
Date: Thu Aug 7 17:22:07 2008
New Revision: 683772
URL: http://svn.apache.org/viewvc?rev=683772&view=rev
Log:
TAPESTRY-2423: Add Short Translator
Added:
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/translator/ShortTranslator.java
Modified:
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/Translator.java
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/TapestryModule.java
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/TranslatorSourceImplTest.java
Modified:
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/Translator.java
URL:
http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/Translator.java?rev=683772&r1=683771&r2=683772&view=diff
==============================================================================
---
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/Translator.java
(original)
+++
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/Translator.java
Thu Aug 7 17:22:07 2008
@@ -21,7 +21,7 @@
* Translates between client-side and server-side values. Client-side values
are always strings.
*
* @param <T>
- * @see org.apache.tapestry5.services.TranslatorDefaultSource
+ * @see org.apache.tapestry5.services.TranslatorSource
* @see FieldValidationSupport
*/
public interface Translator<T>
Added:
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/translator/ShortTranslator.java
URL:
http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/translator/ShortTranslator.java?rev=683772&view=auto
==============================================================================
---
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/translator/ShortTranslator.java
(added)
+++
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/translator/ShortTranslator.java
Thu Aug 7 17:22:07 2008
@@ -0,0 +1,44 @@
+// Copyright 2008 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.tapestry5.internal.translator;
+
+import org.apache.tapestry5.Translator;
+import org.apache.tapestry5.ValidationException;
+import org.apache.tapestry5.ioc.Messages;
+
+public class ShortTranslator implements Translator<Short>
+{
+ public String toClient(Short value)
+ {
+ return value.toString();
+ }
+
+ public Class<Short> getType()
+ {
+ return Short.class;
+ }
+
+ public Short parseClient(String clientValue, Messages messages) throws
ValidationException
+ {
+ try
+ {
+ return new Short(clientValue.trim());
+ }
+ catch (NumberFormatException ex)
+ {
+ throw new
ValidationException(messages.format("integer-format-exception", clientValue));
+ }
+ }
+}
Modified:
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/TapestryModule.java
URL:
http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/TapestryModule.java?rev=683772&r1=683771&r2=683772&view=diff
==============================================================================
---
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/TapestryModule.java
(original)
+++
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/TapestryModule.java
Thu Aug 7 17:22:07 2008
@@ -601,7 +601,7 @@
/**
* Contributes the basic set of named translators: <ul> <li>string</li>
<li>byte</li> <li>integer</li>
- * <li>long</li> <li>float</li> <li>double</li> </ul>
+ * <li>long</li> <li>float</li> <li>double</li> <li>short</li> </ul>
*/
public static void contributeTranslatorSource(MappedConfiguration<String,
Translator> configuration)
{
@@ -612,6 +612,7 @@
configuration.add("long", new LongTranslator());
configuration.add("float", new FloatTranslator());
configuration.add("double", new DoubleTranslator());
+ configuration.add("short", new ShortTranslator());
}
/**
Modified:
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/TranslatorSourceImplTest.java
URL:
http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/TranslatorSourceImplTest.java?rev=683772&r1=683771&r2=683772&view=diff
==============================================================================
---
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/TranslatorSourceImplTest.java
(original)
+++
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/TranslatorSourceImplTest.java
Thu Aug 7 17:22:07 2008
@@ -101,19 +101,21 @@
@DataProvider(name = "to_client_data")
public Object[][] to_client_data()
{
- return new Object[][] {
+ return new Object[][]{
- { Byte.class, (byte) 65, "65" },
+ {Byte.class, (byte) 65, "65"},
- { Integer.class, 997, "997" },
+ {Integer.class, 997, "997"},
- { Long.class, 12345l, "12345" },
+ {Long.class, 12345l, "12345"},
- { Double.class, 123.45d, "123.45" },
+ {Double.class, 123.45d, "123.45"},
- { String.class, "abcd", "abcd" },
+ {String.class, "abcd", "abcd"},
- { Float.class, (float) -22.7, "-22.7" }
+ {Short.class, (short) 95, "95"},
+
+ {Float.class, (float) -22.7, "-22.7"}
};
}
@@ -131,19 +133,21 @@
@DataProvider(name = "parse_client_success_data")
public Object[][] parse_client_success_data()
{
- return new Object[][] {
+ return new Object[][]{
+
+ {Byte.class, " 23 ", (byte) 23},
- { Byte.class, " 23 ", (byte) 23 },
+ {Short.class, " -121 ", (short) -121},
- { Integer.class, " 123 ", 123 },
+ {Integer.class, " 123 ", 123},
- { Long.class, " -1234567 ", -1234567l },
+ {Long.class, " -1234567 ", -1234567l},
- { Double.class, " 3.14 ", 3.14d },
+ {Double.class, " 3.14 ", 3.14d},
- { String.class, " abcdef ", " abcdef " },
+ {String.class, " abcdef ", " abcdef "},
- { Float.class, " 28.95 ", (float) 28.95 },
+ {Float.class, " 28.95 ", (float) 28.95},
};
}
@@ -161,18 +165,22 @@
@DataProvider(name = "parse_client_failure_data")
public Object[][] parse_client_failure_data()
{
- return new Object[][] {
+ String intError = "The input value 'fred' is not parseable as an
integer value.";
+ String floatError = "The input value 'fred' is not parseable as a
numeric value.";
+
+ return new Object[][]{
- { Byte.class, "fred", "The input value 'fred' is not parseable
as an integer value." },
+ {Byte.class, "fred", intError},
- { Integer.class, "fred", "The input value 'fred' is not
parseable as an integer value." },
+ {Integer.class, "fred", intError},
- { Long.class, "fred", "The input value 'fred' is not parseable
as an integer value." },
+ {Long.class, "fred", intError},
- { Double.class, "fred", "The input value 'fred' is not
parseable as a numeric value." },
+ {Double.class, "fred", floatError},
- { Float.class, "fred", "The input value 'fred' is not
parseable as a numeric value." }
+ {Float.class, "fred", floatError},
+ {Short.class, "fred", intError}
};
}