Modified: openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/Attributes.java URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/Attributes.java?rev=665986&r1=665985&r2=665986&view=diff ============================================================================== --- openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/Attributes.java (original) +++ openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/Attributes.java Mon Jun 9 23:05:30 2008 @@ -17,8 +17,11 @@ package org.apache.openejb.jee.jpa; +import org.apache.openejb.jee.KeyedCollection; + import java.util.ArrayList; import java.util.List; +import java.util.Map; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlElement; @@ -324,6 +327,15 @@ return this.manyToMany; } + public Map<String, RelationField> getRelationshipFieldMap() { + KeyedCollection<String, RelationField> fields = new KeyedCollection<String, RelationField>(); + if (oneToOne != null) fields.addAll(oneToOne); + if (oneToMany != null) fields.addAll(oneToMany); + if (manyToMany != null) fields.addAll(manyToMany); + if (manyToOne != null) fields.addAll(manyToOne); + return fields.toMap(); + } + /** * Gets the value of the embedded property. * @@ -382,4 +394,20 @@ return this._transient; } + + // TODO: This should not be necessary, but having an empty <attributes/> tag + // causes some of the unit tests to fail. Not sure why. Should be fixed. + public boolean isEmpty(){ + if (id != null) return false; + if (embeddedId != null) return false; + if (basic != null) return false; + if (version != null) return false; + if (manyToOne != null) return false; + if (oneToMany != null) return false; + if (oneToOne != null) return false; + if (manyToMany != null) return false; + if (embedded != null) return false; + if (_transient != null) return false; + return true; + } }
Modified: openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/Basic.java URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/Basic.java?rev=665986&r1=665985&r2=665986&view=diff ============================================================================== --- openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/Basic.java (original) +++ openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/Basic.java Mon Jun 9 23:05:30 2008 @@ -260,4 +260,7 @@ this.optional = value; } + public Object getKey() { + return name; + } } Modified: openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/Entity.java URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/Entity.java?rev=665986&r1=665985&r2=665986&view=diff ============================================================================== --- openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/Entity.java (original) +++ openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/Entity.java Mon Jun 9 23:05:30 2008 @@ -184,6 +184,16 @@ @XmlTransient protected String ejbName; + @XmlTransient + protected boolean xmlMetadataComplete; + + public Entity() { + } + + public Entity(String clazz) { + this.clazz = clazz; + } + /** * Gets the value of the description property. * @@ -947,6 +957,14 @@ this.ejbName = ejbName; } + public boolean isXmlMetadataComplete() { + return xmlMetadataComplete; + } + + public void setXmlMetadataComplete(boolean xmlMetadataComplete) { + this.xmlMetadataComplete = xmlMetadataComplete; + } + public void addField(Field field) { if (field == null) throw new NullPointerException("field is null"); if (field instanceof Id) { Modified: openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/Field.java URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/Field.java?rev=665986&r1=665985&r2=665986&view=diff ============================================================================== --- openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/Field.java (original) +++ openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/Field.java Mon Jun 9 23:05:30 2008 @@ -16,7 +16,9 @@ */ package org.apache.openejb.jee.jpa; -public interface Field { +import org.apache.openejb.jee.Keyable; + +public interface Field extends Keyable { Column getColumn(); void setColumn(Column value); Modified: openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/Id.java URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/Id.java?rev=665986&r1=665985&r2=665986&view=diff ============================================================================== --- openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/Id.java (original) +++ openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/Id.java Mon Jun 9 23:05:30 2008 @@ -232,4 +232,7 @@ this.name = value; } + public Object getKey() { + return name; + } } Modified: openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/ManyToMany.java URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/ManyToMany.java?rev=665986&r1=665985&r2=665986&view=diff ============================================================================== --- openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/ManyToMany.java (original) +++ openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/ManyToMany.java Mon Jun 9 23:05:30 2008 @@ -323,4 +323,8 @@ public void setSyntheticField(boolean syntheticField) { this.syntheticField = syntheticField; } + + public Object getKey() { + return name; + } } Modified: openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/ManyToOne.java URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/ManyToOne.java?rev=665986&r1=665985&r2=665986&view=diff ============================================================================== --- openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/ManyToOne.java (original) +++ openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/ManyToOne.java Mon Jun 9 23:05:30 2008 @@ -307,4 +307,8 @@ public void setSyntheticField(boolean syntheticField) { this.syntheticField = syntheticField; } + + public Object getKey() { + return name; + } } Modified: openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/OneToMany.java URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/OneToMany.java?rev=665986&r1=665985&r2=665986&view=diff ============================================================================== --- openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/OneToMany.java (original) +++ openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/OneToMany.java Mon Jun 9 23:05:30 2008 @@ -355,4 +355,8 @@ public void setSyntheticField(boolean syntheticField) { this.syntheticField = syntheticField; } + + public Object getKey() { + return name; + } } Modified: openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/OneToOne.java URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/OneToOne.java?rev=665986&r1=665985&r2=665986&view=diff ============================================================================== --- openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/OneToOne.java (original) +++ openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/OneToOne.java Mon Jun 9 23:05:30 2008 @@ -350,4 +350,8 @@ public void setSyntheticField(boolean syntheticField) { this.syntheticField = syntheticField; } + + public Object getKey() { + return name; + } } Modified: openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/RelationField.java URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/RelationField.java?rev=665986&r1=665985&r2=665986&view=diff ============================================================================== --- openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/RelationField.java (original) +++ openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/RelationField.java Mon Jun 9 23:05:30 2008 @@ -16,9 +16,11 @@ */ package org.apache.openejb.jee.jpa; +import org.apache.openejb.jee.Keyable; + import java.util.List; -public interface RelationField { +public interface RelationField extends Keyable { List<JoinColumn> getJoinColumn(); JoinTable getJoinTable(); Modified: openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/Transient.java URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/Transient.java?rev=665986&r1=665985&r2=665986&view=diff ============================================================================== --- openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/Transient.java (original) +++ openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/Transient.java Mon Jun 9 23:05:30 2008 @@ -92,4 +92,8 @@ public void setColumn(Column value) { throw new UnsupportedOperationException("Transient fields don't have column mappings"); } + + public Object getKey() { + return name; + } }
