scolebourne    2004/06/02 14:54:46

  Added:       collections/src/java/org/apache/commons/collections/collection
                        AbstractSerializableCollectionDecorator.java
               collections/src/java/org/apache/commons/collections/set
                        AbstractSerializableSetDecorator.java
               collections/src/java/org/apache/commons/collections/list
                        AbstractSerializableListDecorator.java
  Log:
  Make decorator classes serializable, bug 18815
  
  Revision  Changes    Path
  1.1                  
jakarta-commons/collections/src/java/org/apache/commons/collections/collection/AbstractSerializableCollectionDecorator.java
  
  Index: AbstractSerializableCollectionDecorator.java
  ===================================================================
  /*
   *  Copyright 2004 The Apache Software Foundation
   *
   *  Licensed under the Apache License, Version 2.0 (the "License");
   *  you may not use this file except in compliance with the License.
   *  You may obtain a copy of the License at
   *
   *      http://www.apache.org/licenses/LICENSE-2.0
   *
   *  Unless required by applicable law or agreed to in writing, software
   *  distributed under the License is distributed on an "AS IS" BASIS,
   *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   *  See the License for the specific language governing permissions and
   *  limitations under the License.
   */
  package org.apache.commons.collections.collection;
  
  import java.io.IOException;
  import java.io.ObjectInputStream;
  import java.io.ObjectOutputStream;
  import java.io.Serializable;
  import java.util.Collection;
  
  /**
   * Serializable subclass of AbstractCollectionDecorator.
   * 
   * @author Stephen Colebourne
   * @since Commons Collections 3.1
   */
  public abstract class AbstractSerializableCollectionDecorator
          extends AbstractCollectionDecorator
          implements Serializable {
  
      /** Serialization version */
      private static final long serialVersionUID = 6249888059822088500L;
  
      /**
       * Constructor.
       */
      protected AbstractSerializableCollectionDecorator(Collection coll) {
          super(coll);
      }
  
      //-----------------------------------------------------------------------
      /**
       * Write the collection out using a custom routine.
       * 
       * @param out  the output stream
       * @throws IOException
       */
      private void writeObject(ObjectOutputStream out) throws IOException {
          out.defaultWriteObject();
          out.writeObject(collection);
      }
  
      /**
       * Read the collection in using a custom routine.
       * 
       * @param in  the input stream
       * @throws IOException
       * @throws ClassNotFoundException
       */
      private void readObject(ObjectInputStream in) throws IOException, 
ClassNotFoundException {
          in.defaultReadObject();
          collection = (Collection) in.readObject();
      }
  
  }
  
  
  
  1.1                  
jakarta-commons/collections/src/java/org/apache/commons/collections/set/AbstractSerializableSetDecorator.java
  
  Index: AbstractSerializableSetDecorator.java
  ===================================================================
  /*
   *  Copyright 2004 The Apache Software Foundation
   *
   *  Licensed under the Apache License, Version 2.0 (the "License");
   *  you may not use this file except in compliance with the License.
   *  You may obtain a copy of the License at
   *
   *      http://www.apache.org/licenses/LICENSE-2.0
   *
   *  Unless required by applicable law or agreed to in writing, software
   *  distributed under the License is distributed on an "AS IS" BASIS,
   *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   *  See the License for the specific language governing permissions and
   *  limitations under the License.
   */
  package org.apache.commons.collections.set;
  
  import java.io.IOException;
  import java.io.ObjectInputStream;
  import java.io.ObjectOutputStream;
  import java.io.Serializable;
  import java.util.Collection;
  import java.util.Set;
  
  /**
   * Serializable subclass of AbstractSetDecorator.
   * 
   * @author Stephen Colebourne
   * @since Commons Collections 3.1
   */
  public abstract class AbstractSerializableSetDecorator
          extends AbstractSetDecorator
          implements Serializable {
  
      /** Serialization version */
      private static final long serialVersionUID = 1229469966212206107L;
  
      /**
       * Constructor.
       */
      protected AbstractSerializableSetDecorator(Set set) {
          super(set);
      }
  
      //-----------------------------------------------------------------------
      /**
       * Write the set out using a custom routine.
       * 
       * @param out  the output stream
       * @throws IOException
       */
      private void writeObject(ObjectOutputStream out) throws IOException {
          out.defaultWriteObject();
          out.writeObject(collection);
      }
  
      /**
       * Read the set in using a custom routine.
       * 
       * @param in  the input stream
       * @throws IOException
       * @throws ClassNotFoundException
       */
      private void readObject(ObjectInputStream in) throws IOException, 
ClassNotFoundException {
          in.defaultReadObject();
          collection = (Collection) in.readObject();
      }
  
  }
  
  
  
  1.1                  
jakarta-commons/collections/src/java/org/apache/commons/collections/list/AbstractSerializableListDecorator.java
  
  Index: AbstractSerializableListDecorator.java
  ===================================================================
  /*
   *  Copyright 2004 The Apache Software Foundation
   *
   *  Licensed under the Apache License, Version 2.0 (the "License");
   *  you may not use this file except in compliance with the License.
   *  You may obtain a copy of the License at
   *
   *      http://www.apache.org/licenses/LICENSE-2.0
   *
   *  Unless required by applicable law or agreed to in writing, software
   *  distributed under the License is distributed on an "AS IS" BASIS,
   *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   *  See the License for the specific language governing permissions and
   *  limitations under the License.
   */
  package org.apache.commons.collections.list;
  
  import java.io.IOException;
  import java.io.ObjectInputStream;
  import java.io.ObjectOutputStream;
  import java.io.Serializable;
  import java.util.Collection;
  import java.util.List;
  
  /**
   * Serializable subclass of AbstractListDecorator.
   * 
   * @author Stephen Colebourne
   * @since Commons Collections 3.1
   */
  public abstract class AbstractSerializableListDecorator
          extends AbstractListDecorator
          implements Serializable {
  
      /** Serialization version */
      private static final long serialVersionUID = 2684959196747496299L;
  
      /**
       * Constructor.
       */
      protected AbstractSerializableListDecorator(List list) {
          super(list);
      }
  
      //-----------------------------------------------------------------------
      /**
       * Write the list out using a custom routine.
       * 
       * @param out  the output stream
       * @throws IOException
       */
      private void writeObject(ObjectOutputStream out) throws IOException {
          out.defaultWriteObject();
          out.writeObject(collection);
      }
  
      /**
       * Read the list in using a custom routine.
       * 
       * @param in  the input stream
       * @throws IOException
       * @throws ClassNotFoundException
       */
      private void readObject(ObjectInputStream in) throws IOException, 
ClassNotFoundException {
          in.defaultReadObject();
          collection = (Collection) in.readObject();
      }
  
  }
  
  
  

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

Reply via email to