User: dsundstrom
  Date: 01/07/09 14:49:23

  Modified:    src/main/org/jboss/ejb/plugins/cmp/jdbc/metadata
                        JDBCApplicationMetaData.java
                        JDBCEntityMetaData.java
  Log:
  Added relationship metadata.
  
  Revision  Changes    Path
  1.5       +53 -14    
jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/metadata/JDBCApplicationMetaData.java
  
  Index: JDBCApplicationMetaData.java
  ===================================================================
  RCS file: 
/cvsroot/jboss/jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/metadata/JDBCApplicationMetaData.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- JDBCApplicationMetaData.java      2001/06/27 03:55:36     1.4
  +++ JDBCApplicationMetaData.java      2001/07/09 21:49:23     1.5
  @@ -6,30 +6,27 @@
    */
   package org.jboss.ejb.plugins.cmp.jdbc.metadata;
   
  +import java.util.ArrayList;
   import java.util.HashMap;
   import java.util.Iterator;
  -
  -import javax.sql.DataSource;
   import javax.naming.InitialContext;
   import javax.naming.NamingException;
  -
  -import org.w3c.dom.Element;
  -
  -import org.jboss.logging.Logger;
  +import javax.sql.DataSource;
   import org.jboss.ejb.DeploymentException;
  -
  -import org.jboss.metadata.XmlLoadable;
  -import org.jboss.metadata.MetaData;
  +import org.jboss.logging.Logger;
  +import org.jboss.metadata.ApplicationMetaData;
   import org.jboss.metadata.BeanMetaData;
   import org.jboss.metadata.EntityMetaData;
  -import org.jboss.metadata.ApplicationMetaData;
  -
  +import org.jboss.metadata.MetaData;
  +import org.jboss.metadata.RelationMetaData;
  +import org.jboss.metadata.XmlLoadable;
  +import org.w3c.dom.Element;
   
   /** 
    *      
    * @author <a href="mailto:[EMAIL PROTECTED]";>Dain Sundstrom</a>
    *   @author <a href="[EMAIL PROTECTED]">Sebastien Alborini</a>
  - *   @version $Revision: 1.4 $
  + *   @version $Revision: 1.5 $
    */
   public class JDBCApplicationMetaData extends MetaData implements XmlLoadable {
        // Constants -----------------------------------------------------
  @@ -59,10 +56,16 @@
        
        // the type mapping to use with the specified database
        private JDBCTypeMappingMetaData typeMapping;
  -     
  +
  +     /**
  +      * Map of relations in this application by name.
  +      * Items are instance of JDBCRelationMetaData.
  +      */
  +     private HashMap relationships = new HashMap();
  +
        // all the available dependent value classes (by javaType)
        private HashMap valueClasses = new HashMap();
  -     
  +             
        
        // Static --------------------------------------------------------
        
  @@ -94,6 +97,14 @@
                                }
                        }
                }
  +             
  +             // relationships
  +             Iterator iterator = applicationMetaData.getRelationships();
  +             while(iterator.hasNext()) {
  +                     RelationMetaData relation = (RelationMetaData) iterator.next();
  +                     JDBCRelationMetaData jdbcRelation = new 
JDBCRelationMetaData(relation, this);
  +                     relationships.put(jdbcRelation.getRelationName(), 
jdbcRelation);
  +             }               
        }
        
        
  @@ -110,6 +121,14 @@
                return typeMapping;
        }
        
  +     /**
  +      * Get the container managed relations in this application.
  +      * Items are instance of JDBCRelationMetaData.
  +      */
  +     public Iterator getRelationships() {
  +             return relationships.values().iterator();
  +     }
  +     
        public Iterator getValueClasses() {
                return valueClasses.values().iterator();
        }
  @@ -217,6 +236,26 @@
                        }
                }
                
  +             // relationships
  +             // get the beans data (only in jbosscmp-jdbc.xml)
  +             Element relationshipsElement = getOptionalChild(element, 
"relationships");
  +             if(relationshipsElement != null) {
  +                     iterator = getChildrenByTagName(relationshipsElement, 
"ejb-relation");                          
  +                     while(iterator.hasNext()) {
  +                             Element relationElement = (Element)iterator.next();
  +
  +                             // get the bean's data, gaurenteed to work because we 
create
  +                             // a metadata object for each bean in the constructor.
  +                             String relationName = 
getElementContent(getUniqueChild(relationElement, "ejb-relation-name"));
  +                             JDBCRelationMetaData relation = 
(JDBCRelationMetaData)relationships.get(relationName);                                 
 
  +                             if(relation != null) {
  +                                     relation.importXml(relationElement);
  +                             } else {
  +                                     Logger.warning("Warning: data found in 
jbosscmp-jdbc.xml for relation " + relationName + " but relation is not a 
jbosscmp-jdbc-managed relation in ejb-jar.xml"); 
  +                             }
  +                     }
  +             }
  +                             
                // dependent-value-objects
                Element valueClassesElement = getOptionalChild(element, 
"dependent-value-classes");
                if(valueClassesElement != null) {
  
  
  
  1.2       +25 -4     
jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/metadata/JDBCEntityMetaData.java
  
  Index: JDBCEntityMetaData.java
  ===================================================================
  RCS file: 
/cvsroot/jboss/jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/metadata/JDBCEntityMetaData.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- JDBCEntityMetaData.java   2001/06/24 03:23:15     1.1
  +++ JDBCEntityMetaData.java   2001/07/09 21:49:23     1.2
  @@ -28,7 +28,7 @@
    * @author <a href="mailto:[EMAIL PROTECTED]";>Dain Sundstrom</a>
    *   @author <a href="[EMAIL PROTECTED]">Sebastien Alborini</a>
    * @author <a href="mailto:[EMAIL PROTECTED]";>Dirk Zimmermann</a>
  - *   @version $Revision: 1.1 $
  + *   @version $Revision: 1.2 $
    */
   public class JDBCEntityMetaData extends MetaData implements XmlLoadable {
        // Constants -----------------------------------------------------
  @@ -48,10 +48,10 @@
        // the implementation class of the bean
        private Class entityClass;
        
  -     // the implementation class of the bean
  +     // the home class of the bean
        private Class homeClass;
        
  -     // the implementation class of the bean
  +     // the local home class of the bean
        private Class localHomeClass;
        
        // the name of the table to use for this bean
  @@ -92,6 +92,9 @@
        
        // used to create query meta data
        private JDBCQueryMetaDataFactory queryFactory;
  +     
  +     // all relationship roles for this entity
  +     private ArrayList relationshipRoles;
   
        // Static --------------------------------------------------------
      
  @@ -128,7 +131,7 @@
                        throw new DeploymentException("home class not found: " + home);
                }
   
  -             String localHome = entity.getHome();
  +             String localHome = entity.getLocalHome();
                try {
                        if(localHome != null) {
                                localHomeClass = classLoader.loadClass(localHome);
  @@ -173,6 +176,9 @@
                                                
queryFactory.createJDBCQueryMetaData(queryData, methods[i]));
                        }
                }
  +             
  +             // Create no relationship roles for this entity, will be added by the 
relation meta data
  +             relationshipRoles = new ArrayList();
        }
        
        // Public --------------------------------------------------------
  @@ -436,6 +442,21 @@
        
        public Iterator getQueries() {
                return queries.values().iterator();
  +     }
  +     
  +     /**
  +      * Get the relationsip roles of this entity. 
  +      * Items are instance of JDBCRelationshipRoleMetaData.
  +      */
  +     public Iterator getRelationshipRoles() {
  +             return relationshipRoles.iterator();
  +     }
  +     
  +     /**
  +      * Adds a new relationsip roles to this entity. 
  +      */
  +     public void addRelationshipRole(JDBCRelationshipRoleMetaData role) {
  +             relationshipRoles.add(role);
        }
        
        public Class getPrimaryKeyClass() {
  
  
  

_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
http://lists.sourceforge.net/lists/listinfo/jboss-development

Reply via email to