You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by aa...@apache.org on 2006/08/08 04:21:50 UTC

svn commit: r429541 - in /incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/wocompat: EOModelProcessor.java EOObjAttribute.java EOObjEntity.java

Author: aadamchik
Date: Mon Aug  7 19:21:49 2006
New Revision: 429541

URL: http://svn.apache.org/viewvc?rev=429541&view=rev
Log:
CAY-623 - vanilla implementation of EOModel processor extensions patch (although I carried over some of the later additions to the classes in question that were added by committers)

Modified:
    incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/wocompat/EOModelProcessor.java
    incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/wocompat/EOObjAttribute.java
    incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/wocompat/EOObjEntity.java

Modified: incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/wocompat/EOModelProcessor.java
URL: http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/wocompat/EOModelProcessor.java?rev=429541&r1=429540&r2=429541&view=diff
==============================================================================
--- incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/wocompat/EOModelProcessor.java (original)
+++ incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/wocompat/EOModelProcessor.java Mon Aug  7 19:21:49 2006
@@ -257,17 +257,17 @@
         // create ObjEntity
         EOObjEntity objEntity = new EOObjEntity(name);
         objEntity.setEoMap(entityPlist);
-        objEntity.setIsClientEntity(generateClientClass);
+        objEntity.setServerOnly(!generateClientClass);
         String parent = (String) entityPlist.get("parent");
         objEntity.setClassName(helper.entityClass(name, generateClientClass));
 
         if (parent != null) {
-            objEntity.setHasSuperClass(true);
+            objEntity.setSubclass(true);
             objEntity.setSuperClassName(helper.entityClass(parent, generateClientClass));
         }
 
         // add flag whether this entity is set as abstract in the model
-        objEntity.setIsAbstractEntity("Y".equals(entityPlist.get("isAbstractEntity")));
+        objEntity.setAbstractEntity("Y".equals(entityPlist.get("isAbstractEntity")));
 
         // create DbEntity...since EOF allows the same table to be
         // associated with multiple EOEntities, check for name duplicates
@@ -330,11 +330,11 @@
         List primaryKeys = (List) entityPlistMap.get("primaryKeyAttributes");
 
         List classProperties;
-        if (objEntity.getIsClientEntity()) {
-            classProperties = (List) entityPlistMap.get("clientClassProperties");
+        if (objEntity.isServerOnly()) {
+            classProperties = (List) entityPlistMap.get("classProperties");
         }
         else {
-            classProperties = (List) entityPlistMap.get("classProperties");
+            classProperties = (List) entityPlistMap.get("clientClassProperties");
         }
 
         List attributes = (List) entityPlistMap.get("attributes");

Modified: incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/wocompat/EOObjAttribute.java
URL: http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/wocompat/EOObjAttribute.java?rev=429541&r1=429540&r2=429541&view=diff
==============================================================================
--- incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/wocompat/EOObjAttribute.java (original)
+++ incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/wocompat/EOObjAttribute.java Mon Aug  7 19:21:49 2006
@@ -16,53 +16,37 @@
  *  specific language governing permissions and limitations
  *  under the License.
  ****************************************************************/
-
 package org.apache.cayenne.wocompat;
 
 import org.apache.cayenne.map.ObjAttribute;
 import org.apache.cayenne.map.ObjEntity;
 
 /**
- * An EOObjAttribute is a mapping descriptor of a Java class property with added
- * fields for WebObjects EOModel.
- *
- * @author Dario Bagatto
+ * An ObjAttribute extension that accomodates EOModel attributes.
+ * 
+ * @author Andrus Adamchik
  */
 public class EOObjAttribute extends ObjAttribute {
 
-    // flag whether this attribute is read only.
     protected boolean readOnly;
 
-
     public EOObjAttribute() {
-        super();
-    }
 
+    }
 
     public EOObjAttribute(String name) {
         super(name);
     }
 
-
-    public EOObjAttribute(String name, String type, ObjEntity entity) {
-        super(name, type, entity);
+    public EOObjAttribute(String name, String type, ObjEntity parent) {
+        super(name, type, parent);
     }
 
+    public boolean isReadOnly() {
+        return readOnly;
+    }
 
-    /**
-     * Sets the read only state of this attribute.
-     * @param readOnly
-     */
     public void setReadOnly(boolean readOnly) {
         this.readOnly = readOnly;
     }
-
-    /**
-     * Get the read only state of this attribute
-     * @return read only state of this attribute
-     */
-    public boolean getReadOnly() {
-        return readOnly;
-    }
-
 }

Modified: incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/wocompat/EOObjEntity.java
URL: http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/wocompat/EOObjEntity.java?rev=429541&r1=429540&r2=429541&view=diff
==============================================================================
--- incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/wocompat/EOObjEntity.java (original)
+++ incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/wocompat/EOObjEntity.java Mon Aug  7 19:21:49 2006
@@ -27,114 +27,74 @@
 import java.util.Map;
 import java.util.StringTokenizer;
 
-import org.apache.commons.collections.Transformer;
 import org.apache.cayenne.CayenneRuntimeException;
 import org.apache.cayenne.exp.Expression;
 import org.apache.cayenne.exp.ExpressionFactory;
 import org.apache.cayenne.map.Entity;
 import org.apache.cayenne.map.ObjEntity;
 import org.apache.cayenne.query.Query;
+import org.apache.commons.collections.Transformer;
 
 /**
- * An EOObjEntity is a mapping descriptor of a Java class property with added fields for
- * WebObjects EOModel. It is an informal "decorator" of Cayenne ObjEntity to provide
- * access to the extra information of WebObjects EOEntity.
+ * An extension of ObjEntity used to accomodate extra EOModel entity properties.
  * 
- * @author Dario Bagatto
+ * @author Andrus Adamchik
  */
 public class EOObjEntity extends ObjEntity {
 
-    // flag that indicates whether this Entity represents a client java class
-    protected boolean isClientEntity;
-    // flag that indicates whether this Entity has a superclass set in the eonmodel
-    protected boolean hasSuperClass;
-    // flag that indicates whether this Entity is set as abstract in the eomodel
-    protected boolean isAbstractEntity;
+    protected boolean subclass;
+    protected boolean abstractEntity;
 
     private Collection filteredQueries;
     private Map eoMap;
 
     public EOObjEntity() {
-        super();
     }
 
-    public EOObjEntity(String s) {
-        super(s);
+    public EOObjEntity(String name) {
+        super(name);
     }
 
     /**
-     * Sets the the superclass state.
-     * 
-     * @param value
+     * @deprecated since 2.0 use setSubclass()
      */
     public void setHasSuperClass(boolean value) {
-        hasSuperClass = value;
+        setSubclass(value);
     }
 
     /**
-     * Returns the superclass state.
-     * 
-     * @return true when there is a superclass defined in the eomodel.
+     * @deprecated since 2.0 use isSubclass()
      */
     public boolean getHasSuperClass() {
-        return hasSuperClass;
+        return isSubclass();
     }
 
     /**
-     * Sets the client entity state.
-     * 
-     * @param value
+     * @deprecated since 2.0 use setServerOnly()
      */
     public void setIsClientEntity(boolean value) {
-        isClientEntity = value;
+        setServerOnly(!value);
     }
 
     /**
-     * Returns the client entity flag
-     * 
-     * @return true when this entity object represents a client java class.
+     * @deprecated since 2.0 use !isServerOnly()
      */
     public boolean getIsClientEntity() {
-        return isClientEntity;
+        return !isServerOnly();
     }
 
     /**
-     * Sets the abstract entity flag.
-     * 
-     * @param value
+     * @deprecated since 2.0 use setAbstractEntity()
      */
     public void setIsAbstractEntity(boolean value) {
-        isAbstractEntity = value;
+        setAbstractEntity(value);
     }
 
     /**
-     * Returns the abstract Entity state
-     * 
-     * @return true if this entity is set as abstract int the eomodel.
+     * @deprecated since 2.0 use isAbstractEntity()
      */
     public boolean getIsAbstractEntity() {
-        return isAbstractEntity;
-    }
-
-    /**
-     * Translates query name local to the ObjEntity to the global name. This translation
-     * is needed since EOModels store queries by entity, while Cayenne DataMaps store them
-     * globally.
-     * 
-     * @since 1.1
-     */
-    public String qualifiedQueryName(String queryName) {
-        return getName() + "_" + queryName;
-    }
-
-    /**
-     * @since 1.1
-     */
-    public String localQueryName(String qualifiedQueryName) {
-        return (qualifiedQueryName != null && qualifiedQueryName.startsWith(getName()
-                + "_"))
-                ? qualifiedQueryName.substring(getName().length() + 1)
-                : qualifiedQueryName;
+        return isAbstractEntity();
     }
 
     /**
@@ -152,30 +112,6 @@
     }
 
     /**
-     * Returns a collection of queries for this entity.
-     * 
-     * @since 1.1
-     */
-    public Collection getEOQueries() {
-        if (filteredQueries == null) {
-            Collection queries = getDataMap().getQueries();
-            if (queries.isEmpty()) {
-                filteredQueries = Collections.EMPTY_LIST;
-            }
-            else {
-                Map params = Collections.singletonMap("root", EOObjEntity.this);
-                Expression filter = Expression
-                        .fromString("root = $root")
-                        .expWithParameters(params);
-
-                filteredQueries = filter.filter(queries, new ArrayList());
-            }
-        }
-
-        return filteredQueries;
-    }
-
-    /**
      * Overrides super to support translation of EO attributes that have no ObjAttributes.
      * 
      * @since 1.2
@@ -214,6 +150,67 @@
     // initialization code from EOModelProcessor to this class, kind of like EOQuery does.
     void setEoMap(Map eoMap) {
         this.eoMap = eoMap;
+    }
+
+    /**
+     * Returns a collection of queries for this entity.
+     * 
+     * @since 1.1
+     */
+    public Collection getEOQueries() {
+        if (filteredQueries == null) {
+            Collection queries = getDataMap().getQueries();
+            if (queries.isEmpty()) {
+                filteredQueries = Collections.EMPTY_LIST;
+            }
+            else {
+                Map params = Collections.singletonMap("root", EOObjEntity.this);
+                Expression filter = Expression
+                        .fromString("root = $root")
+                        .expWithParameters(params);
+
+                filteredQueries = filter.filter(queries, new ArrayList());
+            }
+        }
+
+        return filteredQueries;
+    }
+
+    public boolean isAbstractEntity() {
+        return abstractEntity;
+    }
+
+    public void setAbstractEntity(boolean abstractEntity) {
+        this.abstractEntity = abstractEntity;
+    }
+
+    public boolean isSubclass() {
+        return subclass;
+    }
+
+    public void setSubclass(boolean subclass) {
+        this.subclass = subclass;
+    }
+
+    /**
+     * Translates query name local to the ObjEntity to the global name. This translation
+     * is needed since EOModels store queries by entity, while Cayenne DataMaps store them
+     * globally.
+     * 
+     * @since 1.1
+     */
+    public String qualifiedQueryName(String queryName) {
+        return getName() + "_" + queryName;
+    }
+
+    /**
+     * @since 1.1
+     */
+    public String localQueryName(String qualifiedQueryName) {
+        return (qualifiedQueryName != null && qualifiedQueryName.startsWith(getName()
+                + "_"))
+                ? qualifiedQueryName.substring(getName().length() + 1)
+                : qualifiedQueryName;
     }
 
     final class DBPathConverter implements Transformer {