Package org.apache.struts2.util.location

# Class LocationAttributes

java.lang.Object
org.apache.struts2.util.location.LocationAttributes

public class LocationAttributes extends Object

A class to handle location information stored in attributes. These attributes are typically setup using `LocationAttributes.Pipe` which augments the SAX stream with additional attributes, e.g.:

     <root xmlns:loc="http://struts.apache.org/xwork/location"
           loc:src="file://path/to/file.xml"
           loc:line="1" loc:column="1">
       <foo loc:src="file://path/to/file.xml" loc:line="2" loc:column="3"/>
     </root>

Since:
  2.1.8
See Also:
  - `LocationAttributes.Pipe`

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `static class`
  `LocationAttributes.Pipe`
  A SAX filter that adds the information available from the `Locator` as attributes.

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final String`
  `COL_ATTR`
  Attribute name for the column number
  `static final String`
  `LINE_ATTR`
  Attribute name for the line number
  `static final String`
  `PREFIX`
  Prefix for the location namespace
  `static final String`
  `Q_COL_ATTR`
  Attribute qualified name for the column number
  `static final String`
  `Q_LINE_ATTR`
  Attribute qualified name for the line number
  `static final String`
  `Q_SRC_ATTR`
  Attribute qualified name for the location URI
  `static final String`
  `SRC_ATTR`
  Attribute name for the location URI
  `static final String`
  `URI`
  Namespace URI for location attributes

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static Attributes`
  `addLocationAttributes(Locator locator, Attributes attrs)`
  Add location attributes to a set of SAX attributes.
  `static int`
  `getColumn(Element elem)`
  Returns the column number of an element (DOM flavor)
  `static int`
  `getColumn(Attributes attrs)`
  Returns the column number of an element (SAX flavor)
  `static int`
  `getLine(Element elem)`
  Returns the line number of an element (DOM flavor)
  `static int`
  `getLine(Attributes attrs)`
  Returns the line number of an element (SAX flavor)
  `static Location`
  `getLocation(Element elem)`
  Same as `getLocation(elem, null)`.
  `static Location`
  `getLocation(Element elem, String description)`
  Returns the `Location` of an element (DOM flavor).
  `static Location`
  `getLocation(Attributes attrs, String description)`
  Returns the `Location` of an element (SAX flavor).
  `static String`
  `getLocationString(Element elem)`
  Returns the location of an element that has been processed by this pipe (DOM flavor).
  `static String`
  `getLocationString(Attributes attrs)`
  Returns the location of an element (SAX flavor).
  `static String`
  `getURI(Element elem)`
  Returns the URI of an element (DOM flavor)
  `static String`
  `getURI(Attributes attrs)`
  Returns the URI of an element (SAX flavor)
  `static void`
  `remove(Element elem, boolean recurse)`
  Remove the location attributes from a DOM element.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Field Details

  - ### PREFIX

    public static final String PREFIX
    Prefix for the location namespace
    See Also:
      - Constant Field Values

  - ### URI

    public static final String URI
    Namespace URI for location attributes
    See Also:
      - Constant Field Values

  - ### SRC_ATTR

    public static final String SRC_ATTR
    Attribute name for the location URI
    See Also:
      - Constant Field Values

  - ### LINE_ATTR

    public static final String LINE_ATTR
    Attribute name for the line number
    See Also:
      - Constant Field Values

  - ### COL_ATTR

    public static final String COL_ATTR
    Attribute name for the column number
    See Also:
      - Constant Field Values

  - ### Q_SRC_ATTR

    public static final String Q_SRC_ATTR
    Attribute qualified name for the location URI
    See Also:
      - Constant Field Values

  - ### Q_LINE_ATTR

    public static final String Q_LINE_ATTR
    Attribute qualified name for the line number
    See Also:
      - Constant Field Values

  - ### Q_COL_ATTR

    public static final String Q_COL_ATTR
    Attribute qualified name for the column number
    See Also:
      - Constant Field Values

- ## Method Details

  - ### addLocationAttributes

    public static Attributes addLocationAttributes(Locator locator, Attributes attrs)
    Add location attributes to a set of SAX attributes.
    Parameters:
      `locator` - the `Locator` (can be null)
      `attrs` - the `Attributes` where locator information should be added
    Returns:
      Location enabled Attributes.

  - ### getLocation

    public static Location getLocation(Attributes attrs, String description)
    Returns the `Location` of an element (SAX flavor).
    Parameters:
      `attrs` - the element's attributes that hold the location information
      `description` - a description for the location (can be null)
    Returns:
      a `Location` object

  - ### getLocationString

    public static String getLocationString(Attributes attrs)
    Returns the location of an element (SAX flavor). If the location is to be kept into an object built from this element, consider using `getLocation(Attributes, String)` and the `Locatable` interface.
    Parameters:
      `attrs` - the element's attributes that hold the location information
    Returns:
      a location string as defined by `Location`.

  - ### getURI

    public static String getURI(Attributes attrs)
    Returns the URI of an element (SAX flavor)
    Parameters:
      `attrs` - the element's attributes that hold the location information
    Returns:
      the element's URI or "`[unknown location]`" if `attrs` has no location information.

  - ### getLine

    public static int getLine(Attributes attrs)
    Returns the line number of an element (SAX flavor)
    Parameters:
      `attrs` - the element's attributes that hold the location information
    Returns:
      the element's line number or `-1` if `attrs` has no location information.

  - ### getColumn

    public static int getColumn(Attributes attrs)
    Returns the column number of an element (SAX flavor)
    Parameters:
      `attrs` - the element's attributes that hold the location information
    Returns:
      the element's column number or `-1` if `attrs` has no location information.

  - ### getLocation

    public static Location getLocation(Element elem, String description)
    Returns the `Location` of an element (DOM flavor).
    Parameters:
      `elem` - the element that holds the location information
      `description` - a description for the location (if `null`, the element's name is used)
    Returns:
      a `Location` object

  - ### getLocation

    public static Location getLocation(Element elem)
    Same as `getLocation(elem, null)`.
    Parameters:
      `elem` - the element that holds the location information
    Returns:
      a `Location` object

  - ### getLocationString

    public static String getLocationString(Element elem)
    Returns the location of an element that has been processed by this pipe (DOM flavor). If the location is to be kept into an object built from this element, consider using `getLocation(Element)` and the `Locatable` interface.
    Parameters:
      `elem` - the element that holds the location information
    Returns:
      a location string as defined by `Location`.

  - ### getURI

    public static String getURI(Element elem)
    Returns the URI of an element (DOM flavor)
    Parameters:
      `elem` - the element that holds the location information
    Returns:
      the element's URI or "`[unknown location]`" if `elem` has no location information.

  - ### getLine

    public static int getLine(Element elem)
    Returns the line number of an element (DOM flavor)
    Parameters:
      `elem` - the element that holds the location information
    Returns:
      the element's line number or `-1` if `elem` has no location information.

  - ### getColumn

    public static int getColumn(Element elem)
    Returns the column number of an element (DOM flavor)
    Parameters:
      `elem` - the element that holds the location information
    Returns:
      the element's column number or `-1` if `elem` has no location information.

  - ### remove

    public static void remove(Element elem, boolean recurse)
    Remove the location attributes from a DOM element.
    Parameters:
      `elem` - the element to remove the location attributes from.
      `recurse` - if `true`, also remove location attributes on descendant elements.