Print

Print


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