From: <ms...@us...> - 2008-07-29 01:41:57
|
Revision: 8095 http://wonder.svn.sourceforge.net/wonder/?rev=8095&view=rev Author: mschrag Date: 2008-07-29 01:41:53 +0000 (Tue, 29 Jul 2008) Log Message: ----------- More Q generic patches to NSArray Modified Paths: -------------- trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSArray.java trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSMutableArray.java Modified: trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSArray.java =================================================================== --- trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSArray.java 2008-07-28 23:22:57 UTC (rev 8094) +++ trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSArray.java 2008-07-29 01:41:53 UTC (rev 8095) @@ -170,8 +170,8 @@ protected static int _NSArrayClassHashCode; protected transient int _capacity; protected transient int _count; - protected E[] _objects; - protected transient E[] _objectsCache; + protected Object _objects[]; + protected transient Object _objectsCache[]; protected transient int _hashCache; private transient boolean _recomputeHashCode; private static final ObjectStreamField serialPersistentFields[] = { new ObjectStreamField("objects", ((Object) (new Object[0])).getClass()) }; @@ -215,7 +215,7 @@ protected void _initializeWithCapacity(int capacity) { _capacity = capacity; _count = 0; - _objects = capacity <= 0 ? null : (E[])new Object[capacity]; + _objects = capacity <= 0 ? null : new Object[capacity]; _objectsCache = null; _setMustRecomputeHash(true); } @@ -235,7 +235,7 @@ capacity = testCapacity; } } - _objects = _objects != null ? (E[])_NSCollectionPrimitives.copyArray(_objects, capacity) : (E[])new Object[capacity]; + _objects = _objects != null ? _NSCollectionPrimitives.copyArray(_objects, capacity) : new Object[capacity]; } _capacity = capacity; } @@ -270,7 +270,7 @@ } _initializeWithCapacity(rangeLength); if (rangeLength > 0) { - System.arraycopy(((Object) (objects)), rangeLocation, ((Object) (_objects)), 0, rangeLength); + System.arraycopy(objects, rangeLocation, _objects, 0, rangeLength); } _count = rangeLength; } @@ -315,7 +315,7 @@ int rangeLength = range.length(); _initializeWithCapacity(count); for (int i = 0; i < rangeLength; i++) { - E object = vector.elementAt(i + rangeLocation); + Object object = vector.elementAt(i + rangeLocation); if (object != null) { _objects[_count++] = object; continue; @@ -354,7 +354,7 @@ /* 476*/ int rangeLength = range.length(); /* 478*/ _initializeWithCapacity(count); /* 479*/ for(int i = 0; i < rangeLength; i++) { -/* 480*/ E object = list.get(i + rangeLocation); +/* 480*/ Object object = list.get(i + rangeLocation); /* 481*/ if(object != null) /* 482*/ _objects[_count++] = object; /* 483*/ else @@ -368,13 +368,13 @@ protected Object[] objectsNoCopy() { if (_objectsCache == null) { if (_count == 0) { - _objectsCache = (E[])_NSCollectionPrimitives.EmptyArray; + _objectsCache = _NSCollectionPrimitives.EmptyArray; } else if (_count == _capacity) { _objectsCache = _objects; } else { - _objectsCache = (E[])_NSCollectionPrimitives.copyArray(_objects, _count); + _objectsCache = _NSCollectionPrimitives.copyArray(_objects, _count); } } return _objectsCache; @@ -420,22 +420,22 @@ return (NSArray<E>) clone(); } else { - E objects[] = (E[]) new Object[count + otherCount]; - System.arraycopy(((Object) (objectsNoCopy())), 0, ((Object) (objects)), 0, count); - System.arraycopy(((Object) (otherArray.objectsNoCopy())), 0, ((Object) (objects)), count, otherCount); - return new NSArray(objects, 0, count + otherCount, false); + E objects[] = (E[])new Object[count + otherCount]; + System.arraycopy(objectsNoCopy(), 0, objects, 0, count); + System.arraycopy(otherArray.objectsNoCopy(), 0, objects, count, otherCount); + return new NSArray<E>(objects, 0, count + otherCount, false); } } else { - return new NSArray(this); + return new NSArray<E>(this); } } public Object[] objects() { int count = count(); - E objects[] = (E[]) new Object[count]; + Object objects[] = new Object[count]; if (count > 0) { - System.arraycopy(((Object) (objectsNoCopy())), 0, ((Object) (objects)), 0, count); + System.arraycopy(objectsNoCopy(), 0, objects, 0, count); } return objects; } @@ -445,17 +445,16 @@ return _NSCollectionPrimitives.EmptyArray; } else { - int count = count(); int rangeLength = range.length(); - E[] objects = (E[]) new Object[rangeLength]; - System.arraycopy(((Object) (objectsNoCopy())), range.location(), ((Object) (objects)), 0, rangeLength); + Object objects[] = new Object[rangeLength]; + System.arraycopy(objectsNoCopy(), range.location(), objects, 0, rangeLength); return objects; } } public Vector<E> vector() { - Vector vector = new Vector(); - Object objects[] = objectsNoCopy(); + Vector<E> vector = new Vector<E>(); + E objects[] = (E[])objectsNoCopy(); for (int i = 0; i < objects.length; i++) { vector.addElement(objects[i]); } @@ -464,8 +463,8 @@ } public ArrayList<E> arrayList() { - Object objects[] = objectsNoCopy(); - ArrayList list = new ArrayList(objects.length); + E objects[] = (E[])objectsNoCopy(); + ArrayList<E> list = new ArrayList<E>(objects.length); for (int i = 0; i < objects.length; i++) { list.add(objects[i]); } @@ -488,7 +487,7 @@ } int otherCount = otherArray.count(); if (otherCount > 0) { - E[] objects = (E[])objectsNoCopy(); + Object objects[] = objectsNoCopy(); for (int i = 0; i < objects.length; i++) { if (otherArray.containsObject(objects[i])) { return objects[i]; @@ -1000,13 +999,11 @@ return objects; } - if(objects.length < _objects.length) { - objects = (T[]) java.lang.reflect.Array.newInstance(objects.getClass().getComponentType(), _objects.length); - } - for (int i = 0; i < _objects.length; i++) { - objects[i] = (T) _objects[i]; - } - return objects; + if (objects.length < _objects.length) { + objects = (T[])java.lang.reflect.Array.newInstance(objects.getClass().getComponentType(), _objects.length); + } + System.arraycopy(_objects, 0, objects, 0, _objects.length); + return objects; } public boolean containsAll(Collection<?> c) { Modified: trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSMutableArray.java =================================================================== --- trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSMutableArray.java 2008-07-28 23:22:57 UTC (rev 8094) +++ trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSMutableArray.java 2008-07-29 01:41:53 UTC (rev 8095) @@ -321,7 +321,7 @@ if (sourceIndex < 0 || sourceIndex >= _count || destIndex < 0 || destIndex >= _count) throw new IllegalArgumentException("Either source(" + sourceIndex + ") or destination(" + destIndex + ") is illegal."); - E temp = _objects[sourceIndex]; + Object temp = _objects[sourceIndex]; int boundary; int index; int direction; @@ -359,7 +359,7 @@ if (object == null) throw new IllegalArgumentException("Attempt to insert null into an " + getClass().getName() + "."); if (index >= 0 && index < _count) { - E result = _objects[index]; + Object result = _objects[index]; _objects[index] = object; clearCache(); return result; @@ -388,7 +388,7 @@ } int offset = 0; for(int i = 0; i < count; i++) { - E o = _objects[i]; + Object o = _objects[i]; _objects[i] = null; if (!table.containsObject(o)) { _objects[offset] = o; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ms...@us...> - 2008-07-29 13:44:56
|
Revision: 8096 http://wonder.svn.sourceforge.net/wonder/?rev=8096&view=rev Author: mschrag Date: 2008-07-29 13:44:53 +0000 (Tue, 29 Jul 2008) Log Message: ----------- more Q generic fixes Modified Paths: -------------- trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSArray.java trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSDictionary.java trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSMutableArray.java trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSMutableDictionary.java trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSMutableSet.java trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSSet.java Modified: trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSArray.java =================================================================== --- trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSArray.java 2008-07-29 01:41:53 UTC (rev 8095) +++ trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSArray.java 2008-07-29 13:44:53 UTC (rev 8096) @@ -167,7 +167,7 @@ static final long serialVersionUID = -3789592578296478260L; private static final String SerializationValuesFieldKey = "objects"; private static NSMutableDictionary _operators = new NSMutableDictionary(8); - protected static int _NSArrayClassHashCode; + protected static final int _NSArrayClassHashCode; protected transient int _capacity; protected transient int _count; protected Object _objects[]; @@ -403,7 +403,7 @@ else { int count = count(); Object objects[] = new Object[count + 1]; - System.arraycopy(((Object) (objectsNoCopy())), 0, ((Object) (objects)), 0, count); + System.arraycopy(objectsNoCopy(), 0, objects, 0, count); objects[count] = object; return new NSArray(objects, 0, count + 1, false); } @@ -507,7 +507,7 @@ throw new IllegalArgumentException("Object buffer cannot be null"); } else { - System.arraycopy(((Object) (objectsNoCopy())), 0, ((Object) (objects)), 0, count()); + System.arraycopy(objectsNoCopy(), 0, objects, 0, count()); return; } } @@ -524,7 +524,7 @@ throw new IllegalArgumentException("Range cannot be null"); } else { - System.arraycopy(((Object) (objectsNoCopy())), range.location(), ((Object) (objects)), 0, range.length()); + System.arraycopy(objectsNoCopy(), range.location(), objects, 0, range.length()); return; } } Modified: trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSDictionary.java =================================================================== --- trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSDictionary.java 2008-07-29 01:41:53 UTC (rev 8095) +++ trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSDictionary.java 2008-07-29 13:44:53 UTC (rev 8096) @@ -30,7 +30,6 @@ * @param <V> * type of value contents */ -@SuppressWarnings("unchecked") public class NSDictionary<K, V> implements Cloneable, Serializable, NSCoding, NSKeyValueCoding, NSKeyValueCodingAdditions, _NSFoundationCollection, Map<K, V> { public class _JavaNSDictionaryMapEntry<P, Q> implements java.util.Map.Entry<P, Q> { @@ -435,7 +434,7 @@ } public Object valueForKey(String key) { - Object value = objectForKey((K) key); + Object value = objectForKey(key); if (value == null && key != null) { if (key.equals("allValues")) { return allValues(); @@ -455,7 +454,7 @@ } public Object valueForKeyPath(String keyPath) { - Object flattenedKeyPresent = objectForKey((K) keyPath); + Object flattenedKeyPresent = objectForKey(keyPath); if (flattenedKeyPresent != null) { return flattenedKeyPresent; } @@ -495,7 +494,7 @@ Object keys[] = keysNoCopy(); for (int i = 0; i < keys.length; i++) { coder.encodeObject(keys[i]); - coder.encodeObject(objectForKey((K) keys[i])); + coder.encodeObject(objectForKey(keys[i])); } } @@ -527,7 +526,7 @@ Object keys[] = keysNoCopy(); for (int i = 0; i < keys.length; i++) { Object key = keys[i]; - Object object = objectForKey((K) key); + Object object = objectForKey(key); buffer.append(key.toString()); buffer.append(" = "); if (object instanceof String) { Modified: trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSMutableArray.java =================================================================== --- trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSMutableArray.java 2008-07-29 01:41:53 UTC (rev 8095) +++ trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSMutableArray.java 2008-07-29 13:44:53 UTC (rev 8096) @@ -164,7 +164,7 @@ public void removeAllObjects() { if (_count > 0) { - _objects = (E[])new Object[_capacity]; + _objects = new Object[_capacity]; _count = 0; clearCache(); } @@ -412,11 +412,11 @@ public <T> T[] toArray(T array[]) { int i = size(); if (array.length < i) { - array = (T[]) Array.newInstance(((Object) (array)).getClass().getComponentType(), i); + array = (T[]) Array.newInstance(array.getClass().getComponentType(), i); } - T result[] = array; + Object result[] = array; for (int j = 0; j < i; j++) { - result[j] = (T) objectAtIndex(j); + result[j] = objectAtIndex(j); } if (array.length > i) { @@ -452,9 +452,9 @@ public boolean addAll(int index, Collection<? extends E> collection) { boolean modified = false; if(collection == this) { - collection = ((NSMutableArray)collection).immutableClone(); + collection = ((NSMutableArray<? extends E>)collection).immutableClone(); } - Iterator<E> e = (Iterator<E>) collection.iterator(); + Iterator<? extends E> e = collection.iterator(); while (e.hasNext()) { add(index++, e.next()); modified = true; Modified: trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSMutableDictionary.java =================================================================== --- trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSMutableDictionary.java 2008-07-29 01:41:53 UTC (rev 8095) +++ trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSMutableDictionary.java 2008-07-29 13:44:53 UTC (rev 8096) @@ -173,7 +173,6 @@ return (NSMutableDictionary<K, V>) clone(); } - @SuppressWarnings("hiding") public static final Class _CLASS = _NSUtilitiesExtra._classWithFullySpecifiedNamePrime("com.webobjects.foundation.NSMutableDictionary"); static final long serialVersionUID = 6690723083816355576L; Modified: trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSMutableSet.java =================================================================== --- trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSMutableSet.java 2008-07-29 01:41:53 UTC (rev 8095) +++ trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSMutableSet.java 2008-07-29 13:44:53 UTC (rev 8096) @@ -19,7 +19,6 @@ //TODO iterator.remove() throws unimplemented -@SuppressWarnings("unchecked") public class NSMutableSet<E> extends NSSet<E> { public NSMutableSet() { @@ -85,7 +84,7 @@ public void removeAllObjects() { if (_count != 0) { - _objects = (E[])new Object[_hashtableBuckets]; + _objects = new Object[_hashtableBuckets]; _flags = new byte[_hashtableBuckets]; _count = 0; _objectsCache = null; Modified: trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSSet.java =================================================================== --- trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSSet.java 2008-07-29 01:41:53 UTC (rev 8095) +++ trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSSet.java 2008-07-29 13:44:53 UTC (rev 8096) @@ -24,7 +24,6 @@ * @param <T> * type of set contents */ -@SuppressWarnings("unchecked") public class NSSet<E> implements Cloneable, Serializable, NSCoding, _NSFoundationCollection, Set<E> { public static final Class _CLASS; @@ -59,9 +58,9 @@ protected transient int _hashtableBuckets; - protected E[] _objects; + protected Object[] _objects; - protected transient E[] _objectsCache; + protected transient Object[] _objectsCache; public NSSet() { _initializeSet(); @@ -80,7 +79,7 @@ throw new IllegalArgumentException("Set cannot be null"); } else { - E aSet[] = (E[]) set.toArray(); + Object aSet[] = set.toArray(); initFromObjects(aSet, ignoreNull); return; } @@ -109,7 +108,7 @@ int count = count(); Object objects[] = new Object[count]; if (count > 0) { - System.arraycopy(((objectsNoCopy())), 0, ((objects)), 0, count); + System.arraycopy(objectsNoCopy(), 0, objects, 0, count); } return objects; } @@ -122,7 +121,7 @@ else { Object oldObjects[] = _objects; byte oldFlags[] = _flags; - _objects = (E[])new Object[size]; + _objects = new Object[size]; _flags = new byte[size]; for (int i = 0; i < size; i++) { if ((oldFlags[i] & 0xffffffc0) == -128) { @@ -150,7 +149,7 @@ else { Object oldObjects[] = _objects; byte oldFlags[] = _flags; - _objects = (E[])new Object[newSize]; + _objects = new Object[newSize]; _flags = new byte[newSize]; for (int i = 0; i < oldSize; i++) { if ((oldFlags[i] & 0xffffffc0) == -128) { @@ -169,7 +168,7 @@ if (count != otherSet.count()) { return false; } - E objects[] = (E[])objectsNoCopy(); + Object objects[] = objectsNoCopy(); for (int i = 0; i < count; i++) { if (otherSet.member(objects[i]) == null) { return false; @@ -227,7 +226,7 @@ if (c == null) { throw new NullPointerException("Collection passed into containsAll() cannot be null"); } - E objects[] = (E[]) c.toArray(); + Object objects[] = c.toArray(); if (objects.length > 0) { for (int i = 0; i < objects.length; i++) { if (objects[i] == null) { @@ -284,7 +283,7 @@ return this; } - private void initFromObjects(E objects[], boolean checkForNull) { + private void initFromObjects(Object objects[], boolean checkForNull) { if (checkForNull) { for (int i = 0; i < objects.length; i++) { if (objects[i] == null) { @@ -305,7 +304,7 @@ public boolean intersectsSet(NSSet<?> otherSet) { if (count() != 0 && otherSet != null && otherSet.count() != 0) { - E objects[] = (E[])objectsNoCopy(); + Object objects[] = objectsNoCopy(); for (int i = 0; i < objects.length; i++) { if (otherSet.member(objects[i]) != null) { return true; @@ -340,7 +339,7 @@ if (count == 0) { return true; } - E objects[] = (E[])objectsNoCopy(); + Object objects[] = objectsNoCopy(); for (int i = 0; i < objects.length; i++) { if (otherSet.member(objects[i]) == null) { return false; @@ -368,7 +367,7 @@ protected Object[] objectsNoCopy() { if (_objectsCache == null) { - _objectsCache = _count != 0 ? (E[])_NSCollectionPrimitives.valuesInHashTable(_objects, _objects, _flags, _capacity, _hashtableBuckets) : (E[])_NSCollectionPrimitives.EmptyArray; + _objectsCache = _count != 0 ? _NSCollectionPrimitives.valuesInHashTable(_objects, _objects, _flags, _capacity, _hashtableBuckets) : _NSCollectionPrimitives.EmptyArray; } return _objectsCache; } @@ -377,7 +376,7 @@ fields = s.readFields(); Object keys[] = (Object[]) fields.get("objects", ((_NSUtilities._NoObjectArray))); keys = keys != null ? keys : _NSUtilities._NoObjectArray; - initFromObjects((E[]) keys, true); + initFromObjects(keys, true); } private Object readResolve() throws ObjectStreamException { if (getClass() == _CLASS && count() == 0) { @@ -415,7 +414,12 @@ return _count; } public Object[] toArray() { - return objectsNoCopy(); + Object currObjects[] = objectsNoCopy(); + Object objects[] = new Object[currObjects.length]; + if (currObjects.length > 0) { + System.arraycopy(currObjects, 0, objects, 0, currObjects.length); + } + return objects; } public <T> T[] toArray(T objects[]) { if (objects == null) { @@ -423,11 +427,9 @@ } Object currObjects[] = objectsNoCopy(); if (objects.length < currObjects.length) { - objects = (T[]) java.lang.reflect.Array.newInstance(objects.getClass().getComponentType(), _objects.length); + objects = (T[]) java.lang.reflect.Array.newInstance(objects.getClass().getComponentType(), currObjects.length); } - for (int i = 0; i < _objects.length; i++) { - objects[i] = (T) _objects[i]; - } + System.arraycopy(currObjects, 0, objects, 0, currObjects.length); return objects; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <qd...@us...> - 2009-05-16 11:04:00
|
Revision: 9346 http://wonder.svn.sourceforge.net/wonder/?rev=9346&view=rev Author: qdolan Date: 2009-05-16 11:03:51 +0000 (Sat, 16 May 2009) Log Message: ----------- Add missing methods wrt WO54 Add some var arg sugar to array arg methods Can now write new NSArray("a", "b", "c") instead of new NSArray(new String[] { "a", "b", "c" }) Modified Paths: -------------- trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSArray.java trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSMutableArray.java trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSMutableSet.java trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSSet.java Modified: trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSArray.java =================================================================== --- trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSArray.java 2009-05-16 04:36:35 UTC (rev 9345) +++ trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSArray.java 2009-05-16 11:03:51 UTC (rev 9346) @@ -272,7 +272,7 @@ initFromObjects(objects, rangeLocation, rangeLength, checkForNull); } - public NSArray(E[] objects) { + public NSArray(E... objects) { this(objects, 0, objects == null ? 0 : objects.length, true); } @@ -802,7 +802,7 @@ coder.encodeObjects(objectsNoCopy()); } - public void makeObjectsPerformSelector(NSSelector selector, Object[] parameters) { + public void makeObjectsPerformSelector(NSSelector selector, Object... parameters) { if (selector == null) { throw new IllegalArgumentException("Selector cannot be null"); } Modified: trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSMutableArray.java =================================================================== --- trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSMutableArray.java 2009-05-16 04:36:35 UTC (rev 9345) +++ trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSMutableArray.java 2009-05-16 11:03:51 UTC (rev 9346) @@ -107,7 +107,7 @@ clearCache(); } - public void addObjects(E[] objects) { + public void addObjects(E... objects) { if (objects != null && objects.length > 0) { for (int i = 0; i < objects.length; i++) if (objects[i] == null) @@ -375,7 +375,7 @@ * Much faster implementation of the remove method for larger arrays. */ - public void removeObjects(Object[] otherObjects) { + public void removeObjects(Object... otherObjects) { if (otherObjects != null) { int count = count(); if(count > 0) { Modified: trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSMutableSet.java =================================================================== --- trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSMutableSet.java 2009-05-16 04:36:35 UTC (rev 9345) +++ trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSMutableSet.java 2009-05-16 11:03:51 UTC (rev 9346) @@ -1,6 +1,7 @@ package com.webobjects.foundation; import java.util.Collection; +import java.util.Set; /** * NSSet reimplementation to support JDK 1.5 templates. Use with @@ -35,7 +36,7 @@ super(object); } - public NSMutableSet(E[] objects) { + public NSMutableSet(E... objects) { super(objects); } @@ -46,6 +47,10 @@ public NSMutableSet(NSSet<? extends E> otherSet) { super(otherSet); } + + public NSMutableSet(Set<? extends E> set, boolean ignoreNull) { + super(set, ignoreNull); + } public void addObject(E object) { if (object == null) { Modified: trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSSet.java =================================================================== --- trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSSet.java 2009-05-16 04:36:35 UTC (rev 9345) +++ trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSSet.java 2009-05-16 11:03:51 UTC (rev 9346) @@ -35,7 +35,7 @@ public static final NSSet EmptySet = new NSSet(); private static final String SerializationValuesFieldKey = "objects"; - private static final ObjectStreamField[] serialPersistentFields = (new ObjectStreamField[] { new ObjectStreamField(SerializationValuesFieldKey, ((Object) (_NSUtilities._NoObjectArray)).getClass()) });; + private static final ObjectStreamField[] serialPersistentFields = (new ObjectStreamField[] { new ObjectStreamField(SerializationValuesFieldKey, ((Object) (_NSUtilities._NoObjectArray)).getClass()) }); static final long serialVersionUID = -8833684352747517048L; @@ -91,7 +91,7 @@ } } - public NSSet(E[] objects) { + public NSSet(E... objects) { this(objects, true); } @@ -246,6 +246,11 @@ public void encodeWithCoder(NSCoder coder) { coder.encodeObjects(objectsNoCopy()); } + + @SuppressWarnings("cast") + public static <T> NSSet<T> emptySet() { + return (NSSet<T>) EmptySet; + } public boolean equals(Object object) { if (object == this) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <qd...@us...> - 2009-05-27 06:25:34
|
Revision: 9383 http://wonder.svn.sourceforge.net/wonder/?rev=9383&view=rev Author: qdolan Date: 2009-05-27 06:25:21 +0000 (Wed, 27 May 2009) Log Message: ----------- WONDER-299 Fixed bug in NSArray.componentsSeparatedByString(..) Changed varargs constructor to avoid overlap with object constructor which creates ambiguity when passing a primitive array to the constructor. Modified Paths: -------------- trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSArray.java trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSDictionary.java trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSMutableArray.java trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSMutableSet.java trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSSet.java Modified: trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSArray.java =================================================================== --- trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSArray.java 2009-05-27 00:21:46 UTC (rev 9382) +++ trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSArray.java 2009-05-27 06:25:21 UTC (rev 9383) @@ -252,6 +252,10 @@ } private void initFromObjects(Object[] objects, int rangeLocation, int rangeLength, boolean checkForNull) { + initFromObjects(objects, rangeLocation, rangeLength, 0, checkForNull); + } + + private void initFromObjects(Object[] objects, int rangeLocation, int rangeLength, int offset, boolean checkForNull) { if (checkForNull) { int maxRange = rangeLocation + rangeLength; for (int i = rangeLocation; i < maxRange; i++) { @@ -261,20 +265,25 @@ } } - _initializeWithCapacity(rangeLength); + _initializeWithCapacity(rangeLength + offset); if (rangeLength > 0) { - System.arraycopy(objects, rangeLocation, _objects, 0, rangeLength); + System.arraycopy(objects, rangeLocation, _objects, offset, rangeLength); } - _count = rangeLength; + _count = rangeLength + offset; } protected NSArray(Object[] objects, int rangeLocation, int rangeLength, boolean checkForNull) { initFromObjects(objects, rangeLocation, rangeLength, checkForNull); } - public NSArray(E... objects) { + public NSArray(E[] objects) { this(objects, 0, objects == null ? 0 : objects.length, true); } + + public NSArray(E object, E... objects) { + initFromObjects(objects, 0, objects == null ? 0 : objects.length, 1, true); + _objects[0] = object; + } public NSArray(E[] objects, NSRange range) { this(objects, range == null ? 0 : range.location(), range == null ? 0 : range.length(), true); @@ -717,7 +726,7 @@ objects.addObject(string.substring(start, index)); start = index + separatorLength; } - if (start < index) { + if (start <= index) { objects.addObject(string.substring(start, index)); } else { objects.addObject(""); Modified: trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSDictionary.java =================================================================== --- trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSDictionary.java 2009-05-27 00:21:46 UTC (rev 9382) +++ trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSDictionary.java 2009-05-27 06:25:21 UTC (rev 9383) @@ -14,7 +14,6 @@ import java.util.Iterator; import java.util.Map; import java.util.Set; -import java.util.Map.Entry; /** * NSDictionary reimplementation to support JDK 1.5 templates. Use with Modified: trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSMutableArray.java =================================================================== --- trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSMutableArray.java 2009-05-27 00:21:46 UTC (rev 9382) +++ trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSMutableArray.java 2009-05-27 06:25:21 UTC (rev 9383) @@ -51,10 +51,14 @@ super(object); } - public NSMutableArray(E... objects) { + public NSMutableArray(E[] objects) { super(objects); } + public NSMutableArray(E object, E... objects) { + super(object, objects); + } + public NSMutableArray(E[] objects, NSRange range) { super(objects, range); } Modified: trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSMutableSet.java =================================================================== --- trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSMutableSet.java 2009-05-27 00:21:46 UTC (rev 9382) +++ trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSMutableSet.java 2009-05-27 06:25:21 UTC (rev 9383) @@ -36,10 +36,14 @@ super(object); } - public NSMutableSet(E... objects) { + public NSMutableSet(E[] objects) { super(objects); } + public NSMutableSet(E object, E... objects) { + super(object, objects); + } + public NSMutableSet(NSArray<? extends E> objects) { super(objects); } Modified: trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSSet.java =================================================================== --- trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSSet.java 2009-05-27 00:21:46 UTC (rev 9382) +++ trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSSet.java 2009-05-27 06:25:21 UTC (rev 9383) @@ -91,9 +91,17 @@ } } - public NSSet(E... objects) { + public NSSet(E[] objects) { this(objects, true); } + + public NSSet(E object, E... objects) { + this(objects, true); + _ensureCapacity(_count + 1); + if (_NSCollectionPrimitives.addValueToSet(object, _objects, _flags)) { + _count++; + } + } private NSSet(E[] objects, boolean checkForNull) { initFromObjects(objects, checkForNull); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <qd...@us...> - 2009-06-02 06:18:34
|
Revision: 9419 http://wonder.svn.sourceforge.net/wonder/?rev=9419&view=rev Author: qdolan Date: 2009-06-02 06:18:26 +0000 (Tue, 02 Jun 2009) Log Message: ----------- Fix Anjo's changes so that they pass some basic tests when passing lists containing nulls. Some minor refactoring and changes to better match WO54 API Fixed error in NSSet where is was not ignoring nulls. Added missing constructor to NSMutableSet Removed vector constructor body in favour of delegating to List constructor. Misc cleanups. Modified Paths: -------------- trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSArray.java trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSMutableSet.java trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSSet.java Modified: trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSArray.java =================================================================== --- trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSArray.java 2009-06-01 10:23:49 UTC (rev 9418) +++ trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSArray.java 2009-06-02 06:18:26 UTC (rev 9419) @@ -215,7 +215,7 @@ } public NSArray() { - this(null, 0, 0, false); + this(null, 0, 0, false, false); } public NSArray(E object) { @@ -228,87 +228,106 @@ } - private void initFromObjects(Object[] objects, int rangeLocation, int rangeLength, boolean checkForNull) { - initFromObjects(objects, rangeLocation, rangeLength, 0, checkForNull); + private void initFromObjects(Object[] objects, int rangeLocation, int rangeLength, boolean checkForNull, boolean ignoreNull) { + initFromObjects(objects, rangeLocation, rangeLength, 0, checkForNull, ignoreNull); } - private void initFromObjects(Object[] objects, int rangeLocation, int rangeLength, int offset, boolean checkForNull) { + private void initFromObjects(Object[] objects, int rangeLocation, int rangeLength, int offset, boolean checkForNull, boolean ignoreNull) { if (checkForNull) { int maxRange = rangeLocation + rangeLength; + int validCount = 0; + Object[] validObjects = new Object[maxRange]; for (int i = rangeLocation; i < maxRange; i++) { - if (objects[i] == null) { + Object o = objects[i]; + if (o != null) { + validObjects[validCount++] = o; + continue; + } + if (!ignoreNull) throw new IllegalArgumentException("Attempt to insert null into an " + getClass().getName() + "."); + } + _initializeWithCapacity(validCount + offset); + + if (validCount > 0) { + System.arraycopy(validObjects, 0, _objects(), offset, validCount); + } + _setCount(validCount + offset); + } else { + _initializeWithCapacity(rangeLength + offset); + if (rangeLength > 0) { + System.arraycopy(objects, rangeLocation, _objects(), offset, rangeLength); + } + _setCount(rangeLength + offset); + } + } + + private void initFromList(List<? extends E> list, int rangeLocation, int rangeLength, int offset, boolean checkForNull, boolean ignoreNull) { + int maxRange = rangeLocation + rangeLength; + if (checkForNull) { + int validCount = 0; + Object[] validObjects = new Object[maxRange]; + for (int i = rangeLocation; i < maxRange; i++) { + Object o = list.get(i); + if (o != null) { + validObjects[validCount++] = o; + continue; } + if (!ignoreNull) + throw new IllegalArgumentException("Attempt to insert null into an " + getClass().getName() + "."); } + _initializeWithCapacity(validCount + offset); + + if (validCount > 0) { + System.arraycopy(validObjects, 0, _objects(), offset, validCount); + } + _setCount(validCount + offset); + } else { + _initializeWithCapacity(rangeLength + offset); + Object[] objects = _objects(); + int count = offset; + for (int i = rangeLocation; i < maxRange; i++) { + objects[count++] = list.get(i); + } + _setCount(count); } - _initializeWithCapacity(rangeLength + offset); - if (rangeLength > 0) { - System.arraycopy(objects, rangeLocation, _objects(), offset, rangeLength); - } - _setCount(rangeLength + offset); } - protected NSArray(Object[] objects, int rangeLocation, int rangeLength, boolean checkForNull) { - initFromObjects(objects, rangeLocation, rangeLength, checkForNull); + protected NSArray(Object[] objects, int rangeLocation, int rangeLength, boolean checkForNull, boolean ignoreNull) { + initFromObjects(objects, rangeLocation, rangeLength, checkForNull, ignoreNull); } public NSArray(E[] objects) { - this(objects, 0, objects == null ? 0 : objects.length, true); + this(objects, 0, objects == null ? 0 : objects.length, true, true); } public NSArray(E object, E... objects) { - initFromObjects(objects, 0, objects == null ? 0 : objects.length, 1, true); + initFromObjects(objects, 0, objects == null ? 0 : objects.length, 1, true, true); _objects()[0] = object; } public NSArray(E[] objects, NSRange range) { - this(objects, range == null ? 0 : range.location(), range == null ? 0 : range.length(), true); + this(objects, range == null ? 0 : range.location(), range == null ? 0 : range.length(), true, true); } public NSArray(NSArray<? extends E> otherArray) { - this(otherArray == null ? null : (E[])otherArray.objectsNoCopy(), 0, otherArray == null ? 0 : otherArray.count(), false); + this(otherArray == null ? null : (E[])otherArray.objectsNoCopy(), 0, otherArray == null ? 0 : otherArray.count(), false, false); } public NSArray(List<? extends E> list, boolean checkForNull) { if (list == null) { - throw new IllegalArgumentException("List cannot be null"); + throw new NullPointerException("List cannot be null"); } - Object[] aList = list.toArray(); - initFromObjects(aList, 0, aList.length, checkForNull); + initFromList(list, 0, list.size(), 0, checkForNull, false); } - public NSArray(Vector<? extends E> vector, NSRange range, boolean ignoreNull) { - if (range != null) { - if (vector == null) { - throw new IllegalArgumentException("Vector cannot be null"); - } - int count = vector.size(); - int rangeLocation = range.location(); - int rangeLength = range.length(); - _initializeWithCapacity(count); - Object[] objs = _objects(); - for (int i = 0; i < rangeLength; i++) { - Object object = vector.elementAt(i + rangeLocation); - if (object != null) { - objs[i] = object; - continue; - } - if (!ignoreNull) { - throw new IllegalArgumentException("Attempt to insert null into an " + getClass().getName() + "."); - } - } - _setCount(count); - } - } - public NSArray(Collection<? extends E> collection, boolean checkForNull) { if (collection == null) { throw new NullPointerException("Collection cannot be null"); } Object[] anArray = collection.toArray(); - initFromObjects(anArray, 0, anArray.length, checkForNull); + initFromObjects(anArray, 0, anArray.length, checkForNull, false); } public NSArray(Collection<? extends E> collection) { @@ -316,29 +335,16 @@ } public NSArray(List<? extends E> list, NSRange range, boolean ignoreNull) { - if (range != null) { - if (list == null) { - throw new IllegalArgumentException("Vector cannot be null"); - } - - int count = list.size(); - int rangeLocation = range.location(); - int rangeLength = range.length(); - - _initializeWithCapacity(count); - Object[] objs = _objects(); - for (int i = 0; i < rangeLength; ++i) { - Object object = list.get(i + rangeLocation); - if (object != null) { - objs[i] = object; - } else if (!ignoreNull) { - throw new IllegalArgumentException("Attempt to insert null into an " + super.getClass().getName() + "."); - } - } - _setCount(count); + if (list == null) { + throw new IllegalArgumentException("List cannot be null"); } + initFromList(list, range != null ? range.location() : 0, range != null ? range.length() : 0, 0, true, ignoreNull); } + public NSArray(Vector<? extends E> vector, NSRange range, boolean ignoreNull) { + this((List<E>)vector, range, ignoreNull); + } + protected void _setCount(int count) { if(count != count() && count != 0) { throw new IllegalStateException(); @@ -381,7 +387,7 @@ Object[] objects = new Object[count + 1]; System.arraycopy(objectsNoCopy(), 0, objects, 0, count); objects[count] = object; - return new NSArray<E>(objects, 0, count + 1, false); + return new NSArray<E>(objects, 0, count + 1, false, false); } public NSArray<E> arrayByAddingObjectsFromArray(NSArray<? extends E> otherArray) { @@ -397,7 +403,7 @@ Object[] objects = new Object[count + otherCount]; System.arraycopy(objectsNoCopy(), 0, objects, 0, count); System.arraycopy(otherArray.objectsNoCopy(), 0, objects, count, otherCount); - return new NSArray<E>(objects, 0, count + otherCount, false); + return new NSArray<E>(objects, 0, count + otherCount, false, false); } return immutableClone(); } @@ -554,7 +560,7 @@ if (range == null) { return EmptyArray; } - return new NSArray<E>(objectsNoCopy(), range.location(), range.length(), false); + return new NSArray<E>(objectsNoCopy(), range.location(), range.length(), false, false); } public E lastObject() { @@ -685,9 +691,6 @@ } } if (parseData[end] == charSeparator) { - if (start < end) { - objects.addObject(string.substring(start, end)); - } objects.addObject(""); } else { objects.addObject(string.substring(start, stringLength)); @@ -711,10 +714,8 @@ objects.addObject(string.substring(start, index)); start = index + separatorLength; } - if (start < index) { + if (start <= index) { objects.addObject(string.substring(start, index)); - } else { - objects.addObject(""); } objects.addObject(""); @@ -893,7 +894,7 @@ fields = s.readFields(); Object[] values = (Object[]) fields.get(SerializationValuesFieldKey, _NSUtilities._NoObjectArray); values = values != null ? values : _NSUtilities._NoObjectArray; - initFromObjects(values, 0, values.length, true); + initFromObjects(values, 0, values.length, true, false); } @SuppressWarnings("unused") @@ -922,7 +923,7 @@ public boolean contains(Object element) { if (element == null) { - return false; + throw new NullPointerException("NSArray does not support null values"); } return containsObject(element); } Modified: trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSMutableSet.java =================================================================== --- trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSMutableSet.java 2009-06-01 10:23:49 UTC (rev 9418) +++ trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSMutableSet.java 2009-06-02 06:18:26 UTC (rev 9419) @@ -31,6 +31,10 @@ _ensureCapacity(capacity); } + + public NSMutableSet(Collection<? extends E> collection) { + super(collection); + } public NSMutableSet(E object) { super(object); Modified: trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSSet.java =================================================================== --- trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSSet.java 2009-06-01 10:23:49 UTC (rev 9418) +++ trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSSet.java 2009-06-02 06:18:26 UTC (rev 9419) @@ -63,6 +63,11 @@ _initializeSet(); } + public NSSet(Collection<? extends E> collection) { + Object[] objects = collection.toArray(); + initFromObjects(objects, true); + } + public NSSet(NSArray<? extends E> objects) { this(objects == null ? null : (E[])objects.objectsNoCopy(), false); } @@ -76,8 +81,12 @@ throw new IllegalArgumentException("Set cannot be null"); } + if (!ignoreNull && set.contains(null)) { + throw new IllegalArgumentException("Attempt to insert null into an " + getClass().getName() + "."); + } + Object[] aSet = set.toArray(); - initFromObjects(aSet, ignoreNull); + initFromObjects(aSet, !ignoreNull); } public NSSet(E object) { @@ -291,19 +300,16 @@ } private void initFromObjects(Object[] objects, boolean checkForNull) { - if (checkForNull) { - for (int i = 0; i < objects.length; i++) { - if (objects[i] == null) { - throw new IllegalArgumentException("Attempt to insert null object into an " + getClass().getName() + "."); - } - } - - } _initializeSet(); _ensureCapacity(objects.length); for (int i = 0; i < objects.length; i++) { - if (_NSCollectionPrimitives.addValueToSet(objects[i], _objects, _flags)) { - _count++; + if (objects[i] == null) { + if (checkForNull) + throw new IllegalArgumentException("Attempt to insert null object into an " + getClass().getName() + "."); + } else { + if (_NSCollectionPrimitives.addValueToSet(objects[i], _objects, _flags)) { + _count++; + } } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ms...@us...> - 2009-08-29 18:18:20
|
Revision: 9780 http://wonder.svn.sourceforge.net/wonder/?rev=9780&view=rev Author: mschrag Date: 2009-08-29 18:18:12 +0000 (Sat, 29 Aug 2009) Log Message: ----------- whoops ... svn commit snafu -- accidentally committed a change to trunk when i intended it to be from the 5.5 branch Modified Paths: -------------- trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSArray.java trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSDictionary.java Modified: trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSArray.java =================================================================== --- trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSArray.java 2009-08-29 18:05:12 UTC (rev 9779) +++ trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSArray.java 2009-08-29 18:18:12 UTC (rev 9780) @@ -454,7 +454,7 @@ return _findObjectInArray(0, count(), object, false) != NotFound; } - public E firstObjectCommonWithArray(NSArray<?> otherArray) { + public E firstObjectCommonWithArray(NSArray<? extends E> otherArray) { if (otherArray == null) { return null; } Modified: trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSDictionary.java =================================================================== --- trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSDictionary.java 2009-08-29 18:05:12 UTC (rev 9779) +++ trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSDictionary.java 2009-08-29 18:18:12 UTC (rev 9780) @@ -371,7 +371,7 @@ return NSArray.EmptyArray; } - private boolean _equalsDictionary(NSDictionary<?, ?> otherDictionary) { + private boolean _equalsDictionary(NSDictionary<? extends K, ? extends V> otherDictionary) { int count = count(); if (count != otherDictionary.count()) { return false; @@ -388,7 +388,7 @@ return true; } - public boolean isEqualToDictionary(NSDictionary<?, ?> otherDictionary) { + public boolean isEqualToDictionary(NSDictionary<? extends K, ? extends V> otherDictionary) { if (otherDictionary == null) { return false; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <an...@us...> - 2009-09-04 12:37:53
|
Revision: 9808 http://wonder.svn.sourceforge.net/wonder/?rev=9808&view=rev Author: anjo Date: 2009-09-04 12:37:46 +0000 (Fri, 04 Sep 2009) Log Message: ----------- performance: entrySetCache is now actually used, API: Entry.SetValue uses outer class implementation Modified Paths: -------------- trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSDictionary.java trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSMutableDictionary.java Modified: trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSDictionary.java =================================================================== --- trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSDictionary.java 2009-09-04 05:32:35 UTC (rev 9807) +++ trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSDictionary.java 2009-09-04 12:37:46 UTC (rev 9808) @@ -42,7 +42,7 @@ } public Q setValue(Q value) { - throw new UnsupportedOperationException("setValue is not a supported operation in _JavaNSDictionaryMapEntry"); + return (Q)NSDictionary.this.put((K)getKey(), (V)value); } public boolean equals(Object o) { @@ -70,6 +70,7 @@ _hashCache = otherDictionary._hashCache; _objects = otherDictionary._objects; _objectsCache = otherDictionary._objectsCache; + _entrySetCache = null; _flags = otherDictionary._flags; _keys = otherDictionary._keys; _keysCache = otherDictionary._keysCache; @@ -83,6 +84,7 @@ _hashCache = otherDictionary._hashCache; _objects = _NSCollectionPrimitives.copyArray(otherDictionary._objects); _objectsCache = null; + _entrySetCache = null; _flags = _NSCollectionPrimitives.copyArray(otherDictionary._flags); _keys = _NSCollectionPrimitives.copyArray(otherDictionary._keys); _keysCache = null; @@ -92,6 +94,7 @@ protected void _initializeDictionary() { _capacity = _count = 0; _objects = _objectsCache = null; + _entrySetCache = null; _flags = null; _keys = _keysCache = null; _hashtableBuckets = _NSCollectionPrimitives.hashTableBucketsForCapacity(_capacity); @@ -301,6 +304,7 @@ protected Object[] objectsNoCopy() { if (_objectsCache == null) { _objectsCache = _count != 0 ? _NSCollectionPrimitives.valuesInHashTable(_keys, _objects, _flags, _capacity, _hashtableBuckets) : _NSCollectionPrimitives.EmptyArray; + _entrySetCache = null; } return _objectsCache; } @@ -634,7 +638,7 @@ public Set<Map.Entry<K, V>> entrySet() { if (_entrySetCache == null) { - return _initMapEntrySet(); + _entrySetCache = _initMapEntrySet(); } return _entrySetCache; @@ -642,8 +646,9 @@ private Set<Map.Entry<K, V>> _initMapEntrySet() { Object[] keys = keysNoCopy(); - _JavaNSDictionaryMapEntry<K, V>[] set = new _JavaNSDictionaryMapEntry[keys.length]; - for (int i = 0; i < keys.length; i++) { + int length = keys.length; + _JavaNSDictionaryMapEntry<K, V>[] set = new _JavaNSDictionaryMapEntry[length]; + for (int i = 0; i < length; i++) { K key = (K) keys[i]; V object = objectForKey(key); _JavaNSDictionaryMapEntry<K, V> current = new _JavaNSDictionaryMapEntry<K, V>(key, object); Modified: trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSMutableDictionary.java =================================================================== --- trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSMutableDictionary.java 2009-09-04 05:32:35 UTC (rev 9807) +++ trunk/Wonder/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSMutableDictionary.java 2009-09-04 12:37:46 UTC (rev 9808) @@ -79,6 +79,7 @@ _count = count; _keysCache = null; } + _entrySetCache = null; _objectsCache = null; } @@ -96,6 +97,7 @@ _clearDeletionsAndCollisions(); } _objectsCache = null; + _entrySetCache = null; _keysCache = null; } } @@ -109,6 +111,7 @@ _flags = new byte[_hashtableBuckets]; _count = 0; _objectsCache = null; + _entrySetCache = null; _keysCache = null; _deletionLimit = _NSCollectionPrimitives.deletionLimitForTableBuckets(_hashtableBuckets); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |