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

Reply via email to