LISTSERV mailing list manager LISTSERV 16.5

Help for HPS-SVN Archives


HPS-SVN Archives

HPS-SVN Archives


HPS-SVN@LISTSERV.SLAC.STANFORD.EDU


View:

Message:

[

First

|

Previous

|

Next

|

Last

]

By Topic:

[

First

|

Previous

|

Next

|

Last

]

By Author:

[

First

|

Previous

|

Next

|

Last

]

Font:

Proportional Font

LISTSERV Archives

LISTSERV Archives

HPS-SVN Home

HPS-SVN Home

HPS-SVN  November 2014

HPS-SVN November 2014

Subject:

r1579 - in /java/trunk/conditions/src/main/java/org/hps/conditions/api: AbstractConditionsObject.java ConditionsObject.java ConditionsObjectCollection.java

From:

[log in to unmask]

Reply-To:

Notification of commits to the hps svn repository <[log in to unmask]>

Date:

Tue, 25 Nov 2014 09:48:25 -0000

Content-Type:

text/plain

Parts/Attachments:

Parts/Attachments

text/plain (364 lines)

Author: [log in to unmask]
Date: Tue Nov 25 01:48:21 2014
New Revision: 1579

Log:
Simplify conditions object API by removing unnecessary methods. 

Modified:
    java/trunk/conditions/src/main/java/org/hps/conditions/api/AbstractConditionsObject.java
    java/trunk/conditions/src/main/java/org/hps/conditions/api/ConditionsObject.java
    java/trunk/conditions/src/main/java/org/hps/conditions/api/ConditionsObjectCollection.java

Modified: java/trunk/conditions/src/main/java/org/hps/conditions/api/AbstractConditionsObject.java
 =============================================================================
--- java/trunk/conditions/src/main/java/org/hps/conditions/api/AbstractConditionsObject.java	(original)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/api/AbstractConditionsObject.java	Tue Nov 25 01:48:21 2014
@@ -19,8 +19,6 @@
     private TableMetaData tableMetaData = null;
     protected int rowId = -1;
     protected int collectionId = -1;
-    protected boolean isDirty = false;
-    protected boolean isReadOnly = false;
     protected FieldValueMap fieldValues;
 
     /**
@@ -42,40 +40,24 @@
         return collectionId;
     }
 
-    public boolean isReadOnly() {
-        return isReadOnly;
-    }
-
     public boolean isNew() {
         return rowId == -1;
     }
 
-    public boolean isDirty() {
-        return isDirty;
-    }
-
     public void delete() throws ConditionsObjectException {
-        if (isReadOnly()) {
-            throw new ConditionsObjectException("This object is set to read only.");
-        }
-        if (isNew()) {
-            throw new ConditionsObjectException("This object is not in the database and so cannot be deleted.");
-        }
         String query = QueryBuilder.buildDelete(tableMetaData.getTableName(), rowId);
+        // TODO: Replace this with a method that takes a conditions object.
         DatabaseConditionsManager.getInstance().updateQuery(query);
         rowId = -1;
     }
 
     public void insert() throws ConditionsObjectException {
-        if (!isNew())
-            throw new ConditionsObjectException("Record already exists in database and cannot be inserted.");
-        if (isReadOnly())
-            throw new ConditionsObjectException("This object is set to read only mode.");
         if (fieldValues.size() == 0)
             throw new ConditionsObjectException("There are no field values to insert.");
-        if (!hasValidCollection())
+        if (collectionId == -1)
             throw new ConditionsObjectException("The object's collection ID is not valid.");
-        String query = QueryBuilder.buildInsert(getTableMetaData().getTableName(), getCollectionId(), getTableMetaData().getFieldNames(), fieldValues.valuesToArray());        
+        // TODO: Replace this with a method that takes a conditions object.
+        String query = QueryBuilder.buildInsert(getTableMetaData().getTableName(), getCollectionId(), getTableMetaData().getFieldNames(), fieldValues.valuesToArray());
         System.out.println(query);
         List<Integer> keys = DatabaseConditionsManager.getInstance().updateQuery(query);
         if (keys.size() != 1) {
@@ -88,6 +70,7 @@
         if (isNew()) {
             throw new ConditionsObjectException("Record has not been inserted into the database yet.");
         }
+        // TODO: Replace this with method that takes a conditions object.
         String query = QueryBuilder.buildSelect(getTableMetaData().getTableName(), collectionId, fieldValues.fieldsToArray(), "id ASC");
         DatabaseConditionsManager manager = DatabaseConditionsManager.getInstance();
         ResultSet resultSet = manager.selectQuery(query);
@@ -107,30 +90,20 @@
     }
 
     public void update() throws ConditionsObjectException {
-        if (isReadOnly()) {
-            throw new ConditionsObjectException("This object is set to read only.", this);
-        }
-        if (isNew()) {
-            throw new ConditionsObjectException("Cannot call update on a new record.", this);
-        }
         if (fieldValues.size() == 0) {
             throw new ConditionsObjectException("No field values to update.", this);
         }
+        // TODO: Replace this with method that takes a conditions object.
         String query = QueryBuilder.buildUpdate(tableMetaData.getTableName(), rowId, fieldValues.fieldsToArray(), fieldValues.valuesToArray());
         DatabaseConditionsManager.getInstance().updateQuery(query);
-        setIsDirty(false);
     }
 
     public void setFieldValue(String key, Object value) {
         fieldValues.put(key, value);
-        setIsDirty(true);
     }
 
     public void setFieldValues(FieldValueMap fieldValues) {
         this.fieldValues = fieldValues;
-        if (!isNew()) {
-            setIsDirty(true);
-        }
     }
 
     public <T> T getFieldValue(Class<T> klass, String field) {
@@ -158,22 +131,11 @@
         this.collectionId = collectionId;
     }
 
-    public void setIsDirty(boolean isDirty) {
-        this.isDirty = isDirty;
-    }
-
-    public void setIsReadOnly() {
-        isReadOnly = true;
-    }
-
     public void setRowId(int rowId) throws ConditionsObjectException {
-        if (this.rowId != -1)
+        if (!isNew()) {
             throw new ConditionsObjectException("The row ID cannot be reassigned on an existing object.");
+        }
         this.rowId = rowId;
-    }
-
-    boolean hasValidCollection() {
-        return collectionId != -1;
     }
 
     public String toString() {
@@ -186,6 +148,4 @@
         }
         return sb.toString();
     }
-    
-    
 }

Modified: java/trunk/conditions/src/main/java/org/hps/conditions/api/ConditionsObject.java
 =============================================================================
--- java/trunk/conditions/src/main/java/org/hps/conditions/api/ConditionsObject.java	(original)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/api/ConditionsObject.java	Tue Nov 25 01:48:21 2014
@@ -4,10 +4,11 @@
 
 /**
  * This is an ORM interface for accessing conditions database information by
- * row. It can handle new or existing records. The ID values for new records are
+ * row. It can handle new or existing records. The row ID values for new records are
  * -1 which indicates they are not in the database yet.
  * @author Jeremy McCormick <[log in to unmask]>
  */
+// TODO: The collection ID should be a regular field in the FieldValueMap.
 public interface ConditionsObject {
 
     /**
@@ -50,26 +51,6 @@
     void select() throws ConditionsObjectException;
 
     /**
-     * Return true if this object is read-only.
-     * @return True if object is read-only.
-     */
-    boolean isReadOnly();
-
-    /**
-     * Return true if this object is new and hasn't been inserted into the
-     * database yet.
-     * @return True if object is new.
-     */
-    boolean isNew();
-
-    /**
-     * Return true if this object's data has been modified without a database
-     * update.
-     * @return True if object is dirty.
-     */
-    boolean isDirty();
-
-    /**
      * Generic set method for field values. This will set the object to the
      * 'dirty' state.
      * @param fieldName The name of the field.
@@ -95,7 +76,7 @@
      * @param field The field value.
      * @return The field value casted to type T.
      */
-    public <T> T getFieldValue(Class<T> klass, String field);
+    public <T> T getFieldValue(Class<T> type, String field);
 
     /**
      * Get a field value with implicit return type.
@@ -127,10 +108,11 @@
      * @throws ConditionsObjectException if already set
      */
     public void setRowId(int rowId) throws ConditionsObjectException;
-
+    
     /**
-     * Set the object to read only mode. This cannot be changed back once it is
-     * set.
+     * Return true if this object is new, e.g. it does not have a valid row ID.
+     * This means that it does not have a database record in its table.
+     * @return True if record is new.
      */
-    void setIsReadOnly();   
+    public boolean isNew();
 }

Modified: java/trunk/conditions/src/main/java/org/hps/conditions/api/ConditionsObjectCollection.java
 =============================================================================
--- java/trunk/conditions/src/main/java/org/hps/conditions/api/ConditionsObjectCollection.java	(original)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/api/ConditionsObjectCollection.java	Tue Nov 25 01:48:21 2014
@@ -6,6 +6,7 @@
 import java.util.LinkedHashSet;
 import java.util.Set;
 
+import org.hps.conditions.database.DatabaseConditionsManager;
 import org.hps.conditions.database.TableMetaData;
 
 public class ConditionsObjectCollection<ObjectType extends ConditionsObject> implements Iterable<ObjectType> {
@@ -13,25 +14,14 @@
     protected Set<ObjectType> objects = new LinkedHashSet<ObjectType>();
     protected TableMetaData tableMetaData;
     protected int collectionId = -1;
-    protected boolean isReadOnly;
-    protected boolean isDirty;
-    protected boolean isNew;
     protected ConditionsRecord conditionsRecord;
 
     protected ConditionsObjectCollection() {
     }
 
-    public ConditionsObjectCollection(TableMetaData tableMetaData, int collectionId, boolean isReadOnly) {
+    public ConditionsObjectCollection(TableMetaData tableMetaData, int collectionId) {
         this.tableMetaData = tableMetaData;
         this.collectionId = collectionId;
-        this.isReadOnly = isReadOnly;
-        if (collectionId == -1) {
-            this.isNew = true;
-        }
-    }
-
-    public ConditionsRecord getConditionsRecord() {
-        return conditionsRecord;
     }
 
     public ObjectType get(int index) {
@@ -70,8 +60,6 @@
         if (object.getTableMetaData() == null && tableMetaData != null)
             object.setTableMetaData(tableMetaData);
         objects.add(object);
-        if (!isNew())
-            setIsDirty(true);
     }
 
     public TableMetaData getTableMetaData() {
@@ -88,82 +76,53 @@
         for (ConditionsObject object : objects) {
             object.update();
         }
-        setIsDirty(false);
     }
 
-    // TODO: This does not need to loop. It should just call delete on the
-    // collection ID value.
+    // TODO: This does not need to loop. It should just call delete on the collection ID value.
     public void delete() throws ConditionsObjectException {
-        if (isReadOnly()) {
-            throw new ConditionsObjectException("Collection is read only.");
-        }
+        // TODO: Replace with call to a deleteCollection DatabaseConditionsManager method.
         for (ConditionsObject object : objects) {
             object.delete();
         }
     }
 
-    // TODO: This should not loop. It should select all the objects with a
-    // matching collection ID from the database.
+    // TODO: This should not loop. It should select all the objects with a matching collection ID 
+    //       from the database replacing the current contents of the collection (if any).
     public void select() throws ConditionsObjectException, SQLException {
+        // TODO: Replace with call to a selectCollection DatabaseConditionsManager method.
         for (ConditionsObject object : objects) {
             object.select();
         }
     }
 
-    // TODO: This method needs to get the next collection ID from the conditions
-    // manager.
-    // TODO: This operation should lock the table.
     public void insert() throws ConditionsObjectException, SQLException {
-        if (!isNew()) {
-            throw new ConditionsObjectException("Collection already exists in the database.");
-        }
-        for (ConditionsObject object : objects) {
-            // if (object.isNew()) {
-            object.insert();
-            // }
-        }
-        isNew = false;
-    }
-
-    public boolean isDirty() {
-        return isDirty;
-    }
-
-    public boolean isReadOnly() {
-        return isReadOnly;
-    }
-
-    void setIsDirty(boolean isDirty) {
-        this.isDirty = isDirty;
-    }
-
-    // TODO: This can probably just check if collection ID is not valid e.g. equals -1.
-    public boolean isNew() {
-        return isNew;
+        DatabaseConditionsManager.getInstance().insertCollection(this);
     }
 
     public void setCollectionId(int collectionId) throws ConditionsObjectException {
         if (this.collectionId != -1)
             throw new ConditionsObjectException("The collection ID is already set.");
         this.collectionId = collectionId;
+        for (ConditionsObject object : this.objects) {
+            object.setCollectionId(this.collectionId);
+        }
     }
 
     public void setTableMetaData(TableMetaData tableMetaData) {
         this.tableMetaData = tableMetaData;
     }
 
-    public void setIsReadOnly(boolean isReadOnly) {
-        this.isReadOnly = isReadOnly;
-    }
-
-    public void setConditionsRecord(ConditionsRecord conditionsRecord) throws ConditionsObjectException {
-        if (this.conditionsRecord != null)
-            throw new ConditionsObjectException("The ConditionsRecord is already set on this collection.");
-        this.conditionsRecord = conditionsRecord;
-    }
-
     @Override
     public Iterator<ObjectType> iterator() {
         return objects.iterator();
     }       
-}
+    
+    public String toString() {
+        StringBuffer buffer = new StringBuffer();
+        for (ConditionsObject object : this.getObjects()) {
+            buffer.append(object.toString());
+            buffer.append('\n');
+        }
+        return buffer.toString();
+    }
+}

Top of Message | Previous Page | Permalink

Advanced Options


Options

Log In

Log In

Get Password

Get Password


Search Archives

Search Archives


Subscribe or Unsubscribe

Subscribe or Unsubscribe


Archives

November 2017
August 2017
July 2017
January 2017
December 2016
November 2016
October 2016
September 2016
August 2016
July 2016
June 2016
May 2016
April 2016
March 2016
February 2016
January 2016
December 2015
November 2015
October 2015
September 2015
August 2015
July 2015
June 2015
May 2015
April 2015
March 2015
February 2015
January 2015
December 2014
November 2014
October 2014
September 2014
August 2014
July 2014
June 2014
May 2014
April 2014
March 2014
February 2014
January 2014
December 2013
November 2013

ATOM RSS1 RSS2



LISTSERV.SLAC.STANFORD.EDU

Secured by F-Secure Anti-Virus CataList Email List Search Powered by the LISTSERV Email List Manager

Privacy Notice, Security Notice and Terms of Use