You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by sc...@apache.org on 2004/04/09 12:32:25 UTC

cvs commit: jakarta-commons/collections/src/java/org/apache/commons/collections/map UnmodifiableMap.java

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: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org