Author: tv
Date: Thu Oct  3 10:14:42 2013
New Revision: 1528777

URL: http://svn.apache.org/r1528777
Log:
Improve getParser() signature to use generics

Modified:
    turbine/fulcrum/trunk/parser/src/changes/changes.xml
    
turbine/fulcrum/trunk/parser/src/java/org/apache/fulcrum/parser/DefaultParserService.java
    
turbine/fulcrum/trunk/parser/src/java/org/apache/fulcrum/parser/ParserService.java
    
turbine/fulcrum/trunk/parser/src/test/org/apache/fulcrum/parser/BaseValueParserTest.java
    
turbine/fulcrum/trunk/parser/src/test/org/apache/fulcrum/parser/ParameterParserTest.java
    turbine/fulcrum/trunk/parser/xdocs/index.xml

Modified: turbine/fulcrum/trunk/parser/src/changes/changes.xml
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/parser/src/changes/changes.xml?rev=1528777&r1=1528776&r2=1528777&view=diff
==============================================================================
--- turbine/fulcrum/trunk/parser/src/changes/changes.xml (original)
+++ turbine/fulcrum/trunk/parser/src/changes/changes.xml Thu Oct  3 10:14:42 
2013
@@ -26,6 +26,9 @@
         </release>
         <release version="1.0.3" date="2013-10-03">
           <action dev="tv" type="update">
+            Improve getParser() signature to use generics
+          </action>
+          <action dev="tv" type="update">
             Derive from Turbine parent POM 3
           </action>
           <action dev="tv" type="add">

Modified: 
turbine/fulcrum/trunk/parser/src/java/org/apache/fulcrum/parser/DefaultParserService.java
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/parser/src/java/org/apache/fulcrum/parser/DefaultParserService.java?rev=1528777&r1=1528776&r2=1528777&view=diff
==============================================================================
--- 
turbine/fulcrum/trunk/parser/src/java/org/apache/fulcrum/parser/DefaultParserService.java
 (original)
+++ 
turbine/fulcrum/trunk/parser/src/java/org/apache/fulcrum/parser/DefaultParserService.java
 Thu Oct  3 10:14:42 2013
@@ -222,13 +222,15 @@ public class DefaultParserService
      *
      * @throws InstantiationException if the instance could not be created
      */
-    public ValueParser getParser(Class<? extends ValueParser> ppClass) throws 
InstantiationException
+    public <P extends ValueParser> P getParser(Class<P> ppClass) throws 
InstantiationException
     {
-        ValueParser vp = null;
+        P vp = null;
 
         try
         {
-            vp = (ValueParser) poolService.getInstance(ppClass);
+            @SuppressWarnings("unchecked") // Until PoolService is generified
+            P parserInstance = (P) poolService.getInstance(ppClass);
+            vp = parserInstance;
 
             if (vp instanceof ParserServiceSupport)
             {
@@ -237,7 +239,7 @@ public class DefaultParserService
 
             if (vp instanceof LogEnabled)
             {
-                
((LogEnabled)vp).enableLogging(getLogger().getChildLogger(ppClass.getName()));
+                
((LogEnabled)vp).enableLogging(getLogger().getChildLogger(ppClass.getSimpleName()));
             }
         }
         catch (PoolException pe)

Modified: 
turbine/fulcrum/trunk/parser/src/java/org/apache/fulcrum/parser/ParserService.java
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/parser/src/java/org/apache/fulcrum/parser/ParserService.java?rev=1528777&r1=1528776&r2=1528777&view=diff
==============================================================================
--- 
turbine/fulcrum/trunk/parser/src/java/org/apache/fulcrum/parser/ParserService.java
 (original)
+++ 
turbine/fulcrum/trunk/parser/src/java/org/apache/fulcrum/parser/ParserService.java
 Thu Oct  3 10:14:42 2013
@@ -136,7 +136,7 @@ public interface ParserService
      *
      * @throws InstantiationException if the instance could not be created
      */
-    ValueParser getParser(Class<? extends ValueParser> ppClass) throws 
InstantiationException;
+    <P extends ValueParser> P getParser(Class<P> ppClass) throws 
InstantiationException;
 
     /**
      * Return a used Parser to the service. This allows for

Modified: 
turbine/fulcrum/trunk/parser/src/test/org/apache/fulcrum/parser/BaseValueParserTest.java
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/parser/src/test/org/apache/fulcrum/parser/BaseValueParserTest.java?rev=1528777&r1=1528776&r2=1528777&view=diff
==============================================================================
--- 
turbine/fulcrum/trunk/parser/src/test/org/apache/fulcrum/parser/BaseValueParserTest.java
 (original)
+++ 
turbine/fulcrum/trunk/parser/src/test/org/apache/fulcrum/parser/BaseValueParserTest.java
 Thu Oct  3 10:14:42 2013
@@ -44,7 +44,7 @@ public class BaseValueParserTest extends
        private BaseValueParser parser;
 
     private ParserService parserService;
-    
+
     /**
      * Performs any initialization that must happen before each test is run.
      * @throws Exception
@@ -55,7 +55,7 @@ public class BaseValueParserTest extends
         try
         {
             parserService = (ParserService)this.lookup(ParserService.ROLE);
-            parser = (BaseValueParser) 
parserService.getParser(BaseValueParser.class);
+            parser = parserService.getParser(BaseValueParser.class);
         }
         catch (ComponentException e)
         {
@@ -72,7 +72,7 @@ public class BaseValueParserTest extends
         parserService.putParser(parser);
         this.release(parserService);
     }
-    
+
     public void testDate()
     {
         parser.clear();
@@ -81,7 +81,7 @@ public class BaseValueParserTest extends
         assertEquals("Wrong number of keys", 0, parser.keySet().size());
 
         parser.add("foo", "03/21/2008");
-        
+
         Calendar cal = Calendar.getInstance(Locale.US);
         cal.clear();
         cal.set(2008, 2, 21, 0, 0, 0);
@@ -92,7 +92,7 @@ public class BaseValueParserTest extends
         parser.setLocale(Locale.GERMANY);
 
         parser.add("foo", "21.03.2008");
-        
+
         cal = Calendar.getInstance(Locale.GERMANY);
         cal.clear();
         cal.set(2008, 2, 21, 0, 0, 0);
@@ -669,7 +669,7 @@ public class BaseValueParserTest extends
     {
         try
         {
-            BaseValueParser vp = (BaseValueParser) 
parserService.getParser(BaseValueParser.class);
+            BaseValueParser vp = 
parserService.getParser(BaseValueParser.class);
             assertFalse(vp.isDisposed());
             parserService.putParser(vp);
         }
@@ -775,11 +775,11 @@ public class BaseValueParserTest extends
 
         parser.clear();
         parser.setLocale(Locale.GERMANY);
-        
+
         String testDouble = "2,3";
         parser.add("foo", testDouble);
         assertEquals("Wrong double value", 2.3, parser.getDouble("foo"), 
0.001);
-        
+
         parser.add("unparsable2", "1a");
         Double result = parser.getDoubleObject("unparsable2");
         assertNull("Double object should be null", result);
@@ -906,8 +906,8 @@ public class BaseValueParserTest extends
         assertEquals("Wrong number of keys", 1, parser.keySet().size());
 
         assertEquals("Wrong string value", "123", parser.getString("foo"));
-        assertEquals("Wrong long value", (long) testValue, 
parser.getLong("foo"));
-        assertEquals("Wrong Long value", (long) testValue, 
parser.getLongObject("foo").longValue());
+        assertEquals("Wrong long value", testValue, parser.getLong("foo"));
+        assertEquals("Wrong Long value", testValue, 
parser.getLongObject("foo").longValue());
 
         long [] longs = parser.getLongs("foo");
         assertEquals("Wrong Array Size", 1, longs.length);
@@ -933,8 +933,8 @@ public class BaseValueParserTest extends
         assertEquals("Wrong number of keys", 1, parser.keySet().size());
 
         assertEquals("Wrong string value", "123", parser.getString("foo"));
-        assertEquals("Wrong double value", (double) testValue, 
parser.getDouble("foo"), 0.001);
-        assertEquals("Wrong Double value", (double) testValue, 
parser.getDoubleObject("foo").doubleValue(), 0.001);
+        assertEquals("Wrong double value", testValue, parser.getDouble("foo"), 
0.001);
+        assertEquals("Wrong Double value", testValue, 
parser.getDoubleObject("foo").doubleValue(), 0.001);
 
         double [] doubles = parser.getDoubles("foo");
         assertEquals("Wrong Array Size", 1, doubles.length);
@@ -960,8 +960,8 @@ public class BaseValueParserTest extends
         assertEquals("Wrong number of keys", 1, parser.keySet().size());
 
         assertEquals("Wrong string value", "9223372036854775807", 
parser.getString("foo"));
-        assertEquals("Wrong double value", (double) testValue, 
parser.getDouble("foo"), 0.001);
-        assertEquals("Wrong Double value", (double) testValue, 
parser.getDoubleObject("foo").doubleValue(), 0.001);
+        assertEquals("Wrong double value", testValue, parser.getDouble("foo"), 
0.001);
+        assertEquals("Wrong Double value", testValue, 
parser.getDoubleObject("foo").doubleValue(), 0.001);
 
         double [] doubles = parser.getDoubles("foo");
         assertEquals("Wrong Array Size", 1, doubles.length);
@@ -1850,7 +1850,7 @@ public class BaseValueParserTest extends
         String[] booleanString = {"on", "off", "false", "true", " ", 
"justaword"};
         parser.add("foo", booleanString);
         boolean[] theArray = parser.getBooleans("foo");
-        
+
         assertEquals(6, theArray.length);
         assertTrue(theArray[0]);
         assertFalse(theArray[1]);
@@ -1858,7 +1858,7 @@ public class BaseValueParserTest extends
         assertTrue(theArray[3]);
         assertFalse(theArray[4]);
         assertFalse(theArray[5]);
-        
+
         assertNull(parser.getBooleans("keydontexist"));
     }
 
@@ -1866,7 +1866,7 @@ public class BaseValueParserTest extends
         String[] booleanString = {"on", "off", "false", "true", " ", 
"justaword"};
         parser.add("foo", booleanString);
         Boolean[] theArray = parser.getBooleanObjects("foo");
-        
+
         assertEquals(6, theArray.length);
         assertEquals(Boolean.TRUE, theArray[0]);
         assertEquals(Boolean.FALSE, theArray[1]);
@@ -1874,26 +1874,26 @@ public class BaseValueParserTest extends
         assertEquals(Boolean.TRUE, theArray[3]);
         assertEquals(null, theArray[4]);
         assertEquals(null, theArray[5]);
-        
+
         assertNull(parser.getBooleanObjects("keydontexist"));
     }
 
     public void testGet() {
-    
+
         // no param
         String result = parser.get("invalid");
         assertNull(result);
-    
+
         // null value
         parser.add("valid", "value");
         assertEquals("value", parser.get("valid"));
-    
+
         // only return the first added
         parser.add("multiple", "test");
         parser.add("multiple", "test2");
         assertEquals("test", parser.get("multiple"));
-    
+
 
     }
-    
+
 }

Modified: 
turbine/fulcrum/trunk/parser/src/test/org/apache/fulcrum/parser/ParameterParserTest.java
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/parser/src/test/org/apache/fulcrum/parser/ParameterParserTest.java?rev=1528777&r1=1528776&r2=1528777&view=diff
==============================================================================
--- 
turbine/fulcrum/trunk/parser/src/test/org/apache/fulcrum/parser/ParameterParserTest.java
 (original)
+++ 
turbine/fulcrum/trunk/parser/src/test/org/apache/fulcrum/parser/ParameterParserTest.java
 Thu Oct  3 10:14:42 2013
@@ -56,7 +56,7 @@ public class ParameterParserTest extends
         try
         {
             parserService = (ParserService)this.lookup(ParserService.ROLE);
-            parameterParser = (ParameterParser) 
parserService.getParser(DefaultParameterParser.class);
+            parameterParser = 
parserService.getParser(DefaultParameterParser.class);
         }
         catch (ComponentException e)
         {

Modified: turbine/fulcrum/trunk/parser/xdocs/index.xml
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/parser/xdocs/index.xml?rev=1528777&r1=1528776&r2=1528777&view=diff
==============================================================================
--- turbine/fulcrum/trunk/parser/xdocs/index.xml (original)
+++ turbine/fulcrum/trunk/parser/xdocs/index.xml Thu Oct  3 10:14:42 2013
@@ -125,15 +125,15 @@
     </p>
 
     <source><![CDATA[
-    // Get a ValueParser instance
-    ValueParser parser = (ValueParser) 
parserService.getParser(BaseValueParser.class);
+// Get a ValueParser instance
+ValueParser parser = parserService.getParser(BaseValueParser.class);
 
-    parser.add(...);
-    Double d = parser.getDoubleObject(...);
-    
-    // Return the instance to the service
-    parserService.putParser(parser);
-    ]]></source>
+parser.add(...);
+Double d = parser.getDoubleObject(...);
+
+// Return the instance to the service
+parserService.putParser(parser);
+]]></source>
 
     <p>
     Parsers are pooled inside the service. You can use this service to manage 
any types of


Reply via email to