1 package org.odmg; 2 3 4 5 /** 6 7 * This interface defines the operations associated with an ODMG bag collection. 8 9 * All of the operations defined by the JavaSoft <code>Collection</code> 10 11 * interface are supported by an ODMG implementation of <code>DBag</code>, 12 13 * the exception <code>UnsupportedOperationException</code> is not thrown when a 14 15 * call is made to any of the <code>Collection</code> methods. 16 17 * @author David Jordan (as Java Editor of the Object Data Management Group) 18 19 * @version ODMG 3.0 20 21 */ 22 23 // * @see java.lang.UnsupportedOperationException 24 25 26 27 public interface DBag extends DCollection 28 29 { 30 31 /** 32 33 * A new <code>DBag</code> instance is created that is the union of this object 34 35 * and <code>otherBag</code>. 36 37 * This method is similar to the <code>addAll</code> method in <code>Collection</code>, 38 39 * except that this method creates a new collection and <code>addAll</code> 40 41 * modifies the object to contain the result. 42 43 * @param otherBag The other bag to use in the union operation. 44 45 * @return A <code>DBag</code> instance that contains the union of this object 46 47 * and <code>otherBag</code>. 48 49 */ 50 51 // * @see com.sun.java.util.collections.Collection#addAll 52 53 public DBag union(DBag otherBag); 54 55 56 57 /** 58 59 * A new <code>DBag</code> instance is created that contains the intersection of 60 61 * this object and the <code>DBag</code> referenced by <code>otherBag</code>. 62 63 * This method is similar to the <code>retainAll</code> method in <code>Collection</code>, 64 65 * except that this method creates a new collection and <code>retainAll</code> 66 67 * modifies the object to contain the result. 68 69 * @param otherBag The other bag to use in creating the intersection. 70 71 * @return A <code>DBag</code> instance that contains the intersection of this 72 73 * object and <code>otherBag</code>. 74 75 */ 76 77 // @see com.sun.java.util.collections.Collection#retainAll 78 79 public DBag intersection(DBag otherBag); 80 81 82 83 /** 84 85 * A new <code>DBag</code> instance is created that contains the difference of 86 87 * this object and the <code>DBag</code> instance referenced by <code>otherBag</code>. 88 89 * This method is similar to the <code>removeAll</code> method in <code>Collection</code>, 90 91 * except that this method creates a new collection and <code>removeAll</code> 92 93 * modifies the object to contain the result. 94 95 * @param otherBag The other bag to use in creating the difference. 96 97 * @return A <code>DBag</code> instance that contains the elements of this object 98 99 * minus the elements in <code>otherBag</code>. 100 101 */ 102 103 // * @see com.sun.java.util.collections.Collection#removeAll 104 105 public DBag difference(DBag otherBag); 106 107 108 109 /** 110 111 * This method returns the number of occurrences of the object <code>obj</code> 112 113 * in the <code>DBag</code> collection. 114 115 * @param obj The value that may have elements in the collection. 116 117 * @return The number of occurrences of <code>obj</code> in this collection. 118 119 */ 120 121 public int occurrences(Object obj); 122 123 } 124