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


Reply via email to