Author: aadamchik
Date: Tue Aug 1 19:42:21 2006
New Revision: 427860
URL: http://svn.apache.org/viewvc?rev=427860&view=rev
Log:
jpa - updating mapping elements to match the spec
Modified:
incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaAbstractEntity.java
incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaAttributes.java
incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaBasic.java
incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaCascade.java
incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaEmbeddableAttribute.java
incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/resources/META-INF/cayenne/orm-coder.xml
incubator/cayenne/main/trunk/core/cayenne-jpa/src/test/java/org/apache/cayenne/jpa/conf/MappingAssertion.java
incubator/cayenne/main/trunk/core/cayenne-jpa/src/test/resources/xml-samples/orm-schema-headers-full.xml
Modified:
incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaAbstractEntity.java
URL:
http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaAbstractEntity.java?rev=427860&r1=427859&r2=427860&view=diff
==============================================================================
---
incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaAbstractEntity.java
(original)
+++
incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaAbstractEntity.java
Tue Aug 1 19:42:21 2006
@@ -54,6 +54,14 @@
this.excludeDefaultListeners = excludeDefaultListeners;
}
+ /**
+ * A setter used for XML serialization purposes that internally calls
+ * <em>setExcludeDefaultListeners(true)</em>.
+ */
+ public void setExcludeDefaultListenersTrue(Object value) {
+ setExcludeDefaultListeners(true);
+ }
+
public boolean isExcludeSuperclassListeners() {
return excludeSuperclassListeners;
}
@@ -61,6 +69,14 @@
public void setExcludeSuperclassListeners(boolean
excludeSuperclassListeners) {
this.excludeSuperclassListeners = excludeSuperclassListeners;
}
+
+ /**
+ * A setter used for XML serialization purposes that internally calls
+ * <em>setExcludeSuperclassListeners(true)</em>.
+ */
+ public void setExcludeSuperclassListenersTrue(Object value) {
+ setExcludeSuperclassListeners(true);
+ }
public JpaIdClass getIdClass() {
return idClass;
@@ -127,7 +143,7 @@
}
public JpaAttributes getAttributes() {
- if(attributes == null) {
+ if (attributes == null) {
attributes = new JpaAttributes();
}
return attributes;
Modified:
incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaAttributes.java
URL:
http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaAttributes.java?rev=427860&r1=427859&r2=427860&view=diff
==============================================================================
---
incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaAttributes.java
(original)
+++
incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaAttributes.java
Tue Aug 1 19:42:21 2006
@@ -185,6 +185,22 @@
}
return manyToManyRelationships;
}
+
+ public JpaManyToMany getManyToManyRelationship(String attributeName) {
+ if (attributeName == null) {
+ throw new IllegalArgumentException("Null attribute name");
+ }
+
+ if (manyToManyRelationships != null) {
+ for (JpaManyToMany attribute : manyToManyRelationships) {
+ if (attributeName.equals(attribute.getName())) {
+ return attribute;
+ }
+ }
+ }
+
+ return null;
+ }
public Collection<JpaManyToOne> getManyToOneRelationships() {
if (manyToOneRelationships == null) {
@@ -205,6 +221,22 @@
oneToOneRelationships = new ArrayList<JpaOneToOne>();
}
return oneToOneRelationships;
+ }
+
+ public JpaOneToOne getOneToOneRelationship(String attributeName) {
+ if (attributeName == null) {
+ throw new IllegalArgumentException("Null attribute name");
+ }
+
+ if (oneToOneRelationships != null) {
+ for (JpaOneToOne attribute : oneToOneRelationships) {
+ if (attributeName.equals(attribute.getName())) {
+ return attribute;
+ }
+ }
+ }
+
+ return null;
}
public Collection<JpaTransient> getTransientAttributes() {
Modified:
incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaBasic.java
URL:
http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaBasic.java?rev=427860&r1=427859&r2=427860&view=diff
==============================================================================
---
incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaBasic.java
(original)
+++
incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaBasic.java
Tue Aug 1 19:42:21 2006
@@ -84,6 +84,10 @@
public void setLob(boolean lob) {
this.lob = lob;
}
+
+ public void setLobTrue(Object value) {
+ setLob(true);
+ }
public TemporalType getTemporal() {
return temporal;
Modified:
incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaCascade.java
URL:
http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaCascade.java?rev=427860&r1=427859&r2=427860&view=diff
==============================================================================
---
incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaCascade.java
(original)
+++
incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaCascade.java
Tue Aug 1 19:42:21 2006
@@ -19,6 +19,7 @@
package org.apache.cayenne.jpa.map;
import java.util.Collection;
+import java.util.LinkedHashSet;
import javax.persistence.CascadeType;
@@ -28,11 +29,29 @@
public Collection<CascadeType> getCascades() {
if (cascades == null) {
- // TODO: andrus, 4/20/2006 - replace with
- // ArrayList<CascadeType>() once CAY-520 gets implemented in
Cayenne > 1.2
- cascades = new EnumList(CascadeType.class,
CascadeType.values().length);
+ cascades = new LinkedHashSet<CascadeType>(5);
}
return cascades;
+ }
+
+ public void setCascadeAll(Object value) {
+ getCascades().add(CascadeType.ALL);
+ }
+
+ public void setCascadeMerge(Object value) {
+ getCascades().add(CascadeType.MERGE);
+ }
+
+ public void setCascadePersist(Object value) {
+ getCascades().add(CascadeType.PERSIST);
+ }
+
+ public void setCascadeRefresh(Object value) {
+ getCascades().add(CascadeType.REFRESH);
+ }
+
+ public void setCascadeRemove(Object value) {
+ getCascades().add(CascadeType.REMOVE);
}
}
Modified:
incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaEmbeddableAttribute.java
URL:
http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaEmbeddableAttribute.java?rev=427860&r1=427859&r2=427860&view=diff
==============================================================================
---
incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaEmbeddableAttribute.java
(original)
+++
incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaEmbeddableAttribute.java
Tue Aug 1 19:42:21 2006
@@ -82,7 +82,7 @@
/**
* A special setter used by XML decoder to indicate lob flag presence.
*/
- public void setLobTrue(String string) {
+ public void setLobTrue(Object value) {
setLob(true);
}
}
Modified:
incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/resources/META-INF/cayenne/orm-coder.xml
URL:
http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/resources/META-INF/cayenne/orm-coder.xml?rev=427860&r1=427859&r2=427860&view=diff
==============================================================================
---
incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/resources/META-INF/cayenne/orm-coder.xml
(original)
+++
incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/resources/META-INF/cayenne/orm-coder.xml
Tue Aug 1 19:42:21 2006
@@ -43,11 +43,11 @@
</entity>
<entity name="org.apache.cayenne.jpa.map.JpaCascade" xmlTag="cascade">
- <property name="cascades" xmlTag="cascade-all"/>
- <property name="cascades" xmlTag="cascade-persist"/>
- <property name="cascades" xmlTag="cascade-merge"/>
- <property name="cascades" xmlTag="cascade-remove"/>
- <property name="cascades" xmlTag="cascade-refresh"/>
+ <property name="cascadeAll" xmlTag="cascade-all"/>
+ <property name="cascadePersist" xmlTag="cascade-persist"/>
+ <property name="cascadeMerge" xmlTag="cascade-merge"/>
+ <property name="cascadeRemove" xmlTag="cascade-remove"/>
+ <property name="cascadeRefresh" xmlTag="cascade-refresh"/>
</entity>
<entity name="org.apache.cayenne.jpa.map.JpaAttributeOverride"
xmlTag="attribute-override">
@@ -75,7 +75,7 @@
<entity name="org.apache.cayenne.jpa.map.JpaBasic" xmlTag="basic">
<property name="column" xmlTag="column"/>
- <property name="lob" xmlTag="lob"/>
+ <property name="lobTrue" xmlTag="lob"/>
<property name="temporal" xmlTag="temporal"/>
<property name="enumerated" xmlTag="enumerated"/>
@@ -153,8 +153,8 @@
<property name="namedQueries" xmlTag="named-query"/>
<property name="namedNativeQueries"
xmlTag="named-native-query"/>
<property name="sqlResultSetMapping"
xmlTag="sql-result-set-mapping"/>
- <property name="excludeDefaultListeners"
xmlTag="exclude-default-listeners"/>
- <property name="excludeSuperclassListeners"
xmlTag="exclude-superclass-listeners"/>
+ <property name="excludeDefaultListenersTrue"
xmlTag="exclude-default-listeners"/>
+ <property name="excludeSuperclassListenersTrue"
xmlTag="exclude-superclass-listeners"/>
<property name="entityListeners" xmlTag="entity-listeners"/>
<property name="prePersist" xmlTag="pre-persist"/>
<property name="postPersist" xmlTag="post-persist"/>
@@ -299,8 +299,8 @@
<entity name="org.apache.cayenne.jpa.map.JpaMappedSuperclass"
xmlTag="mapped-superclass">
<property name="description" xmlTag="description"/>
<property name="idClass" xmlTag="id-class"/>
- <property name="excludeDefaultListeners"
xmlTag="exclude-default-listeners"/>
- <property name="excludeSuperclassListeners"
xmlTag="exclude-superclass-listeners"/>
+ <property name="excludeDefaultListenersTrue"
xmlTag="exclude-default-listeners"/>
+ <property name="excludeSuperclassListenersTrue"
xmlTag="exclude-superclass-listeners"/>
<property name="entityListeners.entityListeners"
xmlTag="entity-listener"/>
<property name="prePersist" xmlTag="pre-persist"/>
<property name="postPersist" xmlTag="post-persist"/>
Modified:
incubator/cayenne/main/trunk/core/cayenne-jpa/src/test/java/org/apache/cayenne/jpa/conf/MappingAssertion.java
URL:
http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jpa/src/test/java/org/apache/cayenne/jpa/conf/MappingAssertion.java?rev=427860&r1=427859&r2=427860&view=diff
==============================================================================
---
incubator/cayenne/main/trunk/core/cayenne-jpa/src/test/java/org/apache/cayenne/jpa/conf/MappingAssertion.java
(original)
+++
incubator/cayenne/main/trunk/core/cayenne-jpa/src/test/java/org/apache/cayenne/jpa/conf/MappingAssertion.java
Tue Aug 1 19:42:21 2006
@@ -277,7 +277,7 @@
assertEquals("MockEntity5", entity5.getName());
assertNotNull(entity5.getAttributes());
- assertEquals(17, entity5.getAttributes().size());
+ assertEquals(16, entity5.getAttributes().size());
assertAttributes(entity5.getAttributes());
}
@@ -572,12 +572,16 @@
protected void assertAttributes(JpaAttributes attributes) {
// BASIC
- assertTrue(attributes.getBasicAttributes().size() > 0);
- JpaBasic a0 = attributes.getBasicAttributes().iterator().next();
+ assertEquals(5, attributes.getBasicAttributes().size());
+ JpaBasic a0 = attributes.getBasicAttribute("attribute1");
assertEquals("attribute1", a0.getName());
assertTrue(a0.isOptional());
assertSame(FetchType.EAGER, a0.getFetch());
+ // LOB
+ assertNotNull(attributes.getBasicAttribute("attribute12"));
+ assertTrue(attributes.getBasicAttribute("attribute12").isLob());
+
// VERSION
assertEquals(1, attributes.getVersionAttributes().size());
JpaVersion a1 = attributes.getVersionAttributes().iterator().next();
@@ -585,23 +589,25 @@
// ONE-TO_ONE
assertEquals(1, attributes.getOneToOneRelationships().size());
- JpaOneToOne a2 =
attributes.getOneToOneRelationships().iterator().next();
+ JpaOneToOne a2 = attributes.getOneToOneRelationship("attribute3");
+ assertEquals("attribute3", a2.getName());
assertEquals("org.apache.cayenne.jpa.entity.MockTargetEntity1", a2
.getTargetEntityName());
assertTrue(a2.isOptional());
assertSame(FetchType.LAZY, a2.getFetch());
assertEquals("mb1", a2.getMappedBy());
-
+
assertNotNull(a2.getCascade());
Collection<CascadeType> cascades = a2.getCascade().getCascades();
assertEquals(2, cascades.size());
Iterator cascades1It = cascades.iterator();
- assertSame(CascadeType.MERGE, cascades1It.next());
- assertSame(CascadeType.PERSIST, cascades1It.next());
+ assertSame(CascadeType.REMOVE, cascades1It.next());
+ assertSame(CascadeType.REFRESH, cascades1It.next());
// ONE-TO-MANY
assertTrue(attributes.getOneToManyRelationships().size() > 0);
JpaOneToMany a3 =
attributes.getOneToManyRelationships().iterator().next();
+ assertEquals("attribute4", a3.getName());
assertEquals("org.apache.cayenne.jpa.entity.MockTargetEntity2", a3
.getTargetEntityName());
assertSame(FetchType.LAZY, a3.getFetch());
@@ -609,8 +615,8 @@
assertNotNull(a3.getCascade());
assertEquals(2, a3.getCascade().getCascades().size());
Iterator cascades2It = a3.getCascade().getCascades().iterator();
- assertSame(CascadeType.MERGE, cascades2It.next());
assertSame(CascadeType.PERSIST, cascades2It.next());
+ assertSame(CascadeType.MERGE, cascades2It.next());
// JOIN COLUMN
JpaOneToMany a9 = attributes.getOneToManyRelationship("attribute10");
@@ -626,8 +632,5 @@
assertTrue(joinColumn.isUnique());
assertTrue(joinColumn.isUpdatable());
- // LOB
- assertNotNull(attributes.getBasicAttribute("attribute12"));
- assertTrue(attributes.getBasicAttribute("attribute12").isLob());
}
}
Modified:
incubator/cayenne/main/trunk/core/cayenne-jpa/src/test/resources/xml-samples/orm-schema-headers-full.xml
URL:
http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jpa/src/test/resources/xml-samples/orm-schema-headers-full.xml?rev=427860&r1=427859&r2=427860&view=diff
==============================================================================
---
incubator/cayenne/main/trunk/core/cayenne-jpa/src/test/resources/xml-samples/orm-schema-headers-full.xml
(original)
+++
incubator/cayenne/main/trunk/core/cayenne-jpa/src/test/resources/xml-samples/orm-schema-headers-full.xml
Tue Aug 1 19:42:21 2006
@@ -468,8 +468,8 @@
<one-to-one name="attribute3"
target-entity="org.apache.cayenne.jpa.entity.MockTargetEntity1"
fetch="LAZY" optional="true" mapped-by="mb1">
<cascade>
- <cascade-persist/>
- <cascade-merge/>
+ <cascade-remove/>
+ <cascade-refresh/>
</cascade>
</one-to-one>