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

# Interface IElementPropertyDefn

All Superinterfaces:
  `org.eclipse.birt.report.model.metadata.IContainerDefn`, `IPropertyDefn`

All Known Implementing Classes:
  `org.eclipse.birt.report.model.metadata.ElementPropertyDefn`, `UserPropertyDefn`

public interface IElementPropertyDefn extends IPropertyDefn
Interface of the Meta-data information for an element property or an extension model property. Includes the type, possible choices, display name, etc derived from the `IPropertyDefn`. It also includes the group name, method information, is visible to the GUI users and can be inherited, etc.

## Field Summary

### Fields inherited from interface org.eclipse.birt.report.model.api.metadata.IPropertyDefn

`COMMERCIAL_PROPERTY, EXTENSION_MODEL_PROPERTY, EXTENSION_PROPERTY, ODA_PROPERTY, SYSTEM_PROPERTY, USER_PROPERTY`

## Method Summary

Modifier and Type
Method
Description
`boolean`
`canInherit()`
Indicates if derived elements can inherit the value of this property.
`String`
`getGroupName()`
Returns the group name (if any) for the property.
`String`
`getGroupNameKey()`
Returns the message ID for the group name.
`IMethodInfo`
`getMethodInfo()`
Returns the method information of this property.
`boolean`
`isEditable()`
Checks whether the property value can be edited by the user in the property sheet.
`boolean`
`isReadOnly()`
Deprecated.
by the method `IElementDefn.isPropertyReadOnly(String)`
`boolean`
`isStyleProperty()`
Indicates whether the property is associated with a style or not.
`boolean`
`isVisible()`
Deprecated.
by the method `IElementDefn.isPropertyVisible(String)`

### Methods inherited from interface org.eclipse.birt.report.model.metadata.IContainerDefn

`canContain, canContain, getAllowedElements, getAllowedElements, getDisplayName, getName, getNameConfig`

### Methods inherited from interface org.eclipse.birt.report.model.api.metadata.IPropertyDefn

`allowExpression, getAllowedChoices, getAllowedUnits, getChoices, getContext, getDefault, getDisplayNameID, getStructDefn, getTargetElementType, getTypeCode, getValueType, hasChoices, isEncryptable, isList`

## Method Details

### getGroupName

String getGroupName()
Returns the group name (if any) for the property.

Returns:
  The (localized) group name, or null if the property is not in a group.

### getGroupNameKey

String getGroupNameKey()
Returns the message ID for the group name.

Returns:
  The group name message ID.

### canInherit

boolean canInherit()
Indicates if derived elements can inherit the value of this property. Most properties can inherit values from a parent element. A few system properties, such as the name or extends, can't be inherited.

Note: This attribute is used for both style property and non-style property with two different meanings.

- For style property, it determines whether this property can be cascaded from container;
- For non-style property, that means whether this property can be inherited from parent.

We take it because of the fact style is not inheritable, and the following diagram:

| can inherit | can cascade
--- | --- | ---
Style property | `false` | `isInheritable`
Non-style property | `isInheritable` | `false`

Returns:
  Whether the property can inherit the parent's value.

### isStyleProperty

boolean isStyleProperty()
Indicates whether the property is associated with a style or not. If this property is defined on a style, then isStyleProperty says whether the property can be "associated" with elements that have a style. If so, then each element with a style will include the style property as though that property were defined on the element itself. The meta-data for the style property is copied onto the meta-data for the element. In this case, the copy will also return true from isStyleProperty( ), indicating that the element obtained the property implicitly from the style element.

Returns:
  Whether the property is defined on a style for the purpose of being used by elements.

### isVisible

@Deprecated boolean isVisible()
Deprecated.
by the method `IElementDefn.isPropertyVisible(String)`
Checks whether the property is visible to the property sheet.

Returns:
  `true` if the property value is visible, `false` otherwise.

### isReadOnly

@Deprecated boolean isReadOnly()
Deprecated.
by the method `IElementDefn.isPropertyReadOnly(String)`
Checks whether the property value is read-only in the property sheet.

Returns:
  `true` if the property value is read-only, `false` otherwise.

### getMethodInfo

IMethodInfo getMethodInfo()
Returns the method information of this property.

Returns:
  the method information of this property. Return null, if this property is not a method property.

### isEditable

boolean isEditable()
Checks whether the property value can be edited by the user in the property sheet.

Returns:
  `true` if the property value is read-only, `false` otherwise.