/* * Created on Mar 22, 2005 */ package edu.mit.simile.fresnel.purpose; import java.util.Iterator; import edu.mit.simile.fresnel.util.WrappedVector; /** * A set of <code>Purpose</code>s. * * @author ryanlee */ public class PurposeSet extends WrappedVector<Purpose> { /** * Returns a PurposeIterator instead of a normal iterator. * * @return A <code>PurposeIterator</code> */ public Iterator<Purpose> purposeIterator() { return this._base.iterator(); } /** * Adds a purpose to the existing set. * * @param purpose A <code>Purpose</code> * @return Success or failure */ public boolean addPurpose(Purpose purpose) { return this._base.add(purpose); } /** * Removes a purpose from the existing set. * * @param purpose A <code>Purpose</code> * @return Success or failure */ public boolean removePurpose(Purpose purpose) { return this._base.remove(purpose); } /** * Add all elements from a purpose set into this one. * * @param arg0 A <code>PurposeSet</code> * @return Success or failure */ public boolean addPurposeSet(PurposeSet arg0) { return this._base.addAll(arg0._base); } /** * Replace WrappedVector contains method to do specific <code>Purpose</code> * equality checking. * * @param purpose The <code>Purpose</code> component to check * @return True if contained in set, false if not. */ public boolean contains(Purpose purpose) { for (Iterator<Purpose> it = this.purposeIterator(); it.hasNext(); ) { if (purpose.equals(it.next())) return true; } return false; } /** * @see java.lang.Object#toString() */ public String toString() { String state = " [PurposeSet " + super.toString() + "]\n"; Iterator<Purpose> it = this.purposeIterator(); while (it.hasNext()) { Purpose purpose = it.next(); state += purpose; } return state; } }