Author: [log in to unmask]
Date: Mon Apr 27 16:01:14 2015
New Revision: 2833
Log:
Add method to find conditions records that match a certain key. Override add method so that undesirable behavior in super class does not execute.
Modified:
java/branches/HPSJAVA-488/conditions/src/main/java/org/hps/conditions/api/ConditionsRecord.java
Modified: java/branches/HPSJAVA-488/conditions/src/main/java/org/hps/conditions/api/ConditionsRecord.java
=============================================================================
--- java/branches/HPSJAVA-488/conditions/src/main/java/org/hps/conditions/api/ConditionsRecord.java (original)
+++ java/branches/HPSJAVA-488/conditions/src/main/java/org/hps/conditions/api/ConditionsRecord.java Mon Apr 27 16:01:14 2015
@@ -26,6 +26,18 @@
@SuppressWarnings("serial")
public static class ConditionsRecordCollection extends BaseConditionsObjectCollection<ConditionsRecord> {
+ @Override
+ public boolean add(final ConditionsRecord object) throws ConditionsObjectException {
+ if (object == null) {
+ throw new IllegalArgumentException("The object argument is null.");
+ }
+ final boolean added = getObjects().add(object);
+ if (!added) {
+ throw new RuntimeException("Failed to add object.");
+ }
+ return added;
+ }
+
/**
* Compare conditions records by creation date.
*/
@@ -190,6 +202,23 @@
public final ConditionsRecordCollection sortedByUpdated() {
return (ConditionsRecordCollection) sorted(new UpdatedComparator());
}
+
+ /**
+ * Find a sub-set of the records with matching key name.
+ */
+ public ConditionsRecordCollection findByKey(String key) {
+ ConditionsRecordCollection collection = new ConditionsRecordCollection();
+ for (ConditionsRecord record : this) {
+ if (record.getName().equals(key)) {
+ try {
+ collection.add(record);
+ } catch (ConditionsObjectException e) {
+ throw new RuntimeException("Error adding record to new collection.", e);
+ }
+ }
+ }
+ return collection;
+ }
}
/**
|