Author: skestle
Date: Sun Sep  2 15:04:41 2007
New Revision: 572176

URL: http://svn.apache.org/viewvc?rev=572176&view=rev
Log:
Generified LazySortedMap to fix build errors

Modified:
    
commons/proper/collections/branches/collections_jdk5_branch/src/java/org/apache/commons/collections/map/LazySortedMap.java
    
commons/proper/collections/branches/collections_jdk5_branch/src/test/org/apache/commons/collections/map/TestLazyMap.java
    
commons/proper/collections/branches/collections_jdk5_branch/src/test/org/apache/commons/collections/map/TestLazySortedMap.java

Modified: 
commons/proper/collections/branches/collections_jdk5_branch/src/java/org/apache/commons/collections/map/LazySortedMap.java
URL: 
http://svn.apache.org/viewvc/commons/proper/collections/branches/collections_jdk5_branch/src/java/org/apache/commons/collections/map/LazySortedMap.java?rev=572176&r1=572175&r2=572176&view=diff
==============================================================================
--- 
commons/proper/collections/branches/collections_jdk5_branch/src/java/org/apache/commons/collections/map/LazySortedMap.java
 (original)
+++ 
commons/proper/collections/branches/collections_jdk5_branch/src/java/org/apache/commons/collections/map/LazySortedMap.java
 Sun Sep  2 15:04:41 2007
@@ -58,9 +58,9 @@
  * @author Stephen Colebourne
  * @author Paul Jack
  */
-public class LazySortedMap
-        extends LazyMap<Object, Object>
-        implements SortedMap<Object, Object> {
+public class LazySortedMap<K,V>
+        extends LazyMap<K,V>
+        implements SortedMap<K,V> {
 
     /** Serialization version */
     private static final long serialVersionUID = 2715322183617658933L;
@@ -71,9 +71,11 @@
      * @param map  the map to decorate, must not be null
      * @param factory  the factory to use, must not be null
      * @throws IllegalArgumentException if map or factory is null
+     * @deprecated
      */
-    public static SortedMap decorate(SortedMap map, Factory factory) {
-        return new LazySortedMap(map, factory);
+    @Deprecated
+    public static <K,V> SortedMap<K,V> decorate(SortedMap<K,V> map, Factory<? 
extends V> factory) {
+        return getLazySortedMap(map, factory);
     }
 
     /**
@@ -83,10 +85,34 @@
      * @param factory  the factory to use, must not be null
      * @throws IllegalArgumentException if map or factory is null
      */
-    public static SortedMap decorate(SortedMap map, Transformer factory) {
-        return new LazySortedMap(map, factory);
+       public static <K, V> SortedMap<K, V> getLazySortedMap(SortedMap<K, V> 
map, Factory<? extends V> factory) {
+               return new LazySortedMap<K,V>(map, factory);
+       }
+
+       /**
+        * Factory method to create a lazily instantiated sorted map.
+        * 
+        * @param map  the map to decorate, must not be null
+        * @param factory  the factory to use, must not be null
+        * @throws IllegalArgumentException if map or factory is null
+        * @deprecated
+        */
+       @Deprecated
+    public static <K,V> SortedMap<K,V> decorate(SortedMap<K,V> map, 
Transformer<? super K, ? extends V> factory) {
+        return getLazySortedMap(map, factory);
     }
 
+    /**
+     * Factory method to create a lazily instantiated sorted map.
+     * 
+     * @param map  the map to decorate, must not be null
+     * @param factory  the factory to use, must not be null
+     * @throws IllegalArgumentException if map or factory is null
+     */
+       public static <K, V> SortedMap<K, V> getLazySortedMap(SortedMap<K, V> 
map, Transformer<? super K, ? extends V> factory) {
+               return new LazySortedMap<K,V>(map, factory);
+       }
+
     //-----------------------------------------------------------------------
     /**
      * Constructor that wraps (not copies).
@@ -95,7 +121,7 @@
      * @param factory  the factory to use, must not be null
      * @throws IllegalArgumentException if map or factory is null
      */
-    protected LazySortedMap(SortedMap map, Factory factory) {
+    protected LazySortedMap(SortedMap<K,V> map, Factory<? extends V> factory) {
         super(map, factory);
     }
 
@@ -106,7 +132,7 @@
      * @param factory  the factory to use, must not be null
      * @throws IllegalArgumentException if map or factory is null
      */
-    protected LazySortedMap(SortedMap map, Transformer factory) {
+    protected LazySortedMap(SortedMap<K,V> map, Transformer<? super K, ? 
extends V> factory) {
         super(map, factory);
     }
 
@@ -116,36 +142,36 @@
      * 
      * @return the decorated map
      */
-    protected SortedMap getSortedMap() {
-        return (SortedMap) map;
+    protected SortedMap<K,V> getSortedMap() {
+        return (SortedMap<K,V>) map;
     }
 
     //-----------------------------------------------------------------------
-    public Object firstKey() {
+    public K firstKey() {
         return getSortedMap().firstKey();
     }
 
-    public Object lastKey() {
+    public K lastKey() {
         return getSortedMap().lastKey();
     }
 
-    public Comparator comparator() {
+    public Comparator<? super K> comparator() {
         return getSortedMap().comparator();
     }
 
-    public SortedMap subMap(Object fromKey, Object toKey) {
-        SortedMap map = getSortedMap().subMap(fromKey, toKey);
-        return new LazySortedMap(map, factory);
+    public SortedMap<K,V> subMap(K fromKey, K toKey) {
+        SortedMap<K,V> map = getSortedMap().subMap(fromKey, toKey);
+        return new LazySortedMap<K,V>(map, factory);
     }
 
-    public SortedMap headMap(Object toKey) {
-        SortedMap map = getSortedMap().headMap(toKey);
-        return new LazySortedMap(map, factory);
+    public SortedMap<K,V> headMap(K toKey) {
+        SortedMap<K,V> map = getSortedMap().headMap(toKey);
+        return new LazySortedMap<K,V>(map, factory);
     }
 
-    public SortedMap tailMap(Object fromKey) {
-        SortedMap map = getSortedMap().tailMap(fromKey);
-        return new LazySortedMap(map, factory);
+    public SortedMap<K,V> tailMap(K fromKey) {
+        SortedMap<K,V> map = getSortedMap().tailMap(fromKey);
+        return new LazySortedMap<K,V>(map, factory);
     }
 
 }

Modified: 
commons/proper/collections/branches/collections_jdk5_branch/src/test/org/apache/commons/collections/map/TestLazyMap.java
URL: 
http://svn.apache.org/viewvc/commons/proper/collections/branches/collections_jdk5_branch/src/test/org/apache/commons/collections/map/TestLazyMap.java?rev=572176&r1=572175&r2=572176&view=diff
==============================================================================
--- 
commons/proper/collections/branches/collections_jdk5_branch/src/test/org/apache/commons/collections/map/TestLazyMap.java
 (original)
+++ 
commons/proper/collections/branches/collections_jdk5_branch/src/test/org/apache/commons/collections/map/TestLazyMap.java
 Sun Sep  2 15:04:41 2007
@@ -38,7 +38,6 @@
 public class TestLazyMap extends AbstractTestMap {
     
        private static final Factory<Integer> oneFactory = 
FactoryUtils.constantFactory(1);
-    private static final Factory<Object> nullFactory = 
FactoryUtils.nullFactory();
     
     public TestLazyMap(String testName) {
         super(testName);

Modified: 
commons/proper/collections/branches/collections_jdk5_branch/src/test/org/apache/commons/collections/map/TestLazySortedMap.java
URL: 
http://svn.apache.org/viewvc/commons/proper/collections/branches/collections_jdk5_branch/src/test/org/apache/commons/collections/map/TestLazySortedMap.java?rev=572176&r1=572175&r2=572176&view=diff
==============================================================================
--- 
commons/proper/collections/branches/collections_jdk5_branch/src/test/org/apache/commons/collections/map/TestLazySortedMap.java
 (original)
+++ 
commons/proper/collections/branches/collections_jdk5_branch/src/test/org/apache/commons/collections/map/TestLazySortedMap.java
 Sun Sep  2 15:04:41 2007
@@ -16,18 +16,18 @@
  */
 package org.apache.commons.collections.map;
 
+import static 
org.apache.commons.collections.map.LazySortedMap.getLazySortedMap;
+
 import java.util.Comparator;
 import java.util.Map;
 import java.util.SortedMap;
 import java.util.TreeMap;
 
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
 import org.apache.commons.collections.Factory;
 import org.apache.commons.collections.FactoryUtils;
 import org.apache.commons.collections.Transformer;
 import org.apache.commons.collections.TransformerUtils;
+import org.junit.Test;
 
 /**
  * Extension of [EMAIL PROTECTED] TestLazyMap} for exercising the 
@@ -40,59 +40,54 @@
  */
 public class TestLazySortedMap extends AbstractTestSortedMap {
     
-    protected static final Factory oneFactory = 
FactoryUtils.constantFactory("One");
-    protected static final Factory nullFactory = FactoryUtils.nullFactory();
-    
+       private static final Factory<Integer> oneFactory = 
FactoryUtils.constantFactory(1);
+   
     public TestLazySortedMap(String testName) {
         super(testName);
     }
     
-    public static Test suite() {
-        return new TestSuite(TestLazySortedMap.class);
-    }
-    
     public static void main(String args[]) {
         String[] testCaseName = { TestLazySortedMap.class.getName()};
         junit.textui.TestRunner.main(testCaseName);
     }
 
-    //-----------------------------------------------------------------------  
  
-    protected SortedMap decorateMap(SortedMap map, Factory factory) {
-        return LazySortedMap.decorate(map, factory);
-    }
-    
-    public Map makeEmptyMap() {
-        return decorateMap(new TreeMap(), nullFactory);
+    @Override
+       public <K,V> Map<K,V> makeEmptyMap() {
+        return getLazySortedMap(new TreeMap<K,V>(), 
FactoryUtils.<V>nullFactory());
     }
     
-    protected SortedMap makeTestSortedMap(Factory factory) {
-        return decorateMap(new TreeMap(), factory);
+    private <K,V> SortedMap<K,V> makeTestSortedMap(Factory<V> factory) {
+        return getLazySortedMap(new TreeMap<K,V>(), factory);
     }
     
-    public boolean isSubMapViewsSerializable() {
-        // TreeMap sub map views have a bug in deserialization.
+    @Override
+       public boolean isSubMapViewsSerializable() {
+        // TODO TreeMap sub map views have a bug in deserialization.
         return false;
     }
 
-    public boolean isAllowNullKey() {
+    @Override
+       public boolean isAllowNullKey() {
         return false;
     }
 
     // from TestLazyMap
     //-----------------------------------------------------------------------
+    @Override
     public void testMapGet() {
-        Map map = makeTestSortedMap(oneFactory);
+       //TODO eliminate need for this via superclass - see svn history.
+    }
+    
+    @Test
+    public void mapGet() {
+        Map<Integer, Number> map = getLazySortedMap(new 
TreeMap<Integer,Number>(), oneFactory);
         assertEquals(0, map.size());
-        String s1 = (String) map.get("Five");
-        assertEquals("One", s1);
+        Number i1 = map.get(5);
+        assertEquals(1, i1);
         assertEquals(1, map.size());
-        String s2 = (String) map.get(new String(new char[] {'F','i','v','e'}));
-        assertEquals("One", s2);
-        assertEquals(1, map.size());
-        assertSame(s1, s2);
-        
-        map = makeTestSortedMap(nullFactory);
-        Object o = map.get("Five");
+
+        map = getLazySortedMap(new TreeMap<Integer,Number>(), 
FactoryUtils.<Number>nullFactory());
+        Number o = map.get(5);
         assertEquals(null,o);
         assertEquals(1, map.size());
         
@@ -100,10 +95,10 @@
     
     //-----------------------------------------------------------------------
     public void testSortOrder() {
-        SortedMap map = makeTestSortedMap(oneFactory);
-        map.put("A",  "a");
+        SortedMap<String, Number> map = getLazySortedMap(new 
TreeMap<String,Number>(), oneFactory);
+        map.put("A",  5);
         map.get("B"); // Entry with value "One" created
-        map.put("C", "c");
+        map.put("C", 8);
         assertEquals("First key should be A", map.firstKey(), "A");
         assertEquals("Last key should be C", map.lastKey(), "C");
         assertEquals("First key in tail map should be B", 
@@ -113,30 +108,31 @@
         assertEquals("Last key in submap should be B",
            map.subMap("A","C").lastKey(), "B");
         
-        Comparator c = map.comparator();
+        Comparator<?> c = map.comparator();
         assertTrue("natural order, so comparator should be null", 
             c == null);      
     } 
     
     public void testTransformerDecorate() {
-        Transformer transformer = TransformerUtils.asTransformer(oneFactory);
-        SortedMap map = LazySortedMap.decorate(new TreeMap(), transformer);    
 
+        Transformer<Object, Integer> transformer = 
TransformerUtils.asTransformer(oneFactory);
+        SortedMap<Integer, Number> map = getLazySortedMap(new TreeMap<Integer, 
Number>(), transformer);     
         assertTrue(map instanceof LazySortedMap);  
          try {
-            map = LazySortedMap.decorate(new TreeMap(), (Transformer) null);
+            map = getLazySortedMap(new TreeMap<Integer, Number>(), 
(Transformer<Integer, Number>) null);
             fail("Expecting IllegalArgumentException for null transformer");
         } catch (IllegalArgumentException e) {
             // expected
         }
         try {
-            map = LazySortedMap.decorate(null, transformer);
+            map = getLazySortedMap((SortedMap<Integer,Number>) null, 
transformer);
             fail("Expecting IllegalArgumentException for null map");
         } catch (IllegalArgumentException e) {
             // expected
         } 
     }
     
-    public String getCompatibilityVersion() {
+    @Override
+       public String getCompatibilityVersion() {
         return "3.1";
     }
 


Reply via email to