You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@click.apache.org by sa...@apache.org on 2011/01/19 23:27:50 UTC

svn commit: r1061031 - in /click/trunk/click: documentation/docs/roadmap-changes.html extras/src/org/apache/click/extras/cayenne/CayenneTemplate.java

Author: sabob
Date: Wed Jan 19 22:27:50 2011
New Revision: 1061031

URL: http://svn.apache.org/viewvc?rev=1061031&view=rev
Log:
Align CayenneTemplate generics with Cayenne's DataContext. CLK-751

Modified:
    click/trunk/click/documentation/docs/roadmap-changes.html
    click/trunk/click/extras/src/org/apache/click/extras/cayenne/CayenneTemplate.java

Modified: click/trunk/click/documentation/docs/roadmap-changes.html
URL: http://svn.apache.org/viewvc/click/trunk/click/documentation/docs/roadmap-changes.html?rev=1061031&r1=1061030&r2=1061031&view=diff
==============================================================================
--- click/trunk/click/documentation/docs/roadmap-changes.html (original)
+++ click/trunk/click/documentation/docs/roadmap-changes.html Wed Jan 19 22:27:50 2011
@@ -357,6 +357,10 @@ Fixed table headers that used incorrect 
               [<a target="_blank" href="https://issues.apache.org/jira/browse/CLK-241">CLK-241</a>].
           </li>
           <li class="change">
+              Fixed CayenneTemplate generics to align with Cayenne DataContext
+              [<a target="_blank" href="https://issues.apache.org/jira/browse/CLK-750">CLK-750</a>].
+          </li>
+          <li class="change">
               Fixed readonly CheckList to use <tt>disabled</tt> attribute, 
               same as Checkbox does [<a target="_blank" href="https://issues.apache.org/jira/browse/CLK-751">CLK-751</a>].
           </li>

Modified: click/trunk/click/extras/src/org/apache/click/extras/cayenne/CayenneTemplate.java
URL: http://svn.apache.org/viewvc/click/trunk/click/extras/src/org/apache/click/extras/cayenne/CayenneTemplate.java?rev=1061031&r1=1061030&r2=1061031&view=diff
==============================================================================
--- click/trunk/click/extras/src/org/apache/click/extras/cayenne/CayenneTemplate.java (original)
+++ click/trunk/click/extras/src/org/apache/click/extras/cayenne/CayenneTemplate.java Wed Jan 19 22:27:50 2011
@@ -65,10 +65,10 @@ public class CayenneTemplate {
      * Instantiates new object and registers it with itself. Object class must
      * have a default constructor.
      *
-     * @param dataObjectClass the data object class to create and register
-     * @return the new registered data object
+     * @param persistentClass the persistent object class to create and register
+     * @return the new registered persistent object
      */
-    protected DataObject newObject(Class<DataObject> dataObjectClass) {
+    protected <T> T newObject(Class<T> dataObjectClass) {
         return getDataContext().newObject(dataObjectClass);
     }
 
@@ -76,11 +76,13 @@ public class CayenneTemplate {
      * Instantiates new object and registers it with itself. Object class must
      * have a default constructor.
      *
-     * @param dataObjectClass the data object class to create and register
-     * @return the new registered data object
+     * @deprecated since 2.3.0, use {@link #newObject(java.lang.Class)} instead.
+     *
+     * @param persistentClass the persistent object class to create and register
+     * @return the new registered persistent object
      */
-    protected DataObject createAndRegisterNewObject(Class<DataObject> dataObjectClass) {
-        return getDataContext().newObject(dataObjectClass);
+    protected <T> T createAndRegisterNewObject(Class<T> persistentClass) {
+        return getDataContext().newObject(persistentClass);
     }
 
     /**
@@ -107,26 +109,27 @@ public class CayenneTemplate {
     }
 
     /**
-     * Find the data object for the specified class, property name and property
-     * value, or null if no data object was found.
+     * Find the persistent object for the specified class, property name and property
+     * value, or null if no persistent object was found.
      *
-     * @param dataObjectClass the data object class to find
+     * @param persistentClass the persistent object class to find
      * @param property the name of the property
      * @param value the value of the property
-     * @return the data object for the specified class, property name and property value
-     * @throws RuntimeException if more than one data object was identified for the
-     * given property name and value
+     * @return the persistent object for the specified class, property name and
+     * property value
+     * @throws RuntimeException if more than one persistent object was identified
+     * for the given property name and value
      */
-    protected DataObject findObject(Class dataObjectClass, String property,
+    protected <T> T findObject(Class<T> persistentClass, String property,
             Object value) {
 
-        List list = performQuery(dataObjectClass, property, value);
+        List list = performQuery(persistentClass, property, value);
 
         if (list.size() == 1) {
-            return (DataObject) list.get(0);
+            return (T) list.get(0);
 
         } else if (list.size() > 1) {
-            String msg = "SelectQuery for " + dataObjectClass.getName()
+            String msg = "SelectQuery for " + persistentClass.getName()
                     + " where " + property + " equals " + value + " returned "
                     + list.size() + " rows";
             throw new RuntimeException(msg);
@@ -174,37 +177,37 @@ public class CayenneTemplate {
      * class and the primary key. This method will perform a database query
      * and refresh the object cache.
      *
-     * @param doClass the data object class to retrieve
+     * @param persistentClass the persistent object class to retrieve
      * @param id the data object primary key
      * @return the data object for the given class and id
      */
-    protected DataObject getObjectForPK(Class doClass, Object id) {
-        return getObjectForPK(doClass, id, true);
+    protected <T> T getObjectForPK(Class<T> persistentClass, Object id) {
+        return getObjectForPK(persistentClass, id, true);
     }
 
     /**
-     * Perform a query returning the data object specified by the
+     * Perform a query returning the persistent object specified by the
      * class and the primary key value. If the refresh parameter is true a
      * database query will be performed, otherwise the a query against the
      * object cache will be performed first.
      *
-     * @param dataObjectClass the data object class to retrieve
-     * @param id the data object primary key
+     * @param persistentClass the persistent object class to retrieve
+     * @param id the persistent object primary key
      * @param refresh the refresh the object cache mode
-     * @return the data object for the given class and id
+     * @return the persistent object for the given class and id
      */
-    protected DataObject getObjectForPK(Class dataObjectClass, Object id, boolean refresh) {
-        Validate.notNull(dataObjectClass, "Null dataObjectClass parameter.");
+    protected <T> T getObjectForPK(Class<T> persistentClass, Object id, boolean refresh) {
+        Validate.notNull(persistentClass, "Null persistentClass parameter.");
 
         ObjEntity objEntity =
-            getDataContext().getEntityResolver().lookupObjEntity(dataObjectClass);
+            getDataContext().getEntityResolver().lookupObjEntity(persistentClass);
 
         if (objEntity == null) {
             throw new CayenneRuntimeException("Unmapped DataObject Class: "
-                    + dataObjectClass.getName());
+                    + persistentClass.getName());
         }
 
-        String pkName = getPkName(dataObjectClass);
+        String pkName = getPkName(persistentClass);
 
         ObjectId objectId = new ObjectId(objEntity.getName(), pkName, id);
 
@@ -212,24 +215,24 @@ public class CayenneTemplate {
 
         ObjectIdQuery objectIdQuery = new ObjectIdQuery(objectId, false, refreshMode);
 
-        return (DataObject) DataObjectUtils.objectForQuery(getDataContext(), objectIdQuery);
+        return (T) DataObjectUtils.objectForQuery(getDataContext(), objectIdQuery);
     }
 
     /**
      * Return the database primary key column name for the given data object.
      *
-     * @param dataObjectClass the class of the data object
+     * @param persistentClass the class of the persistent object
      * @return the primary key column name
      */
-    protected String getPkName(Class dataObjectClass) {
-        Validate.notNull(dataObjectClass, "Null dataObjectClass parameter.");
+    protected String getPkName(Class persistentClass) {
+        Validate.notNull(persistentClass, "Null persistentClass parameter.");
 
         ObjEntity objEntity =
-            getDataContext().getEntityResolver().lookupObjEntity(dataObjectClass);
+            getDataContext().getEntityResolver().lookupObjEntity(persistentClass);
 
         if (objEntity == null) {
             throw new CayenneRuntimeException("Unmapped DataObject Class: "
-                    + dataObjectClass.getName());
+                    + persistentClass.getName());
         }
 
         DbEntity dbEntity = objEntity.getDbEntity();