You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by rw...@apache.org on 2003/02/28 01:17:57 UTC
cvs commit: jakarta-commons/collections/src/test/org/apache/commons/collections/primitives/adapters TestListIntList.java
rwaldhoff 2003/02/27 16:17:56
Modified: collections/src/java/org/apache/commons/collections/primitives
AbstractRandomAccessIntList.java
collections/src/java/org/apache/commons/collections/primitives/adapters
CollectionIntCollection.java ListIntList.java
collections/src/test/org/apache/commons/collections/primitives
TestArrayIntList.java
TestArrayUnsignedShortList.java TestIntList.java
collections/src/test/org/apache/commons/collections/primitives/adapters
TestListIntList.java
Added: collections/src/java/org/apache/commons/collections/primitives/adapters
AbstractCollectionIntCollection.java
AbstractListIntList.java
NonSerializableCollectionIntCollection.java
NonSerializableListIntList.java
Log:
toward better serialization contract support in sublists
Revision Changes Path
1.12 +5 -6 jakarta-commons/collections/src/java/org/apache/commons/collections/primitives/AbstractRandomAccessIntList.java
Index: AbstractRandomAccessIntList.java
===================================================================
RCS file: /home/cvs/jakarta-commons/collections/src/java/org/apache/commons/collections/primitives/AbstractRandomAccessIntList.java,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- AbstractRandomAccessIntList.java 26 Feb 2003 19:17:22 -0000 1.11
+++ AbstractRandomAccessIntList.java 28 Feb 2003 00:17:52 -0000 1.12
@@ -57,7 +57,6 @@
package org.apache.commons.collections.primitives;
-import java.io.Serializable;
import java.util.ConcurrentModificationException;
import java.util.NoSuchElementException;
@@ -79,7 +78,7 @@
*
* @author Rodney Waldhoff
*/
-public abstract class AbstractRandomAccessIntList extends AbstractIntCollection implements IntList, Serializable {
+public abstract class AbstractRandomAccessIntList extends AbstractIntCollection implements IntList {
// constructors
//-------------------------------------------------------------------------
@@ -251,7 +250,7 @@
// inner classes
//-------------------------------------------------------------------------
- private static class ComodChecker implements Serializable {
+ private static class ComodChecker {
ComodChecker(AbstractRandomAccessIntList source) {
_source = source;
resyncModCount();
@@ -368,7 +367,7 @@
private int _lastReturnedIndex = -1;
}
- protected static class RandomAccessIntSubList extends AbstractRandomAccessIntList implements IntList, Serializable {
+ protected static class RandomAccessIntSubList extends AbstractRandomAccessIntList implements IntList {
RandomAccessIntSubList(AbstractRandomAccessIntList list, int fromIndex, int toIndex) {
if(fromIndex < 0 || toIndex > list.size() || fromIndex > toIndex) {
throw new IndexOutOfBoundsException();
1.5 +14 -100 jakarta-commons/collections/src/java/org/apache/commons/collections/primitives/adapters/CollectionIntCollection.java
Index: CollectionIntCollection.java
===================================================================
RCS file: /home/cvs/jakarta-commons/collections/src/java/org/apache/commons/collections/primitives/adapters/CollectionIntCollection.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- CollectionIntCollection.java 26 Feb 2003 19:17:23 -0000 1.4
+++ CollectionIntCollection.java 28 Feb 2003 00:17:53 -0000 1.5
@@ -61,7 +61,6 @@
import java.util.Collection;
import org.apache.commons.collections.primitives.IntCollection;
-import org.apache.commons.collections.primitives.IntIterator;
/**
* Adapts a {@link java.lang.Number Number}-valued
@@ -76,7 +75,7 @@
* @version $Revision$ $Date$
* @author Rodney Waldhoff
*/
-public class CollectionIntCollection implements IntCollection, Serializable {
+public class CollectionIntCollection extends AbstractCollectionIntCollection implements Serializable {
/**
* Create an {@link IntCollection IntCollection} wrapping
* the specified {@link Collection Collection}. When
@@ -89,7 +88,13 @@
* <code>null</code>.
*/
public static IntCollection wrap(Collection collection) {
- return null == collection ? null : new CollectionIntCollection(collection);
+ if(null == collection) {
+ return null;
+ } else if(collection instanceof Serializable) {
+ return new CollectionIntCollection(collection);
+ } else {
+ return new NonSerializableCollectionIntCollection(collection);
+ }
}
/**
@@ -106,101 +111,10 @@
public CollectionIntCollection(Collection collection) {
_collection = collection;
}
-
- public boolean add(int element) {
- return _collection.add(new Integer(element));
- }
-
- public boolean addAll(IntCollection c) {
- return _collection.addAll(IntCollectionCollection.wrap(c));
- }
-
- public void clear() {
- _collection.clear();
- }
-
- public boolean contains(int element) {
- return _collection.contains(new Integer(element));
- }
-
- public boolean containsAll(IntCollection c) {
- return _collection.containsAll(IntCollectionCollection.wrap(c));
- }
-
- /**
- * If <i>that</i> is an {@link IntCollection IntCollection},
- * it is {@link IntCollectionCollection#wrap wrapped} and
- * compared to my underlying {@link Collection Collection}, otherwise
- * this method simply delegates to my underlying
- * {@link Collection Collection}.
- */
- public boolean equals(Object that) {
- if(that instanceof IntCollection) {
- return _collection.equals(IntCollectionCollection.wrap((IntCollection)that));
- } else {
- return _collection.equals(that);
- }
- }
-
- public int hashCode() {
- return _collection.hashCode();
- }
-
- public String toString() {
- return _collection.toString();
- }
-
- public boolean isEmpty() {
- return _collection.isEmpty();
- }
-
- /**
- * {@link IteratorIntIterator#wrap wraps} the
- * {@link java.util.Iterator Iterator}
- * returned by my underlying
- * {@link Collection Collection},
- * if any.
- */
- public IntIterator iterator() {
- return IteratorIntIterator.wrap(_collection.iterator());
- }
-
- public boolean removeElement(int element) {
- return _collection.remove(new Integer(element));
- }
-
- public boolean removeAll(IntCollection c) {
- return _collection.removeAll(IntCollectionCollection.wrap(c));
- }
-
- public boolean retainAll(IntCollection c) {
- return _collection.retainAll(IntCollectionCollection.wrap(c));
- }
- public int size() {
- return _collection.size();
+ protected Collection getCollection() {
+ return _collection;
}
-
- public int[] toArray() {
- Object[] src = _collection.toArray();
- int[] dest = new int[src.length];
- for(int i=0;i<src.length;i++) {
- dest[i] = ((Number)(src[i])).intValue();
- }
- return dest;
- }
-
- public int[] toArray(int[] dest) {
- Object[] src = _collection.toArray();
- if(dest.length < src.length) {
- dest = new int[src.length];
- }
- for(int i=0;i<src.length;i++) {
- dest[i] = ((Number)(src[i])).intValue();
- }
- return dest;
- }
-
- private Collection _collection = null;
-
+
+ private Collection _collection = null;
}
1.6 +14 -84 jakarta-commons/collections/src/java/org/apache/commons/collections/primitives/adapters/ListIntList.java
Index: ListIntList.java
===================================================================
RCS file: /home/cvs/jakarta-commons/collections/src/java/org/apache/commons/collections/primitives/adapters/ListIntList.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- ListIntList.java 26 Feb 2003 19:17:23 -0000 1.5
+++ ListIntList.java 28 Feb 2003 00:17:53 -0000 1.6
@@ -60,10 +60,7 @@
import java.io.Serializable;
import java.util.List;
-import org.apache.commons.collections.primitives.IntCollection;
-import org.apache.commons.collections.primitives.IntIterator;
import org.apache.commons.collections.primitives.IntList;
-import org.apache.commons.collections.primitives.IntListIterator;
/**
* Adapts a {@link Number}-valued {@link List List}
@@ -77,7 +74,7 @@
* @version $Revision$ $Date$
* @author Rodney Waldhoff
*/
-public class ListIntList extends CollectionIntCollection implements IntList, Serializable {
+public class ListIntList extends AbstractListIntList implements Serializable {
/**
* Create an {@link IntList IntList} wrapping
@@ -92,7 +89,13 @@
* <code>null</code>.
*/
public static IntList wrap(List list) {
- return null == list ? null : new ListIntList(list);
+ if(null == list) {
+ return null;
+ } else if(list instanceof Serializable) {
+ return new ListIntList(list);
+ } else {
+ return new NonSerializableListIntList(list);
+ }
}
/**
@@ -107,86 +110,13 @@
* @see #wrap
*/
public ListIntList(List list) {
- super(list);
- _list = list;
+ _list = list;
}
- public void add(int index, int element) {
- _list.add(index,new Integer(element));
- }
-
- public boolean addAll(int index, IntCollection collection) {
- return _list.addAll(index,IntCollectionCollection.wrap(collection));
- }
-
- public int get(int index) {
- return ((Number)_list.get(index)).intValue();
- }
-
- public int indexOf(int element) {
- return _list.indexOf(new Integer(element));
- }
-
- public int lastIndexOf(int element) {
- return _list.lastIndexOf(new Integer(element));
- }
-
- /**
- * {@link ListIteratorIntListIterator#wrap wraps} the
- * {@link IntList IntList}
- * returned by my underlying
- * {@link IntListIterator IntListIterator},
- * if any.
- */
- public IntListIterator listIterator() {
- return ListIteratorIntListIterator.wrap(_list.listIterator());
- }
-
- /**
- * {@link ListIteratorIntListIterator#wrap wraps} the
- * {@link IntList IntList}
- * returned by my underlying
- * {@link IntListIterator IntListIterator},
- * if any.
- */
- public IntListIterator listIterator(int index) {
- return ListIteratorIntListIterator.wrap(_list.listIterator(index));
- }
-
- public int removeElementAt(int index) {
- return ((Number)_list.remove(index)).intValue();
- }
-
- public int set(int index, int element) {
- return ((Number)_list.set(index,new Integer(element))).intValue();
- }
-
- public IntList subList(int fromIndex, int toIndex) {
- return ListIntList.wrap(_list.subList(fromIndex,toIndex));
- }
-
- public boolean equals(Object obj) {
- if(obj instanceof IntList) {
- IntList that = (IntList)obj;
- if(this == that) {
- return true;
- } else if(this.size() != that.size()) {
- return false;
- } else {
- IntIterator thisiter = iterator();
- IntIterator thatiter = that.iterator();
- while(thisiter.hasNext()) {
- if(thisiter.next() != thatiter.next()) {
- return false;
- }
- }
- return true;
- }
- } else {
- return false;
- }
+ protected List getList() {
+ return _list;
}
private List _list = null;
-
+
}
1.1 jakarta-commons/collections/src/java/org/apache/commons/collections/primitives/adapters/AbstractCollectionIntCollection.java
Index: AbstractCollectionIntCollection.java
===================================================================
/*
* $Header: /home/cvs/jakarta-commons/collections/src/java/org/apache/commons/collections/primitives/adapters/AbstractCollectionIntCollection.java,v 1.1 2003/02/28 00:17:53 rwaldhoff Exp $
* ====================================================================
* The Apache Software License, Version 1.1
*
* Copyright (c) 2003 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution, if
* any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "The Jakarta Project", "Commons", and "Apache Software
* Foundation" must not be used to endorse or promote products derived
* from this software without prior written permission. For written
* permission, please contact apache@apache.org.
*
* 5. Products derived from this software may not be called "Apache"
* nor may "Apache" appear in their names without prior written
* permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*
*/
package org.apache.commons.collections.primitives.adapters;
import java.util.Collection;
import org.apache.commons.collections.primitives.IntCollection;
import org.apache.commons.collections.primitives.IntIterator;
/**
* @since Commons Collections 2.2
* @version $Revision: 1.1 $ $Date: 2003/02/28 00:17:53 $
* @author Rodney Waldhoff
*/
abstract class AbstractCollectionIntCollection implements IntCollection {
protected AbstractCollectionIntCollection() {
}
public boolean add(int element) {
return getCollection().add(new Integer(element));
}
public boolean addAll(IntCollection c) {
return getCollection().addAll(IntCollectionCollection.wrap(c));
}
public void clear() {
getCollection().clear();
}
public boolean contains(int element) {
return getCollection().contains(new Integer(element));
}
public boolean containsAll(IntCollection c) {
return getCollection().containsAll(IntCollectionCollection.wrap(c));
}
public String toString() {
return getCollection().toString();
}
public boolean isEmpty() {
return getCollection().isEmpty();
}
/**
* {@link IteratorIntIterator#wrap wraps} the
* {@link java.util.Iterator Iterator}
* returned by my underlying
* {@link Collection Collection},
* if any.
*/
public IntIterator iterator() {
return IteratorIntIterator.wrap(getCollection().iterator());
}
public boolean removeElement(int element) {
return getCollection().remove(new Integer(element));
}
public boolean removeAll(IntCollection c) {
return getCollection().removeAll(IntCollectionCollection.wrap(c));
}
public boolean retainAll(IntCollection c) {
return getCollection().retainAll(IntCollectionCollection.wrap(c));
}
public int size() {
return getCollection().size();
}
public int[] toArray() {
Object[] src = getCollection().toArray();
int[] dest = new int[src.length];
for(int i=0;i<src.length;i++) {
dest[i] = ((Number)(src[i])).intValue();
}
return dest;
}
public int[] toArray(int[] dest) {
Object[] src = getCollection().toArray();
if(dest.length < src.length) {
dest = new int[src.length];
}
for(int i=0;i<src.length;i++) {
dest[i] = ((Number)(src[i])).intValue();
}
return dest;
}
protected abstract Collection getCollection();
}
1.1 jakarta-commons/collections/src/java/org/apache/commons/collections/primitives/adapters/AbstractListIntList.java
Index: AbstractListIntList.java
===================================================================
/*
* $Header: /home/cvs/jakarta-commons/collections/src/java/org/apache/commons/collections/primitives/adapters/AbstractListIntList.java,v 1.1 2003/02/28 00:17:53 rwaldhoff Exp $
* ====================================================================
* The Apache Software License, Version 1.1
*
* Copyright (c) 2003 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution, if
* any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "The Jakarta Project", "Commons", and "Apache Software
* Foundation" must not be used to endorse or promote products derived
* from this software without prior written permission. For written
* permission, please contact apache@apache.org.
*
* 5. Products derived from this software may not be called "Apache"
* nor may "Apache" appear in their names without prior written
* permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*
*/
package org.apache.commons.collections.primitives.adapters;
import java.util.Collection;
import java.util.List;
import org.apache.commons.collections.primitives.IntCollection;
import org.apache.commons.collections.primitives.IntIterator;
import org.apache.commons.collections.primitives.IntList;
import org.apache.commons.collections.primitives.IntListIterator;
/**
*
* @since Commons Collections 2.2
* @version $Revision: 1.1 $ $Date: 2003/02/28 00:17:53 $
* @author Rodney Waldhoff
*/
abstract class AbstractListIntList extends AbstractCollectionIntCollection implements IntList {
public void add(int index, int element) {
getList().add(index,new Integer(element));
}
public boolean addAll(int index, IntCollection collection) {
return getList().addAll(index,IntCollectionCollection.wrap(collection));
}
public int get(int index) {
return ((Number)getList().get(index)).intValue();
}
public int indexOf(int element) {
return getList().indexOf(new Integer(element));
}
public int lastIndexOf(int element) {
return getList().lastIndexOf(new Integer(element));
}
/**
* {@link ListIteratorIntListIterator#wrap wraps} the
* {@link IntList IntList}
* returned by my underlying
* {@link IntListIterator IntListIterator},
* if any.
*/
public IntListIterator listIterator() {
return ListIteratorIntListIterator.wrap(getList().listIterator());
}
/**
* {@link ListIteratorIntListIterator#wrap wraps} the
* {@link IntList IntList}
* returned by my underlying
* {@link IntListIterator IntListIterator},
* if any.
*/
public IntListIterator listIterator(int index) {
return ListIteratorIntListIterator.wrap(getList().listIterator(index));
}
public int removeElementAt(int index) {
return ((Number)getList().remove(index)).intValue();
}
public int set(int index, int element) {
return ((Number)getList().set(index,new Integer(element))).intValue();
}
public IntList subList(int fromIndex, int toIndex) {
return ListIntList.wrap(getList().subList(fromIndex,toIndex));
}
public boolean equals(Object obj) {
if(obj instanceof IntList) {
IntList that = (IntList)obj;
if(this == that) {
return true;
} else if(this.size() != that.size()) {
return false;
} else {
IntIterator thisiter = iterator();
IntIterator thatiter = that.iterator();
while(thisiter.hasNext()) {
if(thisiter.next() != thatiter.next()) {
return false;
}
}
return true;
}
} else {
return false;
}
}
public int hashCode() {
return getList().hashCode();
}
final protected Collection getCollection() {
return getList();
}
abstract protected List getList();
}
1.1 jakarta-commons/collections/src/java/org/apache/commons/collections/primitives/adapters/NonSerializableCollectionIntCollection.java
Index: NonSerializableCollectionIntCollection.java
===================================================================
/*
* $Header: /home/cvs/jakarta-commons/collections/src/java/org/apache/commons/collections/primitives/adapters/NonSerializableCollectionIntCollection.java,v 1.1 2003/02/28 00:17:53 rwaldhoff Exp $
* ====================================================================
* The Apache Software License, Version 1.1
*
* Copyright (c) 2003 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution, if
* any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "The Jakarta Project", "Commons", and "Apache Software
* Foundation" must not be used to endorse or promote products derived
* from this software without prior written permission. For written
* permission, please contact apache@apache.org.
*
* 5. Products derived from this software may not be called "Apache"
* nor may "Apache" appear in their names without prior written
* permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*
*/
package org.apache.commons.collections.primitives.adapters;
import java.util.Collection;
/**
* @since Commons Collections 2.2
* @version $Revision: 1.1 $ $Date: 2003/02/28 00:17:53 $
* @author Rodney Waldhoff
*/
class NonSerializableCollectionIntCollection extends AbstractCollectionIntCollection {
public NonSerializableCollectionIntCollection(Collection collection) {
_collection = collection;
}
protected Collection getCollection() {
return _collection;
}
private Collection _collection = null;
}
1.1 jakarta-commons/collections/src/java/org/apache/commons/collections/primitives/adapters/NonSerializableListIntList.java
Index: NonSerializableListIntList.java
===================================================================
/*
* $Header: /home/cvs/jakarta-commons/collections/src/java/org/apache/commons/collections/primitives/adapters/NonSerializableListIntList.java,v 1.1 2003/02/28 00:17:53 rwaldhoff Exp $
* ====================================================================
* The Apache Software License, Version 1.1
*
* Copyright (c) 2003 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution, if
* any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "The Jakarta Project", "Commons", and "Apache Software
* Foundation" must not be used to endorse or promote products derived
* from this software without prior written permission. For written
* permission, please contact apache@apache.org.
*
* 5. Products derived from this software may not be called "Apache"
* nor may "Apache" appear in their names without prior written
* permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*
*/
package org.apache.commons.collections.primitives.adapters;
import java.util.List;
/**
*
* @since Commons Collections 2.2
* @version $Revision: 1.1 $ $Date: 2003/02/28 00:17:53 $
* @author Rodney Waldhoff
*/
class NonSerializableListIntList extends AbstractListIntList {
protected NonSerializableListIntList(List list) {
_list = list;
}
protected List getList() {
return _list;
}
private List _list = null;
}
1.9 +3 -3 jakarta-commons/collections/src/test/org/apache/commons/collections/primitives/TestArrayIntList.java
Index: TestArrayIntList.java
===================================================================
RCS file: /home/cvs/jakarta-commons/collections/src/test/org/apache/commons/collections/primitives/TestArrayIntList.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- TestArrayIntList.java 26 Feb 2003 19:17:23 -0000 1.8
+++ TestArrayIntList.java 28 Feb 2003 00:17:53 -0000 1.9
@@ -76,7 +76,7 @@
}
public static Test suite() {
- //TestSuite suite = BulkTest.makeSuite(TestArrayIntList.class);
+ // BulkTests won't work, sublists are not serializable
TestSuite suite = new TestSuite(TestArrayIntList.class);
return suite;
}
1.9 +3 -4 jakarta-commons/collections/src/test/org/apache/commons/collections/primitives/TestArrayUnsignedShortList.java
Index: TestArrayUnsignedShortList.java
===================================================================
RCS file: /home/cvs/jakarta-commons/collections/src/test/org/apache/commons/collections/primitives/TestArrayUnsignedShortList.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- TestArrayUnsignedShortList.java 26 Feb 2003 19:17:23 -0000 1.8
+++ TestArrayUnsignedShortList.java 28 Feb 2003 00:17:53 -0000 1.9
@@ -76,8 +76,7 @@
}
public static Test suite() {
- //TestSuite suite = BulkTest.makeSuite(TestArrayUnsignedShortList.class);
- //return suite;
+ // BulkTests won't work, sublists are not serializable
return new TestSuite(TestArrayUnsignedShortList.class);
}
1.6 +21 -2 jakarta-commons/collections/src/test/org/apache/commons/collections/primitives/TestIntList.java
Index: TestIntList.java
===================================================================
RCS file: /home/cvs/jakarta-commons/collections/src/test/org/apache/commons/collections/primitives/TestIntList.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- TestIntList.java 26 Feb 2003 19:17:23 -0000 1.5
+++ TestIntList.java 28 Feb 2003 00:17:53 -0000 1.6
@@ -173,6 +173,12 @@
two.add(1); two.add(2); two.add(3); two.add(5); two.add(8);
assertEquals("Larger non empty lists are equal",one,two);
assertEquals("Equals is symmetric on larger non empty list",two,one);
+
+ one.add(9);
+ two.add(10);
+ assertTrue(!one.equals(two));
+ assertTrue(!two.equals(one));
+
}
public void testIntSubListEquals() {
@@ -290,5 +296,18 @@
assertEquals(deser,list);
}
+ public void testIntListSerializeDeserializeThenCompare() throws Exception {
+ IntList list = makeFullIntList();
+ if(list instanceof Serializable) {
+ byte[] ser = writeExternalFormToBytes((Serializable)list);
+ IntList deser = (IntList)(readExternalFormFromBytes(ser));
+ assertEquals("obj != deserialize(serialize(obj))",list,deser);
+ }
+ }
+
+ public void testSubListsAreNotSerializable() throws Exception {
+ IntList list = makeFullIntList().subList(2,3);
+ assertTrue( ! (list instanceof Serializable) );
+ }
}
1.2 +18 -7 jakarta-commons/collections/src/test/org/apache/commons/collections/primitives/adapters/TestListIntList.java
Index: TestListIntList.java
===================================================================
RCS file: /home/cvs/jakarta-commons/collections/src/test/org/apache/commons/collections/primitives/adapters/TestListIntList.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- TestListIntList.java 26 Feb 2003 19:17:24 -0000 1.1
+++ TestListIntList.java 28 Feb 2003 00:17:56 -0000 1.2
@@ -62,6 +62,7 @@
import junit.framework.Test;
import junit.framework.TestSuite;
+import org.apache.commons.collections.BulkTest;
import org.apache.commons.collections.primitives.IntList;
import org.apache.commons.collections.primitives.TestIntList;
@@ -79,16 +80,13 @@
}
public static Test suite() {
- //TestSuite suite = BulkTest.makeSuite(TestListIntList.class);
- // java.util.SubList is not serializable
- TestSuite suite = new TestSuite(TestListIntList.class);
+ TestSuite suite = BulkTest.makeSuite(TestListIntList.class);
return suite;
}
// collections testing framework
// ------------------------------------------------------------------------
-
/**
* @see org.apache.commons.collections.primitives.TestIntList#makeEmptyIntList()
*/
@@ -96,6 +94,20 @@
return new ListIntList(new ArrayList());
}
+ public String[] ignoredSimpleTests() {
+ // sublists are not serializable
+ return new String[] {
+ "TestListIntList.bulkTestSubList.testFullListSerialization",
+ "TestListIntList.bulkTestSubList.testEmptyListSerialization",
+ "TestListIntList.bulkTestSubList.testCanonicalEmptyCollectionExists",
+ "TestListIntList.bulkTestSubList.testCanonicalFullCollectionExists",
+ "TestListIntList.bulkTestSubList.testEmptyListCompatibility",
+ "TestListIntList.bulkTestSubList.testFullListCompatibility",
+ "TestListIntList.bulkTestSubList.testSerializeDeserializeThenCompare",
+ "TestListIntList.bulkTestSubList.testSimpleSerialization"
+ };
+ }
+
// tests
// ------------------------------------------------------------------------
@@ -122,6 +134,5 @@
// XXX FIX ME XXX
// need to add a serialized form to cvs
}
-
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org