User: dsundstrom
Date: 01/07/09 13:50:25
Added: src/main/org/jboss/metadata RelationMetaData.java
Log:
Represents one ejb-relation element found in the ejb-jar.xml
file's relationships elements.
Revision Changes Path
1.1 jboss/src/main/org/jboss/metadata/RelationMetaData.java
Index: RelationMetaData.java
===================================================================
/*
* JBoss, the OpenSource EJB server
*
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
package org.jboss.metadata;
import java.util.ArrayList;
import java.util.Iterator;
import org.w3c.dom.Element;
import org.jboss.ejb.DeploymentException;
/**
* Represents one ejb-relation element found in the ejb-jar.xml
* file's relationships elements.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Dain Sundstrom</a>
* @version $Revision: 1.1 $
*/
public class RelationMetaData extends MetaData {
/** Name of the relation. Loaded from the ejb-relation-name element. */
private String relationName;
/**
* The left relationship role. Loaded from an ejb-relationship-role.
* Left/right assignment is completely arbitrary.
*/
private RelationshipRoleMetaData left;
/**
* The right relationship role. Loaded from an ejb-relationship-role.
* Left/right assignment is completely arbitrary.
*/
private RelationshipRoleMetaData right;
/**
* Gets the relation name.
* Relation name is loaded from the ejb-relation-name element.
*/
public String getRelationName() {
return relationName;
}
/**
* Gets the left relationship role.
* The relationship role is loaded from an ejb-relationship-role.
* Left/right assignment is completely arbitrary.
*/
public RelationshipRoleMetaData getLeftRelationshipRole() {
return left;
}
/**
* Gets the right relationship role.
* The relationship role is loaded from an ejb-relationship-role.
* Left/right assignment is completely arbitrary.
*/
public RelationshipRoleMetaData getRightRelationshipRole() {
return right;
}
public void importEjbJarXml (Element element) throws DeploymentException {
// name
relationName = getElementContent(getOptionalChild(element,
"ejb-relation-name"));
// left role
Iterator iter = getChildrenByTagName(element, "ejb-relationship-role");
if(iter.hasNext()) {
left = new RelationshipRoleMetaData();
left.importEjbJarXml((Element) iter.next());
} else {
throw new DeploymentException("Expected 2
ejb-relationship-role roles but found none");
}
// right role
if(iter.hasNext()) {
right = new RelationshipRoleMetaData();
right.importEjbJarXml((Element) iter.next());
} else {
throw new DeploymentException("Expected 2
ejb-relationship-role but only found one");
}
// assure there are only two ejb-relationship-role elements
if(iter.hasNext()) {
throw new DeploymentException("Expected only 2
ejb-relationship-role but found more then 2");
}
// verify cascade delete
if(left.isCascadeDelete() && right.isMultiplicityMany()) {
throw new DeploymentException("cascade-delete is only allowed
in ejb-relationship-role where the other role has a multiplicity One");
}
if(right.isCascadeDelete() && left.isMultiplicityMany()) {
throw new DeploymentException("cascade-delete is only allowed
in ejb-relationship-role where the other role has a multiplicity One");
}
}
}
_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
http://lists.sourceforge.net/lists/listinfo/jboss-development