001 package org.odmg; 002 003 004 005 /** 006 007 * This interface defines the operations associated with an ODMG bag collection. 008 009 * All of the operations defined by the JavaSoft <code>Collection</code> 010 011 * interface are supported by an ODMG implementation of <code>DBag</code>, 012 013 * the exception <code>UnsupportedOperationException</code> is not thrown when a 014 015 * call is made to any of the <code>Collection</code> methods. 016 017 * @author David Jordan (as Java Editor of the Object Data Management Group) 018 019 * @version ODMG 3.0 020 021 */ 022 023 // * @see java.lang.UnsupportedOperationException 024 025 026 027 public interface DBag extends DCollection 028 029 { 030 031 /** 032 033 * A new <code>DBag</code> instance is created that is the union of this object 034 035 * and <code>otherBag</code>. 036 037 * This method is similar to the <code>addAll</code> method in <code>Collection</code>, 038 039 * except that this method creates a new collection and <code>addAll</code> 040 041 * modifies the object to contain the result. 042 043 * @param otherBag The other bag to use in the union operation. 044 045 * @return A <code>DBag</code> instance that contains the union of this object 046 047 * and <code>otherBag</code>. 048 049 */ 050 051 // * @see com.sun.java.util.collections.Collection#addAll 052 053 public DBag union(DBag otherBag); 054 055 056 057 /** 058 059 * A new <code>DBag</code> instance is created that contains the intersection of 060 061 * this object and the <code>DBag</code> referenced by <code>otherBag</code>. 062 063 * This method is similar to the <code>retainAll</code> method in <code>Collection</code>, 064 065 * except that this method creates a new collection and <code>retainAll</code> 066 067 * modifies the object to contain the result. 068 069 * @param otherBag The other bag to use in creating the intersection. 070 071 * @return A <code>DBag</code> instance that contains the intersection of this 072 073 * object and <code>otherBag</code>. 074 075 */ 076 077 // @see com.sun.java.util.collections.Collection#retainAll 078 079 public DBag intersection(DBag otherBag); 080 081 082 083 /** 084 085 * A new <code>DBag</code> instance is created that contains the difference of 086 087 * this object and the <code>DBag</code> instance referenced by <code>otherBag</code>. 088 089 * This method is similar to the <code>removeAll</code> method in <code>Collection</code>, 090 091 * except that this method creates a new collection and <code>removeAll</code> 092 093 * modifies the object to contain the result. 094 095 * @param otherBag The other bag to use in creating the difference. 096 097 * @return A <code>DBag</code> instance that contains the elements of this object 098 099 * 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