equals and hashCode methods added to collection wrappers BLD200306040100
authormmatula@netbeans.org
Sat, 17 May 2003 14:46:39 +0000
changeset 1287ea6f7f96b67b
parent 1286 d76e960c2358
child 1288 6cfbd4788058
equals and hashCode methods added to collection wrappers
mdr/src/org/netbeans/mdr/handlers/AEIndexUListWrapper.java
mdr/src/org/netbeans/mdr/handlers/AttrImmutCollWrapper.java
mdr/src/org/netbeans/mdr/handlers/AttrImmutListWrapper.java
mdr/src/org/netbeans/mdr/handlers/AttrListWrapper.java
mdr/src/org/netbeans/mdr/handlers/IndexSetWrapper.java
     1.1 --- a/mdr/src/org/netbeans/mdr/handlers/AEIndexUListWrapper.java	Tue May 13 23:59:30 2003 +0000
     1.2 +++ b/mdr/src/org/netbeans/mdr/handlers/AEIndexUListWrapper.java	Sat May 17 14:46:39 2003 +0000
     1.3 @@ -206,6 +206,14 @@
     1.4          //        return new ListWrapper(((List) innerList).subList(param, param1), source);
     1.5      }
     1.6      
     1.7 +    public boolean equals(Object object) {
     1.8 +        if (object instanceof List) {
     1.9 +            return super.equals(object);
    1.10 +        } else {
    1.11 +            return false;
    1.12 +        }
    1.13 +    }
    1.14 +    
    1.15      protected class AEIndexListIteratorWrapper extends AEIndexIteratorWrapper implements ListIterator {
    1.16          private final ListIterator listIterator;
    1.17          private int lastReadIndex = 0;
     2.1 --- a/mdr/src/org/netbeans/mdr/handlers/AttrImmutCollWrapper.java	Tue May 13 23:59:30 2003 +0000
     2.2 +++ b/mdr/src/org/netbeans/mdr/handlers/AttrImmutCollWrapper.java	Sat May 17 14:46:39 2003 +0000
     2.3 @@ -105,6 +105,39 @@
     2.4          }
     2.5      }
     2.6      
     2.7 +    public boolean equals(Object object) {
     2.8 +        if (object == this) return true;
     2.9 +        if (!(object instanceof Collection)) return false;
    2.10 +        try {
    2.11 +            lock(false);
    2.12 +            Iterator it1 = iterator();
    2.13 +            Iterator it2 = ((Collection) object).iterator();
    2.14 +            while(it1.hasNext() && it2.hasNext()) {
    2.15 +                Object o1 = it1.next();
    2.16 +                Object o2 = it2.next();
    2.17 +                if (!(o1==null ? o2==null : o1.equals(o2)))
    2.18 +                    return false;
    2.19 +            }
    2.20 +            return !(it1.hasNext() || it2.hasNext());
    2.21 +        } finally {
    2.22 +            unlock();
    2.23 +        }
    2.24 +    }
    2.25 +    
    2.26 +    public int hashCode() {
    2.27 +        lock(false);
    2.28 +        try {
    2.29 +            int hashCode = 1;
    2.30 +            for (Iterator it = iterator(); it.hasNext();) {
    2.31 +                Object obj = it.next();
    2.32 +                hashCode = 31*hashCode + (obj==null ? 0 : obj.hashCode());
    2.33 +            }
    2.34 +            return hashCode;
    2.35 +        } finally {
    2.36 +            unlock();
    2.37 +        }
    2.38 +    }
    2.39 +
    2.40      public boolean addAll(Collection collection) {
    2.41          throw new UnsupportedOperationException();
    2.42      }
     3.1 --- a/mdr/src/org/netbeans/mdr/handlers/AttrImmutListWrapper.java	Tue May 13 23:59:30 2003 +0000
     3.2 +++ b/mdr/src/org/netbeans/mdr/handlers/AttrImmutListWrapper.java	Sat May 17 14:46:39 2003 +0000
     3.3 @@ -101,6 +101,14 @@
     3.4          }
     3.5      }
     3.6      
     3.7 +    public boolean equals(Object object) {
     3.8 +        if (object instanceof List) {
     3.9 +            return super.equals(object);
    3.10 +        } else {
    3.11 +            return false;
    3.12 +        }
    3.13 +    }
    3.14 +    
    3.15      private final class AttrImmutListIteratorWrapper extends AttrImmutIteratorWrapper implements ListIterator {
    3.16          private final ListIterator innerListIterator;
    3.17          
     4.1 --- a/mdr/src/org/netbeans/mdr/handlers/AttrListWrapper.java	Tue May 13 23:59:30 2003 +0000
     4.2 +++ b/mdr/src/org/netbeans/mdr/handlers/AttrListWrapper.java	Sat May 17 14:46:39 2003 +0000
     4.3 @@ -155,6 +155,14 @@
     4.4          }
     4.5      }
     4.6      
     4.7 +    public boolean equals(Object object) {
     4.8 +        if (object instanceof List) {
     4.9 +            return super.equals(object);
    4.10 +        } else {
    4.11 +            return false;
    4.12 +        }
    4.13 +    }
    4.14 +    
    4.15      private final class AttrListIteratorWrapper extends AttrIteratorWrapper implements ListIterator {
    4.16          private final ListIterator innerListIterator;
    4.17          protected int lastReadIndex = 0;
     5.1 --- a/mdr/src/org/netbeans/mdr/handlers/IndexSetWrapper.java	Tue May 13 23:59:30 2003 +0000
     5.2 +++ b/mdr/src/org/netbeans/mdr/handlers/IndexSetWrapper.java	Sat May 17 14:46:39 2003 +0000
     5.3 @@ -145,6 +145,39 @@
     5.4          }
     5.5      }
     5.6      
     5.7 +    public boolean equals(Object object) {
     5.8 +        if (object == this) return true;
     5.9 +        if (!(object instanceof Collection)) return false;
    5.10 +        try {
    5.11 +            lock(false);
    5.12 +            Iterator it1 = iterator();
    5.13 +            Iterator it2 = ((Collection) object).iterator();
    5.14 +            while(it1.hasNext() && it2.hasNext()) {
    5.15 +                Object o1 = it1.next();
    5.16 +                Object o2 = it2.next();
    5.17 +                if (!(o1==null ? o2==null : o1.equals(o2)))
    5.18 +                    return false;
    5.19 +            }
    5.20 +            return !(it1.hasNext() || it2.hasNext());
    5.21 +        } finally {
    5.22 +            unlock();
    5.23 +        }
    5.24 +    }
    5.25 +    
    5.26 +    public int hashCode() {
    5.27 +        lock(false);
    5.28 +        try {
    5.29 +            int hashCode = 1;
    5.30 +            for (Iterator it = iterator(); it.hasNext();) {
    5.31 +                Object obj = it.next();
    5.32 +                hashCode = 31*hashCode + (obj==null ? 0 : obj.hashCode());
    5.33 +            }
    5.34 +            return hashCode;
    5.35 +        } finally {
    5.36 +            unlock();
    5.37 +        }
    5.38 +    }
    5.39 +
    5.40      public Object[] toArray() {
    5.41          return toArray(new Object[size()]);
    5.42      }