You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by si...@apache.org on 2011/05/12 21:03:34 UTC

svn commit: r1102425 - in /commons/sandbox/digester3/trunk/src: main/java/org/apache/commons/digester3/ main/java/org/apache/commons/digester3/annotations/providers/ main/java/org/apache/commons/digester3/annotations/rules/ test/java/org/apache/commons...

Author: simonetripodi
Date: Thu May 12 19:03:34 2011
New Revision: 1102425

URL: http://svn.apache.org/viewvc?rev=1102425&view=rev
Log:
added Generics to ObjectCreationFactory

Modified:
    commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/AbstractObjectCreationFactory.java
    commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/Digester.java
    commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/FactoryCreateRule.java
    commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/ObjectCreationFactory.java
    commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/providers/FactoryCreateRuleProvider.java
    commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/rules/FactoryCreate.java
    commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/ObjectCreationFactoryTestImpl.java
    commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/annotations/catalog/BookFactory.java

Modified: commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/AbstractObjectCreationFactory.java
URL: http://svn.apache.org/viewvc/commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/AbstractObjectCreationFactory.java?rev=1102425&r1=1102424&r2=1102425&view=diff
==============================================================================
--- commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/AbstractObjectCreationFactory.java (original)
+++ commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/AbstractObjectCreationFactory.java Thu May 12 19:03:34 2011
@@ -24,8 +24,8 @@ import org.xml.sax.Attributes;
  * Abstract base class for <code>ObjectCreationFactory</code> implementations.
  * </p>
  */
-abstract public class AbstractObjectCreationFactory
-    implements ObjectCreationFactory
+abstract public class AbstractObjectCreationFactory<T>
+    implements ObjectCreationFactory<T>
 {
 
     // ----------------------------------------------------- Instance Variables
@@ -44,7 +44,7 @@ abstract public class AbstractObjectCrea
      * @param attributes the element's attributes
      * @throws Exception any exception thrown will be propagated upwards
      */
-    public abstract Object createObject( Attributes attributes )
+    public abstract T createObject( Attributes attributes )
         throws Exception;
 
     /**

Modified: commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/Digester.java
URL: http://svn.apache.org/viewvc/commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/Digester.java?rev=1102425&r1=1102424&r2=1102425&view=diff
==============================================================================
--- commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/Digester.java (original)
+++ commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/Digester.java Thu May 12 19:03:34 2011
@@ -2171,7 +2171,7 @@ public class Digester
      * @param clazz Java class of the object creation factory class
      * @see FactoryCreateRule
      */
-    public void addFactoryCreate( String pattern, Class<?> clazz )
+    public void addFactoryCreate( String pattern, Class<? extends ObjectCreationFactory<?>> clazz )
     {
 
         addFactoryCreate( pattern, clazz, false );
@@ -2218,7 +2218,7 @@ public class Digester
      * @param creationFactory Previously instantiated ObjectCreationFactory to be utilized
      * @see FactoryCreateRule
      */
-    public void addFactoryCreate( String pattern, ObjectCreationFactory creationFactory )
+    public void addFactoryCreate( String pattern, ObjectCreationFactory<?> creationFactory )
     {
 
         addFactoryCreate( pattern, creationFactory, false );
@@ -2250,7 +2250,8 @@ public class Digester
      *            ignored.
      * @see FactoryCreateRule
      */
-    public void addFactoryCreate( String pattern, Class<?> clazz, boolean ignoreCreateExceptions )
+    public void addFactoryCreate( String pattern, Class<? extends ObjectCreationFactory<?>> clazz,
+                                  boolean ignoreCreateExceptions )
     {
 
         addRule( pattern, new FactoryCreateRule( clazz, ignoreCreateExceptions ) );
@@ -2300,7 +2301,7 @@ public class Digester
      *            ignored.
      * @see FactoryCreateRule
      */
-    public void addFactoryCreate( String pattern, ObjectCreationFactory creationFactory, boolean ignoreCreateExceptions )
+    public void addFactoryCreate( String pattern, ObjectCreationFactory<?> creationFactory, boolean ignoreCreateExceptions )
     {
 
         creationFactory.setDigester( this );

Modified: commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/FactoryCreateRule.java
URL: http://svn.apache.org/viewvc/commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/FactoryCreateRule.java?rev=1102425&r1=1102424&r2=1102425&view=diff
==============================================================================
--- commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/FactoryCreateRule.java (original)
+++ commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/FactoryCreateRule.java Thu May 12 19:03:34 2011
@@ -76,7 +76,7 @@ public class FactoryCreateRule
      * 
      * @param clazz Java class name of the object creation factory class
      */
-    public FactoryCreateRule( Class<?> clazz )
+    public FactoryCreateRule( Class<? extends ObjectCreationFactory<?>> clazz )
     {
 
         this( clazz, false );
@@ -118,7 +118,7 @@ public class FactoryCreateRule
      * @param attributeName Attribute name which, if present, contains an override of the class name of the object
      *            creation factory to create.
      */
-    public FactoryCreateRule( Class<?> clazz, String attributeName )
+    public FactoryCreateRule( Class<? extends ObjectCreationFactory<?>> clazz, String attributeName )
     {
 
         this( clazz, attributeName, false );
@@ -135,7 +135,7 @@ public class FactoryCreateRule
      * 
      * @param creationFactory called on to create the object.
      */
-    public FactoryCreateRule( ObjectCreationFactory creationFactory )
+    public FactoryCreateRule( ObjectCreationFactory<?> creationFactory )
     {
 
         this( creationFactory, false );
@@ -163,7 +163,7 @@ public class FactoryCreateRule
      * @param clazz Java class name of the object creation factory class
      * @param ignoreCreateExceptions if true, exceptions thrown by the object creation factory will be ignored.
      */
-    public FactoryCreateRule( Class<?> clazz, boolean ignoreCreateExceptions )
+    public FactoryCreateRule( Class<? extends ObjectCreationFactory<?>> clazz, boolean ignoreCreateExceptions )
     {
 
         this( clazz, null, ignoreCreateExceptions );
@@ -212,7 +212,7 @@ public class FactoryCreateRule
      * @param creationFactory called on to create the object.
      * @param ignoreCreateExceptions if true, exceptions thrown by the object creation factory will be ignored.
      */
-    public FactoryCreateRule( ObjectCreationFactory creationFactory, boolean ignoreCreateExceptions )
+    public FactoryCreateRule( ObjectCreationFactory<?> creationFactory, boolean ignoreCreateExceptions )
     {
 
         this.creationFactory = creationFactory;
@@ -235,7 +235,7 @@ public class FactoryCreateRule
      * The object creation factory we will use to instantiate objects as required based on the attributes specified in
      * the matched XML element.
      */
-    protected ObjectCreationFactory creationFactory = null;
+    protected ObjectCreationFactory<?> creationFactory = null;
 
     // --------------------------------------------------------- Public Methods
 
@@ -385,7 +385,7 @@ public class FactoryCreateRule
      * @param attributes Attributes passed to our factory creation element
      * @exception Exception if any error occurs
      */
-    protected ObjectCreationFactory getFactory( Attributes attributes )
+    protected ObjectCreationFactory<?> getFactory( Attributes attributes )
         throws Exception
     {
 
@@ -406,7 +406,7 @@ public class FactoryCreateRule
                                                      + realClassName );
             }
             Class<?> clazz = getDigester().getClassLoader().loadClass( realClassName );
-            creationFactory = (ObjectCreationFactory) clazz.newInstance();
+            creationFactory = (ObjectCreationFactory<?>) clazz.newInstance();
             creationFactory.setDigester( getDigester() );
         }
         return ( creationFactory );

Modified: commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/ObjectCreationFactory.java
URL: http://svn.apache.org/viewvc/commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/ObjectCreationFactory.java?rev=1102425&r1=1102424&r2=1102425&view=diff
==============================================================================
--- commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/ObjectCreationFactory.java (original)
+++ commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/ObjectCreationFactory.java Thu May 12 19:03:34 2011
@@ -29,7 +29,7 @@ import org.xml.sax.Attributes;
  * {@link AbstractObjectCreationFactory} is an abstract implementation suitable for creating anonymous
  * <code>ObjectCreationFactory</code> implementations.
  */
-public interface ObjectCreationFactory
+public interface ObjectCreationFactory<T>
 {
 
     /**
@@ -39,7 +39,7 @@ public interface ObjectCreationFactory
      * @param attributes the element's attributes
      * @throws Exception any exception thrown will be propagated upwards
      */
-    Object createObject( Attributes attributes )
+    T createObject( Attributes attributes )
         throws Exception;
 
     /**

Modified: commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/providers/FactoryCreateRuleProvider.java
URL: http://svn.apache.org/viewvc/commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/providers/FactoryCreateRuleProvider.java?rev=1102425&r1=1102424&r2=1102425&view=diff
==============================================================================
--- commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/providers/FactoryCreateRuleProvider.java (original)
+++ commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/providers/FactoryCreateRuleProvider.java Thu May 12 19:03:34 2011
@@ -18,6 +18,7 @@
 package org.apache.commons.digester3.annotations.providers;
 
 import org.apache.commons.digester3.FactoryCreateRule;
+import org.apache.commons.digester3.ObjectCreationFactory;
 import org.apache.commons.digester3.annotations.AnnotationRuleProvider;
 import org.apache.commons.digester3.annotations.rules.FactoryCreate;
 
@@ -30,7 +31,7 @@ public final class FactoryCreateRuleProv
     implements AnnotationRuleProvider<FactoryCreate, Class<?>, FactoryCreateRule>
 {
 
-    private Class<?> factoryClass;
+    private Class<? extends ObjectCreationFactory<?>> factoryClass;
 
     private boolean ignoreCreateExceptions;
 

Modified: commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/rules/FactoryCreate.java
URL: http://svn.apache.org/viewvc/commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/rules/FactoryCreate.java?rev=1102425&r1=1102424&r2=1102425&view=diff
==============================================================================
--- commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/rules/FactoryCreate.java (original)
+++ commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/rules/FactoryCreate.java Thu May 12 19:03:34 2011
@@ -49,7 +49,7 @@ public @interface FactoryCreate
      * 
      * @return the Java class of the object creation factory class.
      */
-    Class<? extends AbstractObjectCreationFactory> factoryClass();
+    Class<? extends AbstractObjectCreationFactory<?>> factoryClass();
 
     /**
      * The element matching pattern.

Modified: commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/ObjectCreationFactoryTestImpl.java
URL: http://svn.apache.org/viewvc/commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/ObjectCreationFactoryTestImpl.java?rev=1102425&r1=1102424&r2=1102425&view=diff
==============================================================================
--- commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/ObjectCreationFactoryTestImpl.java (original)
+++ commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/ObjectCreationFactoryTestImpl.java Thu May 12 19:03:34 2011
@@ -29,7 +29,7 @@ import org.xml.sax.helpers.AttributesImp
  */
 
 public class ObjectCreationFactoryTestImpl
-    extends AbstractObjectCreationFactory
+    extends AbstractObjectCreationFactory<Object>
 {
     public boolean called = false;
 

Modified: commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/annotations/catalog/BookFactory.java
URL: http://svn.apache.org/viewvc/commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/annotations/catalog/BookFactory.java?rev=1102425&r1=1102424&r2=1102425&view=diff
==============================================================================
--- commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/annotations/catalog/BookFactory.java (original)
+++ commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/annotations/catalog/BookFactory.java Thu May 12 19:03:34 2011
@@ -24,13 +24,13 @@ import org.xml.sax.Attributes;
  * @since 2.1
  */
 public final class BookFactory
-    extends AbstractObjectCreationFactory
+    extends AbstractObjectCreationFactory<Book>
 {
 
     private final static String ISBN = "isbn";
 
     @Override
-    public Object createObject( Attributes attributes )
+    public Book createObject( Attributes attributes )
         throws Exception
     {
         String isbn = attributes.getValue( ISBN );