Package org.apache.sling.scripting.sightly.compiler.expression.nodes

## Class PropertyAccess

- java.lang.Object
- - org.apache.sling.scripting.sightly.compiler.expression.nodes.PropertyAccess

All Implemented Interfaces:
  `ExpressionNode`

    public final class PropertyAccess
    extends Object
    implements ExpressionNode

Defines an expression in which an object is queried for a specific property (e.g. `obj.prop`).

### Constructor Summary

Constructors
`PropertyAccess​(ExpressionNode target, Iterable<String> properties)` Builds a chained property access node with the given target and the specified properties.
`PropertyAccess​(ExpressionNode target, String property)` Creates a property access node.
`PropertyAccess​(ExpressionNode target, ExpressionNode property)` Creates a property access node.

### Method Summary

All Methods Instance Methods Concrete Methods
`<T> T` `accept​(NodeVisitor<T> visitor)` Accept a visitor to process this node.
`ExpressionNode` `getProperty()` Returns the expression node identifying the accessed property.
`ExpressionNode` `getTarget()` The object being accessed.
`String` `toString()`

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

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

### Constructor Detail

#### PropertyAccess

    public PropertyAccess​(ExpressionNode target,
                          ExpressionNode property)

Creates a property access node.

Parameters:
  `target` - the expression for the object being accessed
  `property` - the expression identifying the object's accessed property

#### PropertyAccess

    public PropertyAccess​(ExpressionNode target,
                          String property)

Creates a property access node.

Parameters:
  `target` - the expression for the object being accessed
  `property` - the name of the accessed property

#### PropertyAccess

    public PropertyAccess​(ExpressionNode target,
                          Iterable<String> properties)

Builds a chained property access node with the given target and the specified properties.

Parameters:
  `target` - the target node
  `properties` - a non-empty list of property names
Throws:
  `IllegalArgumentException` - if the list of properties is empty

### Method Detail

#### accept

    public <T> T accept​(NodeVisitor<T> visitor)

Description copied from interface: `ExpressionNode`
Accept a visitor to process this node.

Specified by:
  `accept` in interface `ExpressionNode`
Type Parameters:
  `T` - the type of the visitor
Parameters:
  `visitor` - The visitor
Returns:
  the node after it has been evaluated by the visitor

#### getTarget

    public ExpressionNode getTarget()

The object being accessed.

Returns:
  a node representing the object being accessed

#### getProperty

    public ExpressionNode getProperty()

Returns the expression node identifying the accessed property.

Returns:
  the expression node identifying the accessed property

#### toString

    public String toString()

Overrides:
  `toString` in class `Object`