Author: [log in to unmask]
Date: Thu Dec 11 11:18:16 2014
New Revision: 1688
Log:
Add metho javadoc.
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 Dec 11 11:18:16 2014
@@ -6,96 +6,149 @@
import org.hps.conditions.database.DatabaseConditionsManager;
import org.hps.conditions.database.TableMetaData;
+/**
+ * This class implements a collection API for ConditionsObjects, using a <code>LinkedHashSet</code>.
+ *
+ * @author Jeremy McCormick <[log in to unmask]>
+ * @param <ObjectType> The concrete type of the collection class.
+ */
public class AbstractConditionsObjectCollection<ObjectType extends ConditionsObject> extends LinkedHashSet<ObjectType> {
protected TableMetaData tableMetaData = null;
protected int collectionId = -1;
protected ConditionsRecord conditionsRecord = null;
+ /**
+ * This is the no argument constructor that would be used when creating a new collection
+ * that is not in the database.
+ */
public AbstractConditionsObjectCollection() {
}
+ /**
+ * This constructor uses the given conditions record and table meta data objects and will assign
+ * the collection ID from the conditions record.
+ * @param conditionsRecord
+ * @param tableMetaData
+ */
public AbstractConditionsObjectCollection(ConditionsRecord conditionsRecord, TableMetaData tableMetaData) {
this.conditionsRecord = conditionsRecord;
this.tableMetaData = tableMetaData;
this.collectionId = conditionsRecord.getCollectionId();
}
+ /**
+ * This constructor is used to explicitly assign all class variable values.
+ * @param conditionsRecord
+ * @param tableMetaData
+ * @param collectionID
+ */
public AbstractConditionsObjectCollection(ConditionsRecord conditionsRecord, TableMetaData tableMetaData, int collectionID) {
this.conditionsRecord = conditionsRecord;
this.tableMetaData = tableMetaData;
this.collectionId = collectionID;
}
- public void setTableMetaData(TableMetaData tableMetaData) {
- /**
- * Setting this more than once is disallowed.
- */
+ /**
+ * Set the associated table meta data for this collection.
+ * Once set it cannot be reassigned, which will cause an exception to be thrown.
+ * @param tableMetaData
+ */
+ public void setTableMetaData(TableMetaData tableMetaData) {
if (this.tableMetaData != null) {
- throw new RuntimeException("The table meta data cannot be reset.");
+ throw new RuntimeException("The table meta data cannot be reset once assigned.");
}
this.tableMetaData = tableMetaData;
}
+ /**
+ * Set the associated conditions record this collection.
+ * Once set it cannot be reassigned, which will cause an exception to be thrown.
+ * @param conditionsRecord
+ */
public void setConditionsRecord(ConditionsRecord conditionsRecord) {
- /**
- * Setting this more than once is disallowed.
- */
if (this.conditionsRecord != null) {
- throw new RuntimeException("The table meta data cannot be reset.");
+ throw new RuntimeException("The conditions record cannot be reset once assigned.");
}
this.conditionsRecord = conditionsRecord;
}
+ /**
+ * Add an object to the collection.
+ */
public boolean add(ObjectType object) {
if (contains(object)) {
- throw new IllegalArgumentException("Cannot add duplicate object " + object);
+ throw new IllegalArgumentException("Cannot add duplicate object " + object + " to collection.");
}
return super.add(object);
}
+ /**
+ * Get the table meta data.
+ * @return
+ */
public TableMetaData getTableMetaData() {
return tableMetaData;
}
+ /**
+ * Get the collection ID.
+ * @return
+ */
public int getCollectionId() {
return collectionId;
}
+ /**
+ * Get the conditions record.
+ * @return
+ */
public ConditionsRecord getConditionsRecord() {
return conditionsRecord;
}
+ /**
+ * 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 {
- if (collectionId != -1) {
+ if (this.collectionId != -1) {
throw new ConditionsObjectException("The collectionId already has the value " + collectionId + " and cannot be reset.");
}
this.collectionId = collectionId;
}
-
+
public void insert() throws ConditionsObjectException, SQLException {
+
+ // TODO: First check here if conditions record and/or collection ID is assigned,
+ // in which case an error should be thrown as this is not a new collection.
+
DatabaseConditionsManager.getInstance().insertCollection(this);
}
- // Should select all records into the collection by collection ID.
+ // Should select records into this collection by collection ID.
public int select() {
- System.out.println("implement me");
- return -1;
+ throw new UnsupportedOperationException("The select operation is not implemented yet.");
}
- // Should delete all records by collection ID in the database and clear the local objects.
+ // Should delete all records by collection ID in the database and then clear the local objects.
public int delete() {
- System.out.println("implement me");
- return -1;
+ throw new UnsupportedOperationException("The delete operation is not implemented yet.");
}
- // Should update objects in the database with their values in the set.
+ // Should update objects in the database with their values from this collection.
+ // All objects would need to have valid row IDs for this to work.
public int update() {
- System.out.println("implement me");
- return -1;
+ throw new UnsupportedOperationException("The update operation is not implemented yet.");
}
+ /**
+ * Convert object to string.
+ */
public String toString() {
+ // TODO: Should print out column headers here.
StringBuffer buffer = new StringBuffer();
for (ConditionsObject object : this) {
buffer.append(object.toString());
|