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

# Interface IDesignElement

All Superinterfaces:
  `Cloneable`

public interface IDesignElement extends Cloneable
Interface for all the design elements.

## Method Summary

Modifier and Type
Method
Description
`Object`
`clone()`
Generates a clone copy of this element.
`IElementDefn`
`getDefn()`
Returns the definition object for this element.
`DesignElementHandle`
`getHandle(org.eclipse.birt.report.model.core.Module module)`
Returns an API handle for this element.

## Method Details

### getDefn

IElementDefn getDefn()
Returns the definition object for this element.

Part of: Meta data system.

Returns:
  The element definition. Will always be non-null in a valid build.

### getHandle

DesignElementHandle getHandle(org.eclipse.birt.report.model.core.Module module)
Returns an API handle for this element.

Parameters:
  `module` - the module
Returns:
  an API handle for this element.

### clone

Object clone() throws CloneNotSupportedException
Generates a clone copy of this element. When a report element is cloned, the basic principle is just copying the property value into the clone, the other things, like container references, child list references, listener references will not be cloned; that is, the clone is isolated from the design tree until it is added into a target design tree.

When inserting the cloned element into the design tree, user needs to care about the element name confliction; that is, the client needs to call the method ``ModuleHandleImpl.rename(DesignElementHandle)`` to change the element names.

Returns:
  Object the cloned design element.
Throws:
  `CloneNotSupportedException` - if clone is not supported.