Package org.eclipse.birt.report.model.api.util

# Class XPathUtil

java.lang.Object
org.eclipse.birt.report.model.api.util.XPathUtil

public class XPathUtil extends Object
The XPath string helps user locate this element in design file. It follows a subset of XPath syntax. Each node name indicates the name of the element definition and the 1-based element position in the slot. The position information is only available when the element is in the multicardinality slot.

For example,

type | examples
element | /report/body/table[3] /library/components/grid/row[1]/cell[2]/label
slot | /report/body /report/body/* /report/body/table/detail/row[slotName="cells"]
property | /report/parameters/scalar-parameter[@id="2"]/@name /report/list-property[@name="images"] /report/body/text[@id="19"]/text-property[@name="content"] /report/body/text[@id="19"]/text-property[@name="content"]/@key
structure (EmbeddedImageHandle/IncludedLibraryHandle/ResultSetColumnHandle) | /report/list-property[@name="images"]/structure[2] /report/list-property[@name="images"]/structure

It is strongly recommended not to call `getInstance(ModuleHandle, String)` with manually created XPath string. Much better to use XPath string returned by `getXPath(Object)`.

## Field Summary

Fields
Modifier and Type
Field
Description
`static final String`
`RESOURCE_KEY_SUFFIX`
The suffix for the resource key.
`static final String`
`SLOT_NAME_PROPERTY`
The attribute to indicate a slot name.

## Constructor Summary

Constructors
Constructor
Description
`XPathUtil()`

## Method Summary

Modifier and Type
Method
Description
`static Object`
`getInstance(ModuleHandle module, String xpath)`
Returns the instance by the given XPath of `DesignElementHandle`, `SlotHandle`, `StructureHandle`.
`static String`
`getXPath(Object instance)`
Returns the XPath of the given instance.
`static String`
`getXPath(Object instance, int index)`
Returns the script path of the given instance.

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

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

## Field Details

### SLOT_NAME_PROPERTY

public static final String SLOT_NAME_PROPERTY
The attribute to indicate a slot name.

See Also:
  - Constant Field Values

### RESOURCE_KEY_SUFFIX

public static final String RESOURCE_KEY_SUFFIX
The suffix for the resource key.

See Also:
  - Constant Field Values

## Constructor Details

### XPathUtil

public XPathUtil()

## Method Details

### getXPath

public static String getXPath(Object instance)
Returns the XPath of the given instance. For the structure, only EmbeddedImageHandle is supported.

Parameters:
  `instance` - can be `DesignElementHandle`, `SlotHandle`, `StructureHandle` , `PropertyHandle`.
Returns:
  the XPath in string

### getXPath

public static String getXPath(Object instance, int index)
Returns the script path of the given instance.

Parameters:
  `instance` - `PropertyHandle` which type or sub type must be expression or script.
  `index` - of property should be in valid range. 0 based
Returns:
  the path in string

### getInstance

public static Object getInstance(ModuleHandle module, String xpath)
Returns the instance by the given XPath of `DesignElementHandle`, `SlotHandle`, `StructureHandle`.

Parameters:
  `module` - the report/library
  `xpath` - the XPath in string
Returns:
  `DesignElementHandle`/`SlotHandle`/ `StructureHandle`.