You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@abdera.apache.org by jm...@apache.org on 2006/09/07 22:58:00 UTC

svn commit: r441226 - /incubator/abdera/java/trunk/core/src/main/java/org/apache/abdera/util/ServiceUtil.java

Author: jmsnell
Date: Thu Sep  7 13:57:59 2006
New Revision: 441226

URL: http://svn.apache.org/viewvc?view=rev&rev=441226
Log:
Some API improvements for Java 1.5 to reduce the number of explicit casts necessary. 
No effect for Java 1.4.2 users

Modified:
    incubator/abdera/java/trunk/core/src/main/java/org/apache/abdera/util/ServiceUtil.java

Modified: incubator/abdera/java/trunk/core/src/main/java/org/apache/abdera/util/ServiceUtil.java
URL: http://svn.apache.org/viewvc/incubator/abdera/java/trunk/core/src/main/java/org/apache/abdera/util/ServiceUtil.java?view=diff&rev=441226&r1=441225&r2=441226
==============================================================================
--- incubator/abdera/java/trunk/core/src/main/java/org/apache/abdera/util/ServiceUtil.java (original)
+++ incubator/abdera/java/trunk/core/src/main/java/org/apache/abdera/util/ServiceUtil.java Thu Sep  7 13:57:59 2006
@@ -50,7 +50,7 @@
    * no instance is configured, the default class name will be used.  Returns
    * null if no instance can be created.
    */
-  public static Object newInstance(String id, String _default, Abdera abdera) {
+  public static <T>T newInstance(String id, String _default, Abdera abdera) {
     return locate(id, _default, abdera);
   }
 
@@ -112,11 +112,11 @@
     return Thread.currentThread().getContextClassLoader();
   }
   
-  public static Object locate(
+  public static <T>T locate(
     String id, 
     String _default, 
     Abdera abdera) {
-      Object object = locate(id, abdera);
+      T object = locate(id, abdera);
       if (object == null && _default != null) {
         object = locateInstance(getClassLoader(), _default, abdera);
       }
@@ -126,9 +126,10 @@
   /**
    * Locate a class instance for the given id
    */
-  public static Object locate(String id, Abdera abdera) {
-    Object service = checkAbderaConfiguration(id, abdera);
-    return ((service != null) ? service : checkMetaInfServices(id, abdera));
+  @SuppressWarnings("unchecked")
+  public static <T>T locate(String id, Abdera abdera) {
+    T service = checkAbderaConfiguration(id, abdera);
+    return ((service != null) ? service : (T)checkMetaInfServices(id, abdera));
   }
   
   @SuppressWarnings("unchecked")
@@ -186,13 +187,14 @@
     return null;
   }
   
-  private static Object checkAbderaConfiguration(String id, Abdera abdera) {
+  @SuppressWarnings("unchecked")
+  private static <T>T checkAbderaConfiguration(String id, Abdera abdera) {
     String s = abdera.getConfiguration().getConfigurationOption(id);
-    return (s != null) ? locateInstance(getClassLoader(), id, abdera) : null;
+    return (s != null) ? (T)locateInstance(getClassLoader(), id, abdera) : null;
   }
   
-  private static Object checkMetaInfServices(String id, Abdera abdera) {
-    Object object = null;
+  private static <T>T checkMetaInfServices(String id, Abdera abdera) {
+    T object = null;
     String sid = "META-INF/services/" + id;
     ClassLoader loader = getClassLoader();
     BufferedReader buf = null;