java/trunk/conditions/src/main/java/org/hps/conditions
--- java/trunk/conditions/src/main/java/org/hps/conditions/ConditionsObjectCollection.java 2014-05-16 19:44:39 UTC (rev 592)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/ConditionsObjectCollection.java 2014-05-17 00:28:10 UTC (rev 593)
@@ -3,13 +3,14 @@
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Collections;
+import java.util.Iterator;
import java.util.List;
// TODO: This class should have a reference to its ConditionsRecord.
// TODO: Collections with a mix of different collection IDs on their objects should always be read only.
-public class ConditionsObjectCollection<T extends ConditionsObject> {
+public class ConditionsObjectCollection<ObjectType extends ConditionsObject> implements Iterable<ObjectType> {
- protected List<T> objects = new ArrayList<T>();
+ protected List<ObjectType> objects = new ArrayList<ObjectType>();
protected TableMetaData tableMetaData;
protected int collectionId = -1;
protected boolean isReadOnly;
@@ -19,7 +20,7 @@
protected ConditionsObjectCollection() {
}
-
+
public ConditionsObjectCollection(TableMetaData tableMetaData, int collectionId, boolean isReadOnly) {
this.tableMetaData = tableMetaData;
this.collectionId = collectionId;
@@ -28,12 +29,16 @@
this.isNew = true;
}
}
+
+ public ConditionsRecord getConditionsRecord() {
+ return conditionsRecord;
+ }
- public T get(int index) {
+ public ObjectType get(int index) {
return objects.get(index);
}
- public List<T> getObjects() {
+ public List<ObjectType> getObjects() {
return Collections.unmodifiableList(objects);
}
@@ -45,7 +50,7 @@
// from this collection's, in which case this collection becomes "mixed" and it should
// be
// flagged as read only.
- public void add(T object) throws ConditionsObjectException {
+ public void add(ObjectType object) throws ConditionsObjectException {
if (objects.contains(object)) {
throw new IllegalArgumentException("Collection already contains this object.");
}
@@ -152,4 +157,9 @@
throw new ConditionsObjectException("The ConditionsRecord is already set on this collection.");
this.conditionsRecord = conditionsRecord;
}
+
+ @Override
+ public Iterator<ObjectType> iterator() {
+ return objects.iterator();
+ }
}