User: dsundstrom
  Date: 01/07/09 13:49:00

  Added:       src/main/org/jboss/metadata RelationshipRoleMetaData.java
  Log:
  Represents one ejb-relationship-role element found in the ejb-jar.xml
  file's ejb-relation elements.
  
  Revision  Changes    Path
  1.1                  jboss/src/main/org/jboss/metadata/RelationshipRoleMetaData.java
  
  Index: RelationshipRoleMetaData.java
  ===================================================================
  /*
   * JBoss, the OpenSource EJB server
   *
   * Distributable under LGPL license.
   * See terms of license at gnu.org.
   */
  package org.jboss.metadata;
  
  import org.w3c.dom.Element;
  import org.jboss.ejb.DeploymentException;
  
  /** 
   * Represents one ejb-relationship-role element found in the ejb-jar.xml
   * file's ejb-relation elements.
   *
   * @author <a href="mailto:[EMAIL PROTECTED]";>Dain Sundstrom</a>
   * @version $Revision: 1.1 $
   */
  public class RelationshipRoleMetaData extends MetaData {
        // one is one
        private static int ONE = 1;
        // and two is many :)
        private static int MANY = 2;
        
        /**
         * Role name
         */
        private String relationshipRoleName;
        
        /**
         * Multiplicity of role, ONE or MANY.
         */
        private int multiplicity;
        
        /**
         * Should this entity be deleted when related entity is deleted.
         */
        private boolean cascadeDelete;
        
        /**
         * Name of the entity that has this role.
         */
        private String entityName;
        
        /**
         * Name of the entity's cmr field for this role.
         */
        private String cmrFieldName;
        
        /**
         * Type of the cmr field (i.e., collection or set)
         */
        private String cmrFieldType;
  
        /**
         * Gets the relationship role name
         */
        public String getRelationshipRoleName() {
                return relationshipRoleName;
        }
  
        /**
         * Checks if the multiplicity is one.
         */
        public boolean isMultiplicityOne() {
                return multiplicity == ONE;
        }
        
        /**
         * Checks if the multiplicity is many.
         */
        public boolean isMultiplicityMany() {
                return multiplicity == MANY;
        }
        
        /**
         * Should this entity be deleted when related entity is deleted.
         */
        public boolean isCascadeDelete() {
                return cascadeDelete;
        }
        
        /**
         * Gets the name of the entity that has this role.
         */
        public String getEntityName() {
                return entityName;
        }
        
        /**
         * Gets the name of the entity's cmr field for this role.
         */
        public String getCMRFieldName() {
                return cmrFieldName;
        }
        
        /**
         * Gets the type of the cmr field (i.e., collection or set)
         */
        public String getCMRFieldType() {
                return cmrFieldType;
        }
        
     public void importEjbJarXml (Element element) throws DeploymentException {
           // ejb-relationship-role-name?
                relationshipRoleName = getElementContent(getOptionalChild(element, 
"ejb-relationship-role-name"));
                
                // multiplicity
                String multiplicityString = getElementContent(getUniqueChild(element, 
"multiplicity"));
                if("One".equals(multiplicityString)) {
                        multiplicity = ONE;
                } else if("Many".equals(multiplicityString)) {
                        multiplicity = MANY;
                } else {
                        throw new DeploymentException("multiplicity should be One or 
Many but is " + multiplicityString);
                }
                
                // cascade-delete? 
                Element cascadeDeleteElement = getOptionalChild(element, 
"cascade-delete");
                if(cascadeDeleteElement != null) {
                        cascadeDelete = true;
                }
                
                // relationship-role-source
                Element relationshipRoleSourceElement = getUniqueChild(element, 
"relationship-role-source");
                entityName = 
getElementContent(getUniqueChild(relationshipRoleSourceElement, "ejb-name"));
                
                // cmr-field?
                Element cmrFieldElement = getOptionalChild(element, "cmr-field");
                if(cmrFieldElement != null) {
                        // cmr-field-name
                        cmrFieldName = 
getElementContent(getUniqueChild(cmrFieldElement, "cmr-field-name"));
                        
                   // cmr-field-type?
                        Element cmrFieldTypeElement = 
getOptionalChild(cmrFieldElement, "cmr-field-type");
                        if(cmrFieldTypeElement != null) {
                                cmrFieldType = getElementContent(cmrFieldTypeElement);
                                if(cmrFieldType==null || 
                                                
(!cmrFieldType.equals("java.util.Collection") && 
                                                        
!cmrFieldType.equals("java.util.Set"))) {
                                        throw new DeploymentException("multiplicity 
should be java.util.Collection or java.util.Set but is " + cmrFieldType);
                                }
                        }
                }
        }
  }
  
  
  

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

Reply via email to