## DuAEPropertyExpression(property)

This class describes an expression and the property containing it.
It is used by the cache engine of DuAEF to work on expressions without applying them and improve performance.
This class is very similar to `DuAEProperty` except it is lighter and faster, to improve the performance of the expression cache.
Constructor

#### # new DuAEPropertyExpression(property)

Constructs a new DuAEPropertyExpression

##### Parameters:

Name | Type | Description
--- | --- | ---
`property` | `PropertyBase` | `DuAEPropertyExpression` | `DuAEProperty` | The property. If a DuAEPropertyExpression is provided, the constructor returns it (it does not make a copy). This makes it easy to avoid type checking, as you can always pass any property or DuAEPropertyExpression to the constructor to be sure to handle a DuAEPropertyExpression, without any impact on performance.

View Source Duik_api_fordoc.jsxinc, line 19942

# Members

Type: `Boolean`

#### # changed

true if the expression has been changed in the cache and needs to be re-applied to the property.

View Source Duik_api_fordoc.jsxinc, line 20045

Type: `CompItem`

#### # comp

The original composition containing the expression

View Source Duik_api_fordoc.jsxinc, line 19985

Type: `Boolean`

#### # empty

true if there's no expression in this property

View Source Duik_api_fordoc.jsxinc, line 19992

Type: `string`

#### # expression

The expression in the property

View Source Duik_api_fordoc.jsxinc, line 20037

Type: `Boolean`

#### # inError

true if the expression has an error

View Source Duik_api_fordoc.jsxinc, line 20053

Type: `Boolean`

#### # isEffect

true if the property belongs to an effect.

View Source Duik_api_fordoc.jsxinc, line 20017

Type: `LayerItem`

#### # layer

The original layer containing the expression

View Source Duik_api_fordoc.jsxinc, line 19978

Type: `Array.<int>`

#### # parentIndices

The Array containing the indices in all parent property groups containing this property.
This is used to retrieve the property in case the object becomes invalid.

View Source Duik_api_fordoc.jsxinc, line 20009

Type: `PropertyBase`

#### # property

The original property containing the expression

View Source Duik_api_fordoc.jsxinc, line 19971

# Methods

#### # apply(onlyIfNoErroropt)

Applies the expression back to the actual properties in After Effects, if and only if it's been modified.

##### Parameters:

Name | Type | Attributes | Default | Description
--- | --- | --- | --- | ---
`onlyIfNoError` | `boolean` | <optional> | false | If true, applies the expression only if it doesn't generate an error

View Source Duik_api_fordoc.jsxinc, line 20084

#### # getProperty() → {PropertyBase}

Returns the original property, fixing it if the object has become invalid.

View Source Duik_api_fordoc.jsxinc, line 20066

Returns:
The property.
Type: `PropertyBase`