1 18 package org.apache.activemq.kaha.impl.container; 19 20 import java.util.ArrayList ; 21 import java.util.Collection ; 22 import java.util.HashSet ; 23 import java.util.Iterator ; 24 import java.util.List ; 25 import java.util.Set ; 26 27 32 public class ContainerEntrySet extends ContainerCollectionSupport implements Set { 33 ContainerEntrySet(MapContainerImpl container){ 34 super(container); 35 } 36 37 public boolean contains(Object o){ 38 return container.entrySet().contains(o); 39 } 40 41 public Iterator iterator(){ 42 return new ContainerEntrySetIterator(container,buildEntrySet().iterator()); 43 } 44 45 public Object [] toArray(){ 46 return buildEntrySet().toArray(); 47 } 48 49 public Object [] toArray(Object [] a){ 50 return buildEntrySet().toArray(a); 51 } 52 53 public boolean add(Object o){ 54 throw new UnsupportedOperationException ("Cannot add here"); 55 } 56 57 public boolean remove(Object o){ 58 boolean result=false; 59 if(buildEntrySet().remove(o)){ 60 ContainerMapEntry entry=(ContainerMapEntry) o; 61 container.remove(entry.getKey()); 62 } 63 return result; 64 } 65 66 public boolean containsAll(Collection c){ 67 return buildEntrySet().containsAll(c); 68 } 69 70 public boolean addAll(Collection c){ 71 throw new UnsupportedOperationException ("Cannot add here"); 72 } 73 74 public boolean retainAll(Collection c){ 75 List tmpList=new ArrayList (); 76 for(Iterator i=c.iterator();i.hasNext();){ 77 Object o=i.next(); 78 if(!contains(o)){ 79 tmpList.add(o); 80 } 81 } 82 boolean result=false; 83 for(Iterator i=tmpList.iterator();i.hasNext();){ 84 result|=remove(i.next()); 85 } 86 return result; 87 } 88 89 public boolean removeAll(Collection c){ 90 boolean result=true; 91 for(Iterator i=c.iterator();i.hasNext();){ 92 if(!remove(i.next())){ 93 result=false; 94 } 95 } 96 return result; 97 } 98 99 public void clear(){ 100 container.clear(); 101 } 102 103 protected Set buildEntrySet(){ 104 Set set=new HashSet (); 105 for(Iterator i=container.keySet().iterator();i.hasNext();){ 106 ContainerMapEntry entry=new ContainerMapEntry(container,i.next()); 107 set.add(entry); 108 } 109 return set; 110 } 111 } 112 | Popular Tags |