Author: [log in to unmask] Date: Thu Jan 1 23:04:32 2015 New Revision: 1817 Log: Add interface for collections of ConditionsObjects. Added: java/trunk/conditions/src/main/java/org/hps/conditions/api/ConditionsObjectCollection.java Modified: java/trunk/conditions/src/main/java/org/hps/conditions/api/AbstractConditionsObjectCollection.java Modified: java/trunk/conditions/src/main/java/org/hps/conditions/api/AbstractConditionsObjectCollection.java ============================================================================= --- java/trunk/conditions/src/main/java/org/hps/conditions/api/AbstractConditionsObjectCollection.java (original) +++ java/trunk/conditions/src/main/java/org/hps/conditions/api/AbstractConditionsObjectCollection.java Thu Jan 1 23:04:32 2015 @@ -17,7 +17,8 @@ * @author Jeremy McCormick <[log in to unmask]> * @param <ObjectType> The concrete type of the collection class. */ -public abstract class AbstractConditionsObjectCollection<ObjectType extends ConditionsObject> extends LinkedHashSet<ObjectType> { +@SuppressWarnings("serial") +public abstract class AbstractConditionsObjectCollection<ObjectType extends ConditionsObject> extends LinkedHashSet<ObjectType> implements ConditionsObjectCollection<ObjectType> { protected TableMetaData tableMetaData = null; protected int collectionId = -1; Added: java/trunk/conditions/src/main/java/org/hps/conditions/api/ConditionsObjectCollection.java ============================================================================= --- java/trunk/conditions/src/main/java/org/hps/conditions/api/ConditionsObjectCollection.java (added) +++ java/trunk/conditions/src/main/java/org/hps/conditions/api/ConditionsObjectCollection.java Thu Jan 1 23:04:32 2015 @@ -0,0 +1,71 @@ +/** + * + */ +package org.hps.conditions.api; + +import java.sql.SQLException; +import java.util.Comparator; +import java.util.Set; + +import org.hps.conditions.database.TableMetaData; + +/** + * @author Jeremy McCormick <[log in to unmask]> + */ +public interface ConditionsObjectCollection<ObjectType extends ConditionsObject> extends Set<ObjectType> { + + /** + * Get the table meta data. + * @return + */ + public TableMetaData getTableMetaData(); + + /** + * Get the collection ID. + * @return + */ + public int getCollectionId(); + + /** + * Get the conditions record. + * @return + */ + public ConditionsRecord getConditionsRecord(); + + /** + * Set the collection ID. + * Once set it cannot be assign again, which will cause an exception. + * @param collectionId + * @throws ConditionsObjectException + */ + public void setCollectionId(int collectionId) throws ConditionsObjectException; + + public void insert() throws ConditionsObjectException, SQLException; + + public int select(); + + public int delete(); + + public int update(); + + /** + * Get an object by index. + * @param index The index in the set. + * @return The object at the index. + * @throws IndexOutOfBoundsException If the index value is invalid. + */ + public ObjectType get(int index); + + /** + * Sort the collection in place. + * @param comparator The comparator to use for sorting. + */ + public void sort(Comparator<ObjectType> comparator); + + /** + * Get a sorted list of the objects, leaving original collection in place. + * @param comparator The comparator to use for the sort. + * @return A sorted list of the objects. + */ + public AbstractConditionsObjectCollection<ObjectType> sorted(Comparator<ObjectType> comparator); +}