# Class StructuralPropertyDescriptor

java.lang.Object
org.eclipse.jdt.core.dom.StructuralPropertyDescriptor

Direct Known Subclasses:
  `ChildListPropertyDescriptor, ChildPropertyDescriptor, SimplePropertyDescriptor`

public abstract class StructuralPropertyDescriptor extends Object
Abstract base class for property descriptors of AST nodes. There are three kinds of properties:

- simple properties (`SimplePropertyDescriptor`) - properties where the value is a primitive (int, boolean) or simple (String, InfixExprsssion.Operator) type other than an AST node; for example, the identifier of a `SimpleName`
- child properties (`ChildPropertyDescriptor`) - properties whose value is another AST node; for example, the name of a `MethodDeclaration`
- child list properties (`ChildListPropertyDescriptor`) - properties where the value is a list of AST nodes; for example, the statements of a `Block`

Since:
  3.0
Restriction:
  This class is not intended to be subclassed by clients.

## Method Summary

Modifier and Type
Method
Description
`final String`
`getId()`
Returns the id of this property.
`final Class`
`getNodeClass()`
Returns the AST node type that owns this property.
`final boolean`
`isChildListProperty()`
Returns whether this property is a child list property (instance of `ChildListPropertyDescriptor`.
`final boolean`
`isChildProperty()`
Returns whether this property is a child property (instance of `ChildPropertyDescriptor`.
`final boolean`
`isSimpleProperty()`
Returns whether this property is a simple property (instance of `SimplePropertyDescriptor`.
`String`
`toString()`
Returns a string suitable for debug purposes.

### Methods inherited from class Object

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

## Method Details

### getId

public final String getId()
Returns the id of this property.

Returns:
  the property id

### getNodeClass

public final Class getNodeClass()
Returns the AST node type that owns this property.

For example, for all properties of the node type TypeDeclaration, this method returns `TypeDeclaration.class`.

Returns:
  the node type that owns this property

### isSimpleProperty

public final boolean isSimpleProperty()
Returns whether this property is a simple property (instance of `SimplePropertyDescriptor`.

Returns:
  `true` if this is a simple property, and `false` otherwise

### isChildProperty

public final boolean isChildProperty()
Returns whether this property is a child property (instance of `ChildPropertyDescriptor`.

Returns:
  `true` if this is a child property, and `false` otherwise

### isChildListProperty

public final boolean isChildListProperty()
Returns whether this property is a child list property (instance of `ChildListPropertyDescriptor`.

Returns:
  `true` if this is a child list property, and `false` otherwise

### toString

public String toString()
Returns a string suitable for debug purposes.

Overrides:
  `toString` in class `Object`
Returns: