Author: aadamchik
Date: Tue Aug 1 19:09:57 2006
New Revision: 427854
URL: http://svn.apache.org/viewvc?rev=427854&view=rev
Log:
jpa - updating mapping elements to match the spec
Added:
incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaCascade.java
Modified:
incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaEntityMap.java
incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaManyToMany.java
incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaManyToOne.java
incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaOneToMany.java
incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaOneToOne.java
incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaRelationship.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
Added:
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=427854&view=auto
==============================================================================
---
incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaCascade.java
(added)
+++
incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaCascade.java
Tue Aug 1 19:09:57 2006
@@ -0,0 +1,38 @@
+/*****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ ****************************************************************/
+package org.apache.cayenne.jpa.map;
+
+import java.util.Collection;
+
+import javax.persistence.CascadeType;
+
+public class JpaCascade {
+
+ protected Collection<CascadeType> cascades;
+
+ 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);
+ }
+
+ return cascades;
+ }
+}
Modified:
incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaEntityMap.java
URL:
http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaEntityMap.java?rev=427854&r1=427853&r2=427854&view=diff
==============================================================================
---
incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaEntityMap.java
(original)
+++
incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaEntityMap.java
Tue Aug 1 19:09:57 2006
@@ -41,6 +41,7 @@
protected String catalog;
protected String schema;
protected AccessType access;
+ protected JpaPersistenceUnitMetadata persistenceUnitMetadata;
protected Collection<JpaEntity> entities;
protected Collection<JpaEmbeddable> embeddables;
@@ -231,5 +232,14 @@
public void setVersion(String version) {
this.version = version;
+ }
+
+ public JpaPersistenceUnitMetadata getPersistenceUnitMetadata() {
+ return persistenceUnitMetadata;
+ }
+
+ public void setPersistenceUnitMetadata(
+ JpaPersistenceUnitMetadata persistenceUnitMetadata) {
+ this.persistenceUnitMetadata = persistenceUnitMetadata;
}
}
Modified:
incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaManyToMany.java
URL:
http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaManyToMany.java?rev=427854&r1=427853&r2=427854&view=diff
==============================================================================
---
incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaManyToMany.java
(original)
+++
incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaManyToMany.java
Tue Aug 1 19:09:57 2006
@@ -28,6 +28,7 @@
protected String mappedBy;
protected JpaJoinTable joinTable;
protected String orderBy;
+ protected String mapKey;
public JpaManyToMany() {
@@ -38,10 +39,11 @@
this.targetEntityName = annotation.targetEntity().getName();
}
- // resolve internal collection
- getCascades();
for (int i = 0; i < annotation.cascade().length; i++) {
- cascades.add(annotation.cascade()[i]);
+ if (cascade == null) {
+ cascade = new JpaCascade();
+ }
+ cascade.getCascades().add(annotation.cascade()[i]);
}
fetch = annotation.fetch();
@@ -76,5 +78,13 @@
public void setJoinTable(JpaJoinTable joinTable) {
this.joinTable = joinTable;
+ }
+
+ public String getMapKey() {
+ return mapKey;
+ }
+
+ public void setMapKey(String mapKey) {
+ this.mapKey = mapKey;
}
}
Modified:
incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaManyToOne.java
URL:
http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaManyToOne.java?rev=427854&r1=427853&r2=427854&view=diff
==============================================================================
---
incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaManyToOne.java
(original)
+++
incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaManyToOne.java
Tue Aug 1 19:09:57 2006
@@ -41,10 +41,11 @@
this.targetEntityName = annotation.targetEntity().getName();
}
- // resolve internal collection
- getCascades();
for (int i = 0; i < annotation.cascade().length; i++) {
- cascades.add(annotation.cascade()[i]);
+ if (cascade == null) {
+ cascade = new JpaCascade();
+ }
+ cascade.getCascades().add(annotation.cascade()[i]);
}
fetch = annotation.fetch();
Modified:
incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaOneToMany.java
URL:
http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaOneToMany.java?rev=427854&r1=427853&r2=427854&view=diff
==============================================================================
---
incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaOneToMany.java
(original)
+++
incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaOneToMany.java
Tue Aug 1 19:09:57 2006
@@ -32,6 +32,7 @@
protected Collection<JpaJoinColumn> joinColumns;
protected JpaJoinTable joinTable;
protected String orderBy;
+ protected String mapKey;
public JpaOneToMany() {
@@ -42,10 +43,11 @@
this.targetEntityName = annotation.targetEntity().getName();
}
- // resolve internal collection
- getCascades();
for (int i = 0; i < annotation.cascade().length; i++) {
- cascades.add(annotation.cascade()[i]);
+ if (cascade == null) {
+ cascade = new JpaCascade();
+ }
+ cascade.getCascades().add(annotation.cascade()[i]);
}
fetch = annotation.fetch();
@@ -81,13 +83,21 @@
this.orderBy = orderBy;
}
-
public String getMappedBy() {
return mappedBy;
}
-
public void setMappedBy(String mappedBy) {
this.mappedBy = mappedBy;
+ }
+
+
+ public String getMapKey() {
+ return mapKey;
+ }
+
+
+ public void setMapKey(String mapKey) {
+ this.mapKey = mapKey;
}
}
Modified:
incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaOneToOne.java
URL:
http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaOneToOne.java?rev=427854&r1=427853&r2=427854&view=diff
==============================================================================
---
incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaOneToOne.java
(original)
+++
incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaOneToOne.java
Tue Aug 1 19:09:57 2006
@@ -44,10 +44,11 @@
this.targetEntityName = annotation.targetEntity().getName();
}
- // resolve internal collection
- getCascades();
for (int i = 0; i < annotation.cascade().length; i++) {
- cascades.add(annotation.cascade()[i]);
+ if (cascade == null) {
+ cascade = new JpaCascade();
+ }
+ cascade.getCascades().add(annotation.cascade()[i]);
}
fetch = annotation.fetch();
Modified:
incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaRelationship.java
URL:
http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaRelationship.java?rev=427854&r1=427853&r2=427854&view=diff
==============================================================================
---
incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaRelationship.java
(original)
+++
incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaRelationship.java
Tue Aug 1 19:09:57 2006
@@ -19,29 +19,16 @@
package org.apache.cayenne.jpa.map;
-import java.util.Collection;
-
-import javax.persistence.CascadeType;
import javax.persistence.FetchType;
public abstract class JpaRelationship extends JpaAttribute {
protected String targetEntityName;
protected FetchType fetch;
- protected Collection<CascadeType> cascades;
+ protected JpaCascade cascade;
public abstract boolean isToMany();
- 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);
- }
-
- return cascades;
- }
-
public FetchType getFetch() {
return fetch;
}
@@ -56,5 +43,13 @@
public void setTargetEntityName(String targetEntityName) {
this.targetEntityName = targetEntityName;
+ }
+
+ public JpaCascade getCascade() {
+ return cascade;
+ }
+
+ public void setCascade(JpaCascade cascades) {
+ this.cascade = cascades;
}
}
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=427854&r1=427853&r2=427854&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:09:57 2006
@@ -42,12 +42,20 @@
<property name="version" xmlTag="version" attribute="YES"/>
</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"/>
+ </entity>
+
<entity name="org.apache.cayenne.jpa.map.JpaAttributeOverride"
xmlTag="attribute-override">
<property name="column" xmlTag="column"/>
<property name="name" xmlTag="name" attribute="YES"/>
</entity>
- <entity name="org.apache.cayenne.jpa.map.xml.JpaAttributes"
xmlTag="attributes">
+ <entity name="org.apache.cayenne.jpa.map.JpaAttributes"
xmlTag="attributes">
<property name="ids" xmlTag="id"/>
<property name="embeddedId" xmlTag="embedded-id"/>
<property name="basicAttributes" xmlTag="basic"/>
@@ -269,7 +277,7 @@
<property name="orderBy" xmlTag="order-by"/>
<property name="mapKey" xmlTag="map-key"/>
<property name="joinTable" xmlTag="joinTable"/>
- <property name="cascades" xmlTag="cascade"/>
+ <property name="cascade" xmlTag="cascade"/>
<property name="name" xmlTag="name" attribute="YES"/>
<property name="targetEntityName" xmlTag="target-entity"
attribute="YES"/>
@@ -278,7 +286,7 @@
</entity>
<entity name="org.apache.cayenne.jpa.map.JpaManyToOne"
xmlTag="many-to-one">
- <property name="cascades" xmlTag="cascade"/>
+ <property name="cascade" xmlTag="cascade"/>
<property name="joinColumns" xmlTag="join-column"/>
<property name="joinTable" xmlTag="joinTable"/>
@@ -329,7 +337,7 @@
<property name="mapKey" xmlTag="map-key"/>
<property name="joinTable" xmlTag="joinTable"/>
<property name="joinColumns" xmlTag="join-column"/>
- <property name="cascades" xmlTag="cascade"/>
+ <property name="cascade" xmlTag="cascade"/>
<property name="name" xmlTag="name" attribute="YES"/>
<property name="targetEntityName" xmlTag="target-entity"
attribute="YES"/>
@@ -341,7 +349,7 @@
<property name="primaryKeyJoinColumns"
xmlTag="primary-key-join-column"/>
<property name="joinColumns" xmlTag="join-column"/>
<property name="joinTable" xmlTag="joinTable"/>
- <property name="cascades" xmlTag="cascade"/>
+ <property name="cascade" xmlTag="cascade"/>
<property name="name" xmlTag="name" attribute="YES"/>
<property name="targetEntityName" xmlTag="target-entity"
attribute="YES"/>
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=427854&r1=427853&r2=427854&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:09:57 2006
@@ -591,7 +591,9 @@
assertTrue(a2.isOptional());
assertSame(FetchType.LAZY, a2.getFetch());
assertEquals("mb1", a2.getMappedBy());
- Collection<CascadeType> cascades = a2.getCascades();
+
+ assertNotNull(a2.getCascade());
+ Collection<CascadeType> cascades = a2.getCascade().getCascades();
assertEquals(2, cascades.size());
Iterator cascades1It = cascades.iterator();
assertSame(CascadeType.MERGE, cascades1It.next());
@@ -604,8 +606,9 @@
.getTargetEntityName());
assertSame(FetchType.LAZY, a3.getFetch());
assertEquals("mb2", a3.getMappedBy());
- assertEquals(2, a3.getCascades().size());
- Iterator cascades2It = a3.getCascades().iterator();
+ 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());