1 package org.odmg; 2 3 4 5 /** 6 7 * The ODMG Set collection interface. 8 9 * A <code>DSet</code> object is an unordered collection that does not support 10 11 * multiple elements with the same value. An implementation typically is very 12 13 * efficient at determining whether the collection contains a particular value. 14 15 * <p> 16 17 * All of the operations defined by the JavaSoft <code>Set</code> 18 19 * interface are supported by an ODMG implementation of <code>DSet</code>, 20 21 * the exception <code>UnsupportedOperationException</code> is not thrown when a 22 23 * call is made to any of the <code>Set</code> methods. 24 25 * @author David Jordan (as Java Editor of the Object Data Management Group) 26 27 * @version ODMG 3.0 28 29 */ 30 31 // * @see java.lang.UnsupportedOperationException 32 33 34 35 public interface DSet extends DCollection, java.util.Set 36 37 { 38 39 40 41 /** 42 43 * Create a new <code>DSet</code> object that is the set union of this 44 45 * <code>DSet</code> object and the set referenced by <code>otherSet</code>. 46 47 * @param otherSet The other set to be used in the union operation. 48 49 * @return A newly created <code>DSet</code> instance that contains the union of the two sets. 50 51 */ 52 53 public DSet union(DSet otherSet); 54 55 56 57 /** 58 59 * Create a new <code>DSet</code> object that is the set intersection of this 60 61 * <code>DSet</code> object and the set referenced by <code>otherSet</code>. 62 63 * @param otherSet The other set to be used in the intersection operation. 64 65 * @return A newly created <code>DSet</code> instance that contains the 66 67 * intersection of the two sets. 68 69 */ 70 71 public DSet intersection(DSet otherSet); 72 73 74 75 /** 76 77 * Create a new <code>DSet</code> object that contains the elements of this 78 79 * collection minus the elements in <code>otherSet</code>. 80 81 * @param otherSet A set containing elements that should not be in the result set. 82 83 * @return A newly created <code>DSet</code> instance that contains the elements 84 85 * of this set minus those elements in <code>otherSet</code>. 86 87 */ 88 89 public DSet difference(DSet otherSet); 90 91 92 93 /** 94 95 * Determine whether this set is a subset of the set referenced by <code>otherSet</code>. 96 97 * @param otherSet Another set. 98 99 * @return True if this set is a subset of the set referenced by <code>otherSet</code>, 100 101 * otherwise false. 102 103 */ 104 105 public boolean subsetOf(DSet otherSet); 106 107 108 109 /** 110 111 * Determine whether this set is a proper subset of the set referenced by 112 113 * <code>otherSet</code>. 114 115 * @param otherSet Another set. 116 117 * @return True if this set is a proper subset of the set referenced by 118 119 * <code>otherSet</code>, otherwise false. 120 121 */ 122 123 public boolean properSubsetOf(DSet otherSet); 124 125 126 127 /** 128 129 * Determine whether this set is a superset of the set referenced by <code>otherSet</code>. 130 131 * @param otherSet Another set. 132 133 * @return True if this set is a superset of the set referenced by <code>otherSet</code>, 134 135 * otherwise false. 136 137 */ 138 139 public boolean supersetOf(DSet otherSet); 140 141 142 143 /** 144 145 * Determine whether this set is a proper superset of the set referenced by 146 147 * <code>otherSet</code>. 148 149 * @param otherSet Another set. 150 151 * @return True if this set is a proper superset of the set referenced by 152 153 * <code>otherSet</code>, otherwise false. 154 155 */ 156 157 public boolean properSupersetOf(DSet otherSet); 158 159 } 160