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 {