From 40a9d99496e098562f090fb7ffce9e749011b131 Mon Sep 17 00:00:00 2001 From: Benjamin Culkin Date: Mon, 20 May 2024 17:58:16 -0400 Subject: Formatting pass --- .../main/java/net/wotonomy/ui/ObservableArray.java | 486 +++++++++------------ 1 file changed, 218 insertions(+), 268 deletions(-) (limited to 'projects/net.wotonomy.ui/src/main/java/net/wotonomy/ui/ObservableArray.java') diff --git a/projects/net.wotonomy.ui/src/main/java/net/wotonomy/ui/ObservableArray.java b/projects/net.wotonomy.ui/src/main/java/net/wotonomy/ui/ObservableArray.java index a398e97..e18ed3b 100644 --- a/projects/net.wotonomy.ui/src/main/java/net/wotonomy/ui/ObservableArray.java +++ b/projects/net.wotonomy.ui/src/main/java/net/wotonomy/ui/ObservableArray.java @@ -28,322 +28,272 @@ import net.wotonomy.foundation.NSMutableArray; import net.wotonomy.foundation.NSRange; /** -* A package class that extends NSMutableArray but makes use -* of the fact that wotonomy's implementation extends ArrayList -* to intercept insertions and deletion and register and -* unregister objects for change notifications as appropriate. -* Since we can't be sure of ArrayList's implementation, we're -* forced to override each and every add and remove method, -* some of which probably call each other. However, -* EOObserverCenter will only register us once per object. -*/ -class ObservableArray extends NSMutableArray -{ - EOObserving observer; - - ObservableArray( EOObserving anObserver ) - { - observer = anObserver; - } - + * A package class that extends NSMutableArray but makes use of the fact that + * wotonomy's implementation extends ArrayList to intercept insertions and + * deletion and register and unregister objects for change notifications as + * appropriate. Since we can't be sure of ArrayList's implementation, we're + * forced to override each and every add and remove method, some of which + * probably call each other. However, EOObserverCenter will only register us + * once per object. + */ +class ObservableArray extends NSMutableArray { + EOObserving observer; + + ObservableArray(EOObserving anObserver) { + observer = anObserver; + } + /** - * Removes the last object from the array. - */ - public void removeLastObject () - { - remove( count() - 1 ); - } + * Removes the last object from the array. + */ + public void removeLastObject() { + remove(count() - 1); + } /** - * Removes the object at the specified index. - */ - public void removeObjectAtIndex (int index) - { - remove( index ); - } + * Removes the object at the specified index. + */ + public void removeObjectAtIndex(int index) { + remove(index); + } /** - * Adds all objects in the specified collection. - */ - public void addObjectsFromArray (Collection aCollection) - { - addAll( aCollection ); - } + * Adds all objects in the specified collection. + */ + public void addObjectsFromArray(Collection aCollection) { + addAll(aCollection); + } /** - * Removes all objects from the array. - */ - public void removeAllObjects () - { - clear(); - } + * Removes all objects from the array. + */ + public void removeAllObjects() { + clear(); + } /** - * Removes all objects equivalent to the specified object - * within the range of specified indices. - */ - public void removeObject (Object anObject, NSRange aRange) - { - if ( ( anObject == null ) || ( aRange == null ) ) return; - - int loc = aRange.location(); - int max = aRange.maxRange(); - for ( int i = loc; i < max; i++ ) - { - if ( anObject.equals( get( i ) ) ) - { - remove( i ); - i = i - 1; - max = max - 1; - } - } - } + * Removes all objects equivalent to the specified object within the range of + * specified indices. + */ + public void removeObject(Object anObject, NSRange aRange) { + if ((anObject == null) || (aRange == null)) + return; + + int loc = aRange.location(); + int max = aRange.maxRange(); + for (int i = loc; i < max; i++) { + if (anObject.equals(get(i))) { + remove(i); + i = i - 1; + max = max - 1; + } + } + } /** - * Removes all instances of the specified object within the - * range of specified indices, comparing by reference. - */ - public void removeIdenticalObject (Object anObject, NSRange aRange) - { - if ( ( anObject == null ) || ( aRange == null ) ) return; - - int loc = aRange.location(); - int max = aRange.maxRange(); - for ( int i = loc; i < max; i++ ) - { - if ( anObject == get( i ) ) - { - remove( i ); - i = i - 1; - max = max - 1; - } - } - } + * Removes all instances of the specified object within the range of specified + * indices, comparing by reference. + */ + public void removeIdenticalObject(Object anObject, NSRange aRange) { + if ((anObject == null) || (aRange == null)) + return; + + int loc = aRange.location(); + int max = aRange.maxRange(); + for (int i = loc; i < max; i++) { + if (anObject == get(i)) { + remove(i); + i = i - 1; + max = max - 1; + } + } + } /** - * Removes all objects in the specified collection from the array. - */ - public void removeObjectsInArray (Collection aCollection) - { - removeAll( aCollection ); - } + * Removes all objects in the specified collection from the array. + */ + public void removeObjectsInArray(Collection aCollection) { + removeAll(aCollection); + } /** - * Removes all objects in the indices within the specified range - * from the array. - */ - public void removeObjectsInRange (NSRange aRange) - { - if ( aRange == null ) return; - - for ( int i = 0; i < aRange.length(); i++ ) - { - remove( aRange.location() ); - } - } + * Removes all objects in the indices within the specified range from the array. + */ + public void removeObjectsInRange(NSRange aRange) { + if (aRange == null) + return; + + for (int i = 0; i < aRange.length(); i++) { + remove(aRange.location()); + } + } /** - * Replaces objects in the current range with objects from - * the specified range of the specified array. If currentRange - * is larger than otherRange, the extra objects are removed. - * If otherRange is larger than currentRange, the extra objects - * are added. - */ - public void replaceObjectsInRange (NSRange currentRange, - List otherArray, NSRange otherRange) - { - if ( ( currentRange == null ) || ( otherArray == null ) || - ( otherRange == null ) ) return; - + * Replaces objects in the current range with objects from the specified range + * of the specified array. If currentRange is larger than otherRange, the extra + * objects are removed. If otherRange is larger than currentRange, the extra + * objects are added. + */ + public void replaceObjectsInRange(NSRange currentRange, List otherArray, NSRange otherRange) { + if ((currentRange == null) || (otherArray == null) || (otherRange == null)) + return; + // transform otherRange if out of bounds for array - if ( otherRange.maxRange() > otherArray.size() ) - { + if (otherRange.maxRange() > otherArray.size()) { // TODO: Test this logic. - int loc = Math.min( otherRange.location(), otherArray.size() - 1 ); - otherRange = new NSRange( loc, otherArray.size() - loc ); + int loc = Math.min(otherRange.location(), otherArray.size() - 1); + otherRange = new NSRange(loc, otherArray.size() - loc); } - + Object o; - List subList = subList( - currentRange.location(), currentRange.maxRange() ); + List subList = subList(currentRange.location(), currentRange.maxRange()); int otherIndex = otherRange.location(); // TODO: Test this logic. - for ( int i = 0; i < subList.size(); i++ ) - { - if ( otherIndex < otherRange.maxRange() ) - { // set object - subList.set( i, otherArray.get( otherIndex ) ); - } - else - { // remove extra elements from currentRange - subList.remove( i ); - i--; + for (int i = 0; i < subList.size(); i++) { + if (otherIndex < otherRange.maxRange()) { // set object + subList.set(i, otherArray.get(otherIndex)); + } else { // remove extra elements from currentRange + subList.remove(i); + i--; } otherIndex++; } // TODO: Test this logic. - for ( int i = otherIndex; i < otherRange.maxRange(); i++ ) - { - add( otherArray.get( i ) ); + for (int i = otherIndex; i < otherRange.maxRange(); i++) { + add(otherArray.get(i)); } } /** - * Clears the current array and then populates it with the - * contents of the specified collection. - */ - public void setArray (Collection aCollection) - { - clear(); - addAll( aCollection ); - } + * Clears the current array and then populates it with the contents of the + * specified collection. + */ + public void setArray(Collection aCollection) { + clear(); + addAll(aCollection); + } /** - * Removes all objects equivalent to the specified object. - */ - public void removeObject (Object anObject) - { - remove( anObject ); - } + * Removes all objects equivalent to the specified object. + */ + public void removeObject(Object anObject) { + remove(anObject); + } /** - * Removes all occurences of the specified object, - * comparing by reference. - */ - public void removeIdenticalObject (Object anObject) - { - EOObserverCenter.removeObserver( observer, anObject ); - super.removeIdenticalObject( anObject ); - } + * Removes all occurences of the specified object, comparing by reference. + */ + public void removeIdenticalObject(Object anObject) { + EOObserverCenter.removeObserver(observer, anObject); + super.removeIdenticalObject(anObject); + } /** - * Inserts the specified object into this array at the - * specified index. - */ - public void insertObjectAtIndex (Object anObject, int anIndex) - { - add( anIndex, anObject ); - } - + * Inserts the specified object into this array at the specified index. + */ + public void insertObjectAtIndex(Object anObject, int anIndex) { + add(anIndex, anObject); + } + /** - * Replaces the object at the specified index with the - * specified object. - */ - public void replaceObjectAtIndex (int anIndex, Object anObject) - { - set( anIndex, anObject ); - } + * Replaces the object at the specified index with the specified object. + */ + public void replaceObjectAtIndex(int anIndex, Object anObject) { + set(anIndex, anObject); + } /** - * Adds the specified object to the end of this array. - */ - public void addObject (Object anObject) - { - add( anObject ); - } - - // interface List: mutators - - public void add(int index, Object element) - { - EOObserverCenter.addObserver( observer, element ); - super.add( index, element ); - } - - public boolean add(Object o) - { - EOObserverCenter.addObserver( observer, o ); - return super.add(o); - } - - public boolean addAll(Collection coll) - { - Iterator it = coll.iterator(); - while ( it.hasNext() ) - { - EOObserverCenter.addObserver( observer, it.next() ); - } - return super.addAll(coll); - } - - public boolean addAll(int index, Collection c) - { - Iterator it = c.iterator(); - while ( it.hasNext() ) - { - EOObserverCenter.addObserver( observer, it.next() ); - } - return super.addAll( index, c ); - } - - public void clear() - { - Iterator it = iterator(); - while ( it.hasNext() ) - { - EOObserverCenter.removeObserver( observer, it.next() ); - } - super.clear(); - } - - public Object remove(int index) - { - EOObserverCenter.removeObserver( observer, get(index) ); - return super.remove( index ); - } - - public boolean remove(Object o) - { - EOObserverCenter.removeObserver( observer, o ); - return super.remove(o); - } - - public boolean removeAll(Collection coll) - { - Iterator it = coll.iterator(); - while ( it.hasNext() ) - { - EOObserverCenter.removeObserver( observer, it.next() ); - } - return super.removeAll(coll); - } - - public boolean retainAll(Collection coll) - { - throw new UnsupportedOperationException(); - } - - public Object set(int index, Object element) - { - EOObserverCenter.removeObserver( observer, get(index) ); - EOObserverCenter.addObserver( observer, element ); - return super.set( index, element ); - } + * Adds the specified object to the end of this array. + */ + public void addObject(Object anObject) { + add(anObject); + } + + // interface List: mutators + + public void add(int index, Object element) { + EOObserverCenter.addObserver(observer, element); + super.add(index, element); + } + + public boolean add(Object o) { + EOObserverCenter.addObserver(observer, o); + return super.add(o); + } + + public boolean addAll(Collection coll) { + Iterator it = coll.iterator(); + while (it.hasNext()) { + EOObserverCenter.addObserver(observer, it.next()); + } + return super.addAll(coll); + } + + public boolean addAll(int index, Collection c) { + Iterator it = c.iterator(); + while (it.hasNext()) { + EOObserverCenter.addObserver(observer, it.next()); + } + return super.addAll(index, c); + } + + public void clear() { + Iterator it = iterator(); + while (it.hasNext()) { + EOObserverCenter.removeObserver(observer, it.next()); + } + super.clear(); + } + + public Object remove(int index) { + EOObserverCenter.removeObserver(observer, get(index)); + return super.remove(index); + } + + public boolean remove(Object o) { + EOObserverCenter.removeObserver(observer, o); + return super.remove(o); + } + + public boolean removeAll(Collection coll) { + Iterator it = coll.iterator(); + while (it.hasNext()) { + EOObserverCenter.removeObserver(observer, it.next()); + } + return super.removeAll(coll); + } + + public boolean retainAll(Collection coll) { + throw new UnsupportedOperationException(); + } + + public Object set(int index, Object element) { + EOObserverCenter.removeObserver(observer, get(index)); + EOObserverCenter.addObserver(observer, element); + return super.set(index, element); + } } /* - * $Log$ - * Revision 1.2 2006/02/18 23:14:35 cgruber - * Update imports and maven dependencies. + * $Log$ Revision 1.2 2006/02/18 23:14:35 cgruber Update imports and maven + * dependencies. * - * Revision 1.1 2006/02/16 13:22:22 cgruber - * Check in all sources in eclipse-friendly maven-enabled packages. + * Revision 1.1 2006/02/16 13:22:22 cgruber Check in all sources in + * eclipse-friendly maven-enabled packages. * - * Revision 1.3 2003/08/06 23:07:52 chochos - * general code cleanup (mostly, removing unused imports) + * Revision 1.3 2003/08/06 23:07:52 chochos general code cleanup (mostly, + * removing unused imports) * - * Revision 1.2 2002/10/24 21:15:36 mpowers - * New implementations of NSArray and subclasses. + * Revision 1.2 2002/10/24 21:15:36 mpowers New implementations of NSArray and + * subclasses. * - * Revision 1.1 2001/02/20 16:38:55 mpowers - * MasterDetailAssociations now observe their controlled display group's - * objects for changes to that the parent object will be marked as updated. - * Before, only inserts and deletes to an object's items are registered. - * Also, moved ObservableArray to package access. + * Revision 1.1 2001/02/20 16:38:55 mpowers MasterDetailAssociations now observe + * their controlled display group's objects for changes to that the parent + * object will be marked as updated. Before, only inserts and deletes to an + * object's items are registered. Also, moved ObservableArray to package access. * - * Revision 1.1 2001/01/24 14:37:24 mpowers - * Contributing a delegate useful for debugging. + * Revision 1.1 2001/01/24 14:37:24 mpowers Contributing a delegate useful for + * debugging. * * */ - -- cgit v1.2.3