001 package org.odmg;
002
003
004
005 /**
006
007 * The ODMG Set collection interface.
008
009 * A <code>DSet</code> object is an unordered collection that does not support
010
011 * multiple elements with the same value. An implementation typically is very
012
013 * efficient at determining whether the collection contains a particular value.
014
015 * <p>
016
017 * All of the operations defined by the JavaSoft <code>Set</code>
018
019 * interface are supported by an ODMG implementation of <code>DSet</code>,
020
021 * the exception <code>UnsupportedOperationException</code> is not thrown when a
022
023 * call is made to any of the <code>Set</code> methods.
024
025 * @author David Jordan (as Java Editor of the Object Data Management Group)
026
027 * @version ODMG 3.0
028
029 */
030
031 // * @see java.lang.UnsupportedOperationException
032
033
034
035 public interface DSet extends DCollection, java.util.Set
036
037 {
038
039
040
041 /**
042
043 * Create a new <code>DSet</code> object that is the set union of this
044
045 * <code>DSet</code> object and the set referenced by <code>otherSet</code>.
046
047 * @param otherSet The other set to be used in the union operation.
048
049 * @return A newly created <code>DSet</code> instance that contains the union of the two sets.
050
051 */
052
053 public DSet union(DSet otherSet);
054
055
056
057 /**
058
059 * Create a new <code>DSet</code> object that is the set intersection of this
060
061 * <code>DSet</code> object and the set referenced by <code>otherSet</code>.
062
063 * @param otherSet The other set to be used in the intersection operation.
064
065 * @return A newly created <code>DSet</code> instance that contains the
066
067 * intersection of the two sets.
068
069 */
070
071 public DSet intersection(DSet otherSet);
072
073
074
075 /**
076
077 * Create a new <code>DSet</code> object that contains the elements of this
078
079 * collection minus the elements in <code>otherSet</code>.
080
081 * @param otherSet A set containing elements that should not be in the result set.
082
083 * @return A newly created <code>DSet</code> instance that contains the elements
084
085 * of this set minus those elements in <code>otherSet</code>.
086
087 */
088
089 public DSet difference(DSet otherSet);
090
091
092
093 /**
094
095 * Determine whether this set is a subset of the set referenced by <code>otherSet</code>.
096
097 * @param otherSet Another set.
098
099 * @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