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);
+}
|