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());
 


Reply via email to