1 package org.apache.ojb.broker.util.collections; 2 3 /* Copyright 2002-2005 The Apache Software Foundation 4 * 5 * Licensed under the Apache License, Version 2.0 (the "License"); 6 * you may not use this file except in compliance with the License. 7 * You may obtain a copy of the License at 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 */ 17 18 import org.apache.ojb.broker.ManageableCollection; 19 import org.apache.ojb.broker.PersistenceBroker; 20 import org.apache.ojb.broker.PersistenceBrokerException; 21 22 import java.util.HashSet; 23 import java.util.Iterator; 24 25 /** 26 * is a utility class. provides a HashSet that addionally implements 27 * the ManageableCollection interface. This class may be used 28 * as a type for collection attributes. 29 * 30 * @author <a href="mailto:thma@apache.org">Thomas Mahler<a> 31 * @version $Id: ManageableHashSet.java,v 1.1 2007-08-24 22:17:39 ewestfal Exp $ 32 */ 33 public class ManageableHashSet extends HashSet implements ManageableCollection 34 { 35 /** 36 * add a single Object to the Collection. This method is used during reading Collection elements 37 * from the database. Thus it is is save to cast anObject to the underlying element type of the 38 * collection. 39 */ 40 public void ojbAdd(Object anObject) 41 { 42 super.add(anObject); 43 } 44 45 /** 46 * adds a Collection to this collection. Used in reading Extents from the Database. 47 * Thus it is save to cast otherCollection to this.getClass(). 48 */ 49 public void ojbAddAll(ManageableCollection otherCollection) 50 { 51 super.addAll((ManageableHashSet) otherCollection); 52 } 53 54 public void afterStore(PersistenceBroker broker) throws PersistenceBrokerException 55 { 56 //do nothing 57 } 58 59 /** 60 * returns an Iterator over all elements in the collection. Used during store and delete Operations. 61 * If the implementor does not return an iterator over ALL elements, OJB cannot store and delete all elements properly. 62 * 63 */ 64 public Iterator ojbIterator() 65 { 66 return super.iterator(); 67 } 68 }