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>
                


Reply via email to