Author: painter
Date: Fri Jan 11 14:19:15 2019
New Revision: 1851054

URL: http://svn.apache.org/viewvc?rev=1851054&view=rev
Log:
Start conversion to generics, please review and give feedback

Modified:
    turbine/fulcrum/trunk/pool/src/changes/changes.xml
    
turbine/fulcrum/trunk/pool/src/java/org/apache/fulcrum/pool/BoundedBuffer.java
    
turbine/fulcrum/trunk/pool/src/java/org/apache/fulcrum/pool/DefaultPoolService.java
    turbine/fulcrum/trunk/pool/src/java/org/apache/fulcrum/pool/PoolBuffer.java
    turbine/fulcrum/trunk/pool/src/java/org/apache/fulcrum/pool/PoolService.java

Modified: turbine/fulcrum/trunk/pool/src/changes/changes.xml
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/pool/src/changes/changes.xml?rev=1851054&r1=1851053&r2=1851054&view=diff
==============================================================================
--- turbine/fulcrum/trunk/pool/src/changes/changes.xml (original)
+++ turbine/fulcrum/trunk/pool/src/changes/changes.xml Fri Jan 11 14:19:15 2019
@@ -24,7 +24,12 @@
   </properties>
 
   <body>
-    <release version="1.0.5" date="in SVN">
+    <release version="1.0.6" date="in SVN">
+       <action dev="painter" type="update">
+         Move to generics
+       </action>
+    </release>
+    <release version="1.0.5" date="2019-01-11">
        <action dev="painter" type="update">
          Update test to use junit 5
        </action>

Modified: 
turbine/fulcrum/trunk/pool/src/java/org/apache/fulcrum/pool/BoundedBuffer.java
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/pool/src/java/org/apache/fulcrum/pool/BoundedBuffer.java?rev=1851054&r1=1851053&r2=1851054&view=diff
==============================================================================
--- 
turbine/fulcrum/trunk/pool/src/java/org/apache/fulcrum/pool/BoundedBuffer.java 
(original)
+++ 
turbine/fulcrum/trunk/pool/src/java/org/apache/fulcrum/pool/BoundedBuffer.java 
Fri Jan 11 14:19:15 2019
@@ -133,12 +133,13 @@ public class BoundedBuffer
      *
      * @return the oldest item from the buffer, or null if the buffer is empty.
      */
-    public synchronized Object poll()
+    public synchronized <T> T poll()
     {
         if (usedSlots_ > 0)
         {
             --usedSlots_;
-            Object old = array_[takePtr_];
+            @SuppressWarnings("unchecked")
+                       T old = (T) array_[takePtr_];
             array_[takePtr_] = null;
             if (++takePtr_ >= array_.length)
                 takePtr_ = 0;

Modified: 
turbine/fulcrum/trunk/pool/src/java/org/apache/fulcrum/pool/DefaultPoolService.java
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/pool/src/java/org/apache/fulcrum/pool/DefaultPoolService.java?rev=1851054&r1=1851053&r2=1851054&view=diff
==============================================================================
--- 
turbine/fulcrum/trunk/pool/src/java/org/apache/fulcrum/pool/DefaultPoolService.java
 (original)
+++ 
turbine/fulcrum/trunk/pool/src/java/org/apache/fulcrum/pool/DefaultPoolService.java
 Fri Jan 11 14:19:15 2019
@@ -78,11 +78,11 @@ public class DefaultPoolService extends
         * @return the instance.
         * @throws PoolException if recycling fails.
         */
-       public Object getInstance(String className) throws PoolException 
+       public <T> T getInstance(String className) throws PoolException 
        {
                try 
                {
-                       Object instance = pollInstance(className, null, null);
+                       T instance = pollInstance(className, null, null);
                        return instance == null ? 
getFactory().getInstance(className) : instance;
                } 
                catch (FactoryException fe) 
@@ -183,17 +183,18 @@ public class DefaultPoolService extends
         * Gets an instance of a specified class either from the pool or by 
instatiating
         * from the class if the pool is empty.
         *
+        * @param <T> type of the class
         * @param clazz the class.
         * @return the instance.
         * @throws PoolException if recycling fails.
         */
        @SuppressWarnings("unchecked")
-       public Object getInstance(Class clazz) throws PoolException 
+       public <T> T getInstance(Class<?> clazz) throws PoolException 
        {
                try 
                {
-                       Object instance = pollInstance(clazz.getName(), null, 
null);
-                       return instance == null ? 
factoryService.getInstance(clazz) : instance;
+                       T instance = pollInstance(clazz.getName(), null, null);
+                       return instance == null ? (T) 
factoryService.getInstance(clazz) : instance;
                } 
                catch (FactoryException fe) 
                {
@@ -211,11 +212,11 @@ public class DefaultPoolService extends
         * @return the instance.
         * @throws PoolException if recycling fails.
         */
-       public Object getInstance(Class clazz, Object params[], String 
signature[]) throws PoolException 
+       public <T> T getInstance(Class<?> clazz, Object params[], String 
signature[]) throws PoolException 
        {
                try 
                {
-                       Object instance = pollInstance(clazz.getName(), params, 
signature);
+                       T instance = pollInstance(clazz.getName(), params, 
signature);
                        
                        // TODO There is a whacky .toString() on the clazz 
object, 
                        // but otherwise it won't compile
@@ -349,7 +350,7 @@ public class DefaultPoolService extends
         * @return the object or null.
         * @throws PoolException if recycling fails.
         */
-       private Object pollInstance(String className, Object[] params, String[] 
signature) throws PoolException 
+       private <T> T pollInstance(String className, Object[] params, String[] 
signature) throws PoolException 
        {
                PoolBuffer pool = (PoolBuffer) poolRepository.get(className);
                return pool != null ? pool.poll(params, signature, 
factoryService) : null;

Modified: 
turbine/fulcrum/trunk/pool/src/java/org/apache/fulcrum/pool/PoolBuffer.java
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/pool/src/java/org/apache/fulcrum/pool/PoolBuffer.java?rev=1851054&r1=1851053&r2=1851054&view=diff
==============================================================================
--- turbine/fulcrum/trunk/pool/src/java/org/apache/fulcrum/pool/PoolBuffer.java 
(original)
+++ turbine/fulcrum/trunk/pool/src/java/org/apache/fulcrum/pool/PoolBuffer.java 
Fri Jan 11 14:19:15 2019
@@ -46,7 +46,7 @@ public class PoolBuffer
        private ArrayList<Recycler> recyclers;
 
        /**
-        * Contructs a new pool buffer with a specific capacity.
+        * Constructs a new pool buffer with a specific capacity.
         *
         * @param capacity a capacity.
         */
@@ -70,15 +70,15 @@ public class PoolBuffer
         * Polls for an instance from the pool.
         * 
         * 
-        * @param params         object paramaters
+        * @param params         object parameters
         * @param signature      signature of the class
         * @param factoryService service to add
         * @throws PoolException if service failed to be found
         * @return an instance or null.
         */
-       public Object poll(Object[] params, String[] signature, FactoryService 
factoryService) throws PoolException 
+       public <T> T poll(Object[] params, String[] signature, FactoryService 
factoryService) throws PoolException 
        {
-               Object instance = pool.poll();
+               T instance = pool.poll();
                if (instance != null) 
                {
                        if (arrayCtorRecyclable) 

Modified: 
turbine/fulcrum/trunk/pool/src/java/org/apache/fulcrum/pool/PoolService.java
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/pool/src/java/org/apache/fulcrum/pool/PoolService.java?rev=1851054&r1=1851053&r2=1851054&view=diff
==============================================================================
--- 
turbine/fulcrum/trunk/pool/src/java/org/apache/fulcrum/pool/PoolService.java 
(original)
+++ 
turbine/fulcrum/trunk/pool/src/java/org/apache/fulcrum/pool/PoolService.java 
Fri Jan 11 14:19:15 2019
@@ -50,23 +50,25 @@ public interface PoolService
         * Gets an instance of a specified class either from the pool or by
         * instantiating from the class if the pool is empty.
         *
+        * @param <T> type of the instance
         * @param clazz the class.
         * @return the instance.
         * @throws PoolException if recycling fails.
         */
-       public Object getInstance(Class clazz) throws PoolException;
+       public <T> T getInstance(Class<?> clazz) throws PoolException;
 
        /**
         * Gets an instance of a specified class either from the pool or by
         * instantiating from the class if the pool is empty.
         *
+        * @param <T>       type of the instance class
         * @param clazz     the class.
         * @param params    an array containing the parameters of the 
constructor.
         * @param signature an array containing the signature of the 
constructor.
         * @return the instance.
         * @throws PoolException if recycling fails.
         */
-       public Object getInstance(Class clazz, Object params[], String 
signature[]) throws PoolException;
+       public <T> T getInstance(Class<?> clazz, Object params[], String 
signature[]) throws PoolException;
 
        /**
         * Puts a used object back to the pool. Objects implementing the 
Recyclable


Reply via email to