User: user57 Date: 01/07/20 23:32:17 Modified: src/main/org/jboss/metadata MetaData.java Log: o re-indent & javadoc'd most bits o added getUniqueChildContent() & getOptionalChildContent()., Revision Changes Path 1.14 +235 -124 jboss/src/main/org/jboss/metadata/MetaData.java Index: MetaData.java =================================================================== RCS file: /cvsroot/jboss/jboss/src/main/org/jboss/metadata/MetaData.java,v retrieving revision 1.13 retrieving revision 1.14 diff -u -r1.13 -r1.14 --- MetaData.java 2001/01/26 12:51:51 1.13 +++ MetaData.java 2001/07/21 06:32:17 1.14 @@ -16,109 +16,157 @@ import org.jboss.ejb.DeploymentException; - /** - * <description> - * - * @see <related> - * @author <a href="mailto:[EMAIL PROTECTED]">Sebastien Alborini</a> - * @version $Revision: 1.13 $ + * An abstract base class for metadata containers. + * + * @author <a href="mailto:[EMAIL PROTECTED]">Sebastien Alborini</a> + * @version $Revision: 1.14 $ */ -public abstract class MetaData implements XmlLoadable { - // Constants ----------------------------------------------------- - public static final byte TX_NOT_SUPPORTED = 0; - public static final byte TX_REQUIRED = 1; - public static final byte TX_SUPPORTS = 2; - public static final byte TX_REQUIRES_NEW = 3; - public static final byte TX_MANDATORY = 4; - public static final byte TX_NEVER = 5; - public static final byte TX_UNKNOWN = 6; - - // Attributes ---------------------------------------------------- +public abstract class MetaData + implements XmlLoadable +{ + // Constants ----------------------------------------------------- + + // These do not really belong here + + public static final byte TX_NOT_SUPPORTED = 0; + public static final byte TX_REQUIRED = 1; + public static final byte TX_SUPPORTS = 2; + public static final byte TX_REQUIRES_NEW = 3; + public static final byte TX_MANDATORY = 4; + public static final byte TX_NEVER = 5; + public static final byte TX_UNKNOWN = 6; + + // Attributes ---------------------------------------------------- - // Static -------------------------------------------------------- - public static Iterator getChildrenByTagName(Element element, String tagName) { - if (element == null) return null; + // Static -------------------------------------------------------- - // getElementsByTagName gives the corresponding elements in the whole descendance. - // We want only children + /** + * Returns an iterator over the children of the given element with + * the given tag name. + * + * @param element The parent element + * @param tagName The name of the desired child + * @return An interator of children or null if element is null. + */ + public static Iterator getChildrenByTagName(Element element, + String tagName) + { + if (element == null) return null; + // getElementsByTagName gives the corresponding elements in the whole + // descendance. We want only children - NodeList children = element.getChildNodes(); - ArrayList goodChildren = new ArrayList(); - for (int i=0; i<children.getLength(); i++) { - Node currentChild = children.item(i); - if (currentChild.getNodeType() == Node.ELEMENT_NODE && - ((Element)currentChild).getTagName().equals(tagName)) { - goodChildren.add((Element)currentChild); - } - } - return goodChildren.iterator(); - } - - - public static Element getUniqueChild(Element element, String tagName) throws DeploymentException { + NodeList children = element.getChildNodes(); + ArrayList goodChildren = new ArrayList(); + for (int i=0; i<children.getLength(); i++) { + Node currentChild = children.item(i); + if (currentChild.getNodeType() == Node.ELEMENT_NODE && + ((Element)currentChild).getTagName().equals(tagName)) { + goodChildren.add((Element)currentChild); + } + } + return goodChildren.iterator(); + } - Iterator goodChildren = getChildrenByTagName(element, tagName); + /** + * Gets the child of the specified element having the specified unique + * name. If there are more than one children elements with the same name + * and exception is thrown. + * + * @param element The parent element + * @param tagName The name of the desired child + * @return The named child. + * + * @throws DeploymentException Child was not found or was not unique. + */ + public static Element getUniqueChild(Element element, String tagName) + throws DeploymentException + { + Iterator goodChildren = getChildrenByTagName(element, tagName); - if (goodChildren != null && goodChildren.hasNext()) { - Element child = (Element)goodChildren.next(); - if (goodChildren.hasNext()) { - throw new DeploymentException("expected only one " + tagName + " tag"); - } - return child; - } else { - throw new DeploymentException("expected one " + tagName + " tag"); - } - } - - - /** - * Gets the child of the specified element having the - * specified name. If the child with this name doesn't exist - * then null is returned instead. - * - * @param element the parent element - * @param tagName the name of the desired child - * @return either the named child or null - */ - public static Element getOptionalChild(Element element, String tagName) throws DeploymentException { - return getOptionalChild(element, tagName, null); - } - - /** - * Gets the child of the specified element having the - * specified name. If the child with this name doesn't exist - * then the supplied default element is returned instead. - * - * @param element the parent element - * @param tagName the name of the desired child - * @param defaultElement the element to return if the child - * doesn't exist - * @return either the named child or the supplied default - */ - public static Element getOptionalChild(Element element, String tagName, Element defaultElement) throws DeploymentException { - Iterator goodChildren = getChildrenByTagName(element, tagName); - - if (goodChildren != null && goodChildren.hasNext()) { - Element child = (Element)goodChildren.next(); - if (goodChildren.hasNext()) { - throw new DeploymentException("expected only one " + tagName + " tag"); - } - return child; - } else { - return defaultElement; - } - } + if (goodChildren != null && goodChildren.hasNext()) { + Element child = (Element)goodChildren.next(); + if (goodChildren.hasNext()) { + throw new DeploymentException + ("expected only one " + tagName + " tag"); + } + return child; + } else { + throw new DeploymentException + ("expected one " + tagName + " tag"); + } + } - public static String getElementContent(Element element) throws DeploymentException { + /** + * Gets the child of the specified element having the + * specified name. If the child with this name doesn't exist + * then null is returned instead. + * + * @param element the parent element + * @param tagName the name of the desired child + * @return either the named child or null + */ + public static Element getOptionalChild(Element element, String tagName) + throws DeploymentException + { + return getOptionalChild(element, tagName, null); + } + + /** + * Gets the child of the specified element having the + * specified name. If the child with this name doesn't exist + * then the supplied default element is returned instead. + * + * @param element the parent element + * @param tagName the name of the desired child + * @param defaultElement the element to return if the child + * doesn't exist + * @return either the named child or the supplied default + */ + public static Element getOptionalChild(Element element, + String tagName, + Element defaultElement) + throws DeploymentException + { + Iterator goodChildren = getChildrenByTagName(element, tagName); - return getElementContent(element, null); - } + if (goodChildren != null && goodChildren.hasNext()) { + Element child = (Element)goodChildren.next(); + if (goodChildren.hasNext()) { + throw new DeploymentException + ("expected only one " + tagName + " tag"); + } + return child; + } else { + return defaultElement; + } + } + + /** + * Get the content of the given element. + * + * @param element The element to get the content for. + * @return The content of the element or null. + */ + public static String getElementContent(final Element element) + throws DeploymentException + { + return getElementContent(element, null); + } - public static String getElementContent(Element element, String defaultStr) throws DeploymentException { - if (element == null) return defaultStr; + /** + * Get the content of the given element. + * + * @param element The element to get the content for. + * @param defaultStr The default to return when there is no content. + * @return The content of the element or the default. + */ + public static String getElementContent(Element element, String defaultStr) + throws DeploymentException + { + if (element == null) return defaultStr; - NodeList children = element.getChildNodes(); + NodeList children = element.getChildNodes(); if (children.getLength() > 0) { @@ -126,49 +174,112 @@ for (int i = 0; i < children.getLength(); i++) { if (children.item(i).getNodeType() == Node.TEXT_NODE || - children.item(i).getNodeType() == Node.CDATA_SECTION_NODE) + children.item(i).getNodeType() == Node.CDATA_SECTION_NODE) { result += children.item(i).getNodeValue(); - else - result += children.item(i).getFirstChild(); + } + else { + result += children.item(i).getFirstChild(); + } } return result; } else { return defaultStr; } - } - - - // Constructors -------------------------------------------------- + } + + /** + * Macro to get the content of a unique child element. + * + * @param element The parent element. + * @param tagName The name of the desired child. + * @return The element content or null. + */ + public static String getUniqueChildContent(Element element, + String tagName) + throws DeploymentException + { + return getElementContent(getUniqueChild(element, tagName)); + } + + /** + * Macro to get the content of an optional child element. + * + * @param element The parent element. + * @param tagName The name of the desired child. + * @return The element content or null. + */ + public static String getOptionalChildContent(Element element, + String tagName) + throws DeploymentException + { + return getElementContent(getOptionalChild(element, tagName)); + } + + // Constructors -------------------------------------------------- - // Public -------------------------------------------------------- - public void importXml (Element element) throws DeploymentException { - String rootTag = element.getOwnerDocument().getDocumentElement().getTagName(); + // Public -------------------------------------------------------- + + /** + * Imports either the jboss or ejb-jar from the given element. + * + * @param element The element to import. + * + * @throws DeploymentException Unrecognized root tag. + */ + public void importXml(Element element) throws DeploymentException { + String rootTag = element.getOwnerDocument(). + getDocumentElement().getTagName(); - if (rootTag.equals("jboss")) { - // import jboss.xml - importJbossXml(element); - } else if (rootTag.equals("ejb-jar")) { - // import ejb-jar.xml - importEjbJarXml(element); - } else { - throw new DeploymentException("Unrecognized root tag : "+ rootTag); - } - } - - public void importEjbJarXml (Element element) throws DeploymentException {} - public void importJbossXml (Element element) throws DeploymentException {} + if (rootTag.equals("jboss")) { + // import jboss.xml + importJbossXml(element); + } else if (rootTag.equals("ejb-jar")) { + // import ejb-jar.xml + importEjbJarXml(element); + } else { + throw new DeploymentException("Unrecognized root tag : "+ rootTag); + } + } + + /** + * Non-operation. + * + * @param element + * + * @throws DeploymentException + */ + public void importEjbJarXml(Element element) throws DeploymentException { + // empty + } + + /** + * Non-operation. + * + * @param element + * + * @throws DeploymentException + */ + public void importJbossXml(Element element) throws DeploymentException { + // empty + } - // Package protected --------------------------------------------- + // Package protected --------------------------------------------- - // Protected ----------------------------------------------------- - protected boolean jdk13Enabled() { - // should use "java.version" ? - String javaVersion = System.getProperty("java.vm.version"); - return javaVersion.compareTo("1.3") >= 0; - } + // Protected ----------------------------------------------------- + + /** + * Check if we are running in a JDK v1.3 virtual machine or better. + * + * @return True if the virtual machine is v1.3 or better. + */ + protected boolean jdk13Enabled() { + // should use "java.version" ? + String javaVersion = System.getProperty("java.vm.version"); + return javaVersion.compareTo("1.3") >= 0; + } - // Private ------------------------------------------------------- + // Private ------------------------------------------------------- - // Inner classes ------------------------------------------------- + // Inner classes ------------------------------------------------- } _______________________________________________ Jboss-development mailing list [EMAIL PROTECTED] http://lists.sourceforge.net/lists/listinfo/jboss-development