scolebourne    2004/04/09 03:32:25

  Modified:    collections/src/test/org/apache/commons/collections/map
                        TestUnmodifiableMap.java
               collections/src/java/org/apache/commons/collections/map
                        UnmodifiableMap.java
  Added:       collections/data/test
                        UnmodifiableMap.emptyCollection.version3.1.obj
                        UnmodifiableMap.fullCollection.version3.1.obj
  Log:
  Make UnmodifiableMap Serializable [18815]
  
  Revision  Changes    Path
  1.9       +15 -1     
jakarta-commons/collections/src/test/org/apache/commons/collections/map/TestUnmodifiableMap.java
  
  Index: TestUnmodifiableMap.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/collections/src/test/org/apache/commons/collections/map/TestUnmodifiableMap.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- TestUnmodifiableMap.java  18 Feb 2004 01:20:37 -0000      1.8
  +++ TestUnmodifiableMap.java  9 Apr 2004 10:32:25 -0000       1.9
  @@ -87,4 +87,18 @@
           } catch (IllegalArgumentException ex) {}
       }
   
  +    public String getCompatibilityVersion() {
  +        return "3.1";
  +    }
  +
  +    public void testCreate() throws Exception {
  +        resetEmpty();
  +        writeExternalFormToDisk(
  +            (java.io.Serializable) map,
  +            
"D:/dev/collections/data/test/UnmodifiableMap.emptyCollection.version3.1.obj");
  +        resetFull();
  +        writeExternalFormToDisk(
  +            (java.io.Serializable) map,
  +            
"D:/dev/collections/data/test/UnmodifiableMap.fullCollection.version3.1.obj");
  +    }
   }
  
  
  
  1.1                  
jakarta-commons/collections/data/test/UnmodifiableMap.emptyCollection.version3.1.obj
  
        <<Binary file>>
  
  
  1.1                  
jakarta-commons/collections/data/test/UnmodifiableMap.fullCollection.version3.1.obj
  
        <<Binary file>>
  
  
  1.10      +38 -2     
jakarta-commons/collections/src/java/org/apache/commons/collections/map/UnmodifiableMap.java
  
  Index: UnmodifiableMap.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/collections/src/java/org/apache/commons/collections/map/UnmodifiableMap.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- UnmodifiableMap.java      18 Feb 2004 01:13:19 -0000      1.9
  +++ UnmodifiableMap.java      9 Apr 2004 10:32:25 -0000       1.10
  @@ -15,6 +15,10 @@
    */
   package org.apache.commons.collections.map;
   
  +import java.io.IOException;
  +import java.io.ObjectInputStream;
  +import java.io.ObjectOutputStream;
  +import java.io.Serializable;
   import java.util.Collection;
   import java.util.Map;
   import java.util.Set;
  @@ -29,6 +33,8 @@
   
   /**
    * Decorates another <code>Map</code> to ensure it can't be altered.
  + * <p>
  + * This class is Serializable from Commons Collections 3.1.
    *
    * @since Commons Collections 3.0
    * @version $Revision$ $Date$
  @@ -36,7 +42,11 @@
    * @author Stephen Colebourne
    */
   public final class UnmodifiableMap
  -        extends AbstractMapDecorator implements IterableMap, Unmodifiable {
  +        extends AbstractMapDecorator
  +        implements IterableMap, Unmodifiable, Serializable {
  +
  +    /** Serialization version */
  +    private static final long serialVersionUID = 2737023427269031941L;
   
       /**
        * Factory method to create an unmodifiable map.
  @@ -60,6 +70,32 @@
        */
       private UnmodifiableMap(Map map) {
           super(map);
  +    }
  +
  +    //-----------------------------------------------------------------------
  +    /**
  +     * Write the map out using a custom routine.
  +     * 
  +     * @param out  the output stream
  +     * @throws IOException
  +     * @since Commons Collections 3.1
  +     */
  +    private void writeObject(ObjectOutputStream out) throws IOException {
  +        out.defaultWriteObject();
  +        out.writeObject(map);
  +    }
  +
  +    /**
  +     * Read the map in using a custom routine.
  +     * 
  +     * @param in  the input stream
  +     * @throws IOException
  +     * @throws ClassNotFoundException
  +     * @since Commons Collections 3.1
  +     */
  +    private void readObject(ObjectInputStream in) throws IOException, 
ClassNotFoundException {
  +        in.defaultReadObject();
  +        map = (Map) in.readObject();
       }
   
       //-----------------------------------------------------------------------
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to