Java XML Attribute from Element getIntAttribute(Element elem, String attName, boolean mandatory, int defaultValue)

Here you can find the source of getIntAttribute(Element elem, String attName, boolean mandatory, int defaultValue)

Description

getIntAttribute purpose.

License

Open Source License

Parameter

Parameter Description
elem The root element to look for children in.
attName The name of the attribute to look for.
mandatory true when an exception should be thrown if the attribute element does not exist.
defaultValue a default value to return incase the attribute was not found. mutually exclusive with the ConfigurationException thrown.

Exception

Parameter Description
SAXException When a attribute element is required and not found.

Return

The int value if the attribute was found, the default otherwise.

Declaration

public static int getIntAttribute(Element elem, String attName, boolean mandatory, int defaultValue)
        throws SAXException 

Method Source Code

//package com.java2s;
/*/*from w w  w . j  av a  2s . com*/
 *    GeoTools - The Open Source Java GIS Toolkit
 *    http://geotools.org
 *
 *    (C) 2004-2008, Open Source Geospatial Foundation (OSGeo)
 *    
 *    This library is free software; you can redistribute it and/or
 *    modify it under the terms of the GNU Lesser General Public
 *    License as published by the Free Software Foundation;
 *    version 2.1 of the License.
 *
 *    This library is distributed in the hope that it will be useful,
 *    but WITHOUT ANY WARRANTY; without even the implied warranty of
 *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 *    Lesser General Public License for more details.
 */

import org.w3c.dom.Attr;

import org.w3c.dom.Element;

import org.xml.sax.SAXException;

public class Main {
    /**
     * getIntAttribute purpose.
     * 
     * <p>
     * Used to help with XML manipulations. Returns the first child integer
     * attribute of the specified name.  An exception occurs when the node is
     * required and not found.
     * </p>
     *
     * @param elem The root element to look for children in.
     * @param attName The name of the attribute to look for.
     * @param mandatory true when an exception should be thrown if the
     *        attribute element does not exist.
     * @param defaultValue a default value to return incase the attribute was
     *        not found. mutually exclusive with the ConfigurationException
     *        thrown.
     *
     * @return The int value if the attribute was found, the default otherwise.
     *
     * @throws SAXException When a attribute element is required and not found.
     */
    public static int getIntAttribute(Element elem, String attName, boolean mandatory, int defaultValue)
            throws SAXException {
        String attValue = getAttribute(elem, attName, mandatory);

        if (!mandatory && (attValue == null)) {
            return defaultValue;
        }

        try {
            return Integer.parseInt(attValue);
        } catch (Exception ex) {
            if (mandatory) {
                throw new SAXException(attName + " attribute of element " + elem.getNodeName()
                        + " must be an integer, but it's '" + attValue + "'");
            } else {
                return defaultValue;
            }
        }
    }

    /**
     * getIntAttribute purpose.
     * 
     * <p>
     * Used to help with XML manipulations. Returns the first child integer
     * attribute of the specified name.  An exception occurs when the node is
     * required and not found.
     * </p>
     *
     * @param elem The root element to look for children in.
     * @param attName The name of the attribute to look for.
     * @param mandatory true when an exception should be thrown if the
     *        attribute element does not exist.
     *
     * @return The value if the attribute was found, the null otherwise.
     *
     * @throws SAXException When a child attribute is required and not found.
     */
    public static String getAttribute(Element elem, String attName, boolean mandatory) throws SAXException {
        Attr att = elem.getAttributeNode(attName);

        String value = null;

        if (att != null) {
            value = att.getValue();
        }

        if (mandatory) {
            if (att == null) {
                throw new SAXException(
                        "element " + elem.getNodeName() + " does not contains an attribute named " + attName);
            } else if ("".equals(value)) {
                throw new SAXException("attribute " + attName + "in element " + elem.getNodeName() + " is empty");
            }
        }

        return value;
    }
}

Related

  1. getHeadAttr(Element annotU, String attrName)
  2. getIdAttribute(Element domElement)
  3. getIdAttributeValue(Element elem, String name)
  4. getIntAttr(Element elem, String attName)
  5. getIntAttribute(Element el, String name)
  6. getIntAttribute(Element elem, String attName, boolean mandatory, int defaultValue)
  7. getIntAttribute(Element element, String attribute)
  8. getIntAttribute(Element element, String name, int defaultValue)
  9. getIntAttribute(NamedNodeMap namedNodeMap, String name)