## org.eclipse.xsd.impl
Class XSDIdentityConstraintDefinitionImpl

    java.lang.Object
      org.eclipse.emf.common.notify.impl.BasicNotifierImpl
          org.eclipse.emf.ecore.impl.BasicEObjectImpl
              org.eclipse.emf.ecore.impl.EObjectImpl
                  org.eclipse.xsd.impl.XSDConcreteComponentImpl
                      org.eclipse.xsd.impl.XSDComponentImpl
                          org.eclipse.xsd.impl.XSDNamedComponentImpl
                              org.eclipse.xsd.impl.XSDIdentityConstraintDefinitionImpl

All Implemented Interfaces:
  Notifier, EObject, InternalEObject, XSDComponent, XSDConcreteComponent, XSDIdentityConstraintDefinition, XSDNamedComponent

    public class XSDIdentityConstraintDefinitionImpl

extends XSDNamedComponentImpl
implements XSDIdentityConstraintDefinition

An implementation of the model object 'Identity Constraint Definition'.

The following features are implemented:

- `Identity Constraint Category`
- `Annotation`
- `Referenced Key`
- `Selector`
- `Fields`

Nested Class Summary

Nested classes/interfaces inherited from class org.eclipse.xsd.impl.XSDNamedComponentImpl
`XSDNamedComponentImpl.Comparator, XSDNamedComponentImpl.StringPairComparator, XSDNamedComponentImpl.XSDNamedComponentList<E extends java.lang.Object & XSDNamedComponent>`

Nested classes/interfaces inherited from class org.eclipse.xsd.impl.XSDConcreteComponentImpl
`XSDConcreteComponentImpl.XSDContentsEList`

Nested classes/interfaces inherited from class org.eclipse.emf.ecore.impl.BasicEObjectImpl
`BasicEObjectImpl.EPropertiesHolder, BasicEObjectImpl.EPropertiesHolderBaseImpl, BasicEObjectImpl.EPropertiesHolderImpl`

Nested classes/interfaces inherited from class org.eclipse.emf.common.notify.impl.BasicNotifierImpl
`BasicNotifierImpl.EAdapterList<E extends java.lang.Object & Adapter>`

Nested classes/interfaces inherited from interface org.eclipse.emf.ecore.InternalEObject
`InternalEObject.EStore`

Field Summary
`protected XSDAnnotation` `annotation` The cached value of the '`Annotation`' containment reference
`protected EList<XSDXPathDefinition>` `fields` The cached value of the '`Fields`' containment reference list
`protected static XSDIdentityConstraintCategory` `IDENTITY_CONSTRAINT_CATEGORY_EDEFAULT` The default value of the '`Identity Constraint Category`' attribute
`protected static int` `IDENTITY_CONSTRAINT_CATEGORY_EFLAG` The flags representing the value of the '`Identity Constraint Category`' attribute
`protected static int` `IDENTITY_CONSTRAINT_CATEGORY_EFLAG_DEFAULT` The flags representing the default value of the '`Identity Constraint Category`' attribute
`protected static int` `IDENTITY_CONSTRAINT_CATEGORY_EFLAG_OFFSET` The offset of the flags representing the value of the '`Identity Constraint Category`' attribute
`protected XSDIdentityConstraintDefinition` `referencedKey` The cached value of the '`Referenced Key`' reference
`protected XSDXPathDefinition` `selector` The cached value of the '`Selector`' containment reference

Fields inherited from class org.eclipse.xsd.impl.XSDNamedComponentImpl
`ALIAS_NAME_EDEFAULT, ALIAS_URI_EDEFAULT, name, NAME_EDEFAULT, QNAME_EDEFAULT, TARGET_NAMESPACE_EDEFAULT, targetNamespace, URI_EDEFAULT`

Fields inherited from class org.eclipse.xsd.impl.XSDConcreteComponentImpl
`ANALYZED, ANALYZING, CIRCULAR, diagnostics, element, ELEMENT_EDEFAULT, ERROR, FATAL, forceResolve, INFORMATION, isReconciling, UNANALYZED, updatingDOM, WARNING, xsdContents`

Fields inherited from class org.eclipse.emf.ecore.impl.EObjectImpl
`eAdapters, eContainer, eContainerFeatureID, EDELIVER, EDYNAMIC_CLASS, eFlags, ELAST_EOBJECT_FLAG, ELAST_NOTIFIER_FLAG, eProperties, EPROXY`

Fields inherited from class org.eclipse.emf.ecore.impl.BasicEObjectImpl
`EVIRTUAL_GET, EVIRTUAL_IS_SET, EVIRTUAL_NO_VALUE, EVIRTUAL_SET, EVIRTUAL_UNSET`

Fields inherited from interface org.eclipse.emf.ecore.InternalEObject
`EOPPOSITE_FEATURE_BASE`

Constructor Summary
`protected` `XSDIdentityConstraintDefinitionImpl()`

Method Summary
`protected void` `adoptBy(XSDSchema xsdSchema)`
`NotificationChain` `basicSetAnnotation(XSDAnnotation newAnnotation, NotificationChain msgs)`
`NotificationChain` `basicSetSelector(XSDXPathDefinition newSelector, NotificationChain msgs)`
`protected void` `changeAttribute(EAttribute eAttribute)`
`protected void` `changeReference(EReference eReference)`
`XSDConcreteComponent` `cloneConcreteComponent(boolean deep, boolean shareDOM)` Creates a clone of the component.
`org.w3c.dom.Element` `createElement()`
`static XSDIdentityConstraintDefinition` `createIdentityConstraintDefinition(org.w3c.dom.Node node)`
`java.lang.Object` `eGet(int featureID, boolean resolve, boolean coreType)`
`NotificationChain` `eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)`
`boolean` `eIsSet(int featureID)`
`void` `eSet(int featureID, java.lang.Object newValue)`
`protected EClass` `eStaticClass()`
`void` `eUnset(int featureID)`
`XSDAnnotation` `getAnnotation()`
`EList<XSDXPathDefinition>` `getFields()`
`XSDIdentityConstraintCategory` `getIdentityConstraintCategory()`
`XSDIdentityConstraintDefinition` `getReferencedKey()`
`XSDXPathDefinition` `getSelector()`
`protected void` `handleReconciliation(java.util.List<XSDConcreteComponent> newContents, java.util.List<XSDConcreteComponent> remainingContents)`
`protected void` `handleUnreconciledElement(org.w3c.dom.Element child, java.util.List<XSDConcreteComponent> newContents, java.util.List<XSDConcreteComponent> remainingContents)`
`protected void` `orphanBy(XSDSchema xsdSchema)`
`protected void` `patch()`
`protected void` `reconcileAttributes(org.w3c.dom.Element changedElement)`
`void` `setAnnotation(XSDAnnotation newAnnotation)`
`void` `setIdentityConstraintCategory(XSDIdentityConstraintCategory newIdentityConstraintCategory)`
`void` `setReferencedKey(XSDIdentityConstraintDefinition newReferencedKey)`
`void` `setSelector(XSDXPathDefinition newSelector)`
`java.lang.String` `toString()`
`void` `validate()` Validates whether this component conforms to the constraints defined in the XML Schema standard.

Methods inherited from class org.eclipse.xsd.impl.XSDNamedComponentImpl

`addToSortedList, findInSortedList, getAliasName, getAliasURI, getName, getQName, getQName, getResolvedNamedComponent, getTargetNamespace, getURI, getURIReferenceLabel, hasNameAndTargetNamespace, hasSameNameAndTargetNamespace, hasURI, isNamedComponentReference, mergeToSortedList, patchTargetNamespaceAttribute, patchTargetNamespaceAttribute, reconcileNameAttribute, setName, setTargetNamespace, sortNamedComponents`

Methods inherited from class org.eclipse.xsd.impl.XSDConcreteComponentImpl

`adoptContent, adoptDiagnostic, analyze, checkAttributes, checkAttributeTypeConstraint, checkAttributeTypeConstraint, checkBuiltInTypeConstraint, checkComplexContent, checkComplexContent, checkElementComplexContent, checkSimpleTypeConstraint, clearDiagnostics, cloneConcreteComponents, considerAllContainsForBestConcreteComponent, contains, convertToBoolean, createDiagnostic, createDiagnostic, createDiagnostic, createDiagnostic, createElement, createRequiredAttributeDiagnostic, createUnresolvedAttributeDeclaration, createUnresolvedAttributeGroupDefinition, createUnresolvedComplexTypeDefinition, createUnresolvedElementDeclaration, createUnresolvedIdentityConstraintDefinition, createUnresolvedModelGroupDefinition, createUnresolvedNotationDeclaration, createUnresolvedSimpleTypeDefinition, createUnresolvedTypeDefinition, elementAttributesChanged, elementChanged, elementContentsChanged, eNotificationRequired, eNotify, eObjectForURIFragmentSegment, eURIFragmentSegment, forceEngulf, forceEngulf, forceNiceInsertBefore, forceNiceRemoveChild, forceReplace, getAdoptionParentNode, getBestConcreteComponent, getComponentsWithApplicationInformation, getComponentsWithInformation, getComponentsWithUserInformation, getContainer, getContentNodes, getDiagnostics, getDiagnosticTarget, getElement, getRootContainer, getSchema, getXSDConcreteComponentImpls, getXSDContents, getXSDFactory, getXSDPackage, handleAnnotationReconciliation, handleElementForAdopt, isUpdatingDOM, moveContent, niceCreateNamespaceAttribute, niceInsertBefore, niceRemoveChild, niceSetAttribute, niceSetAttributeURIValue, orphanContent, orphanDiagnostic, populateDiagnostic, printDFA, reconcile, reconcileContents, reportConstraintViolation, reset, resolveAttributeDeclaration, resolveAttributeDeclaration, resolveAttributeDeclarationURI, resolveAttributeGroupDefinition, resolveAttributeGroupDefinition, resolveAttributeGroupDefinitionURI, resolveComplexTypeDefinition, resolveComplexTypeDefinition, resolveComplexTypeDefinitionURI, resolveElementDeclaration, resolveElementDeclaration, resolveElementDeclarationURI, resolveIdentityConstraintDefinition, resolveIdentityConstraintDefinition, resolveIdentityConstraintDefinitionURI, resolveModelGroupDefinition, resolveModelGroupDefinition, resolveModelGroupDefinitionURI, resolveNotationDeclaration, resolveNotationDeclaration, resolveNotationDeclarationURI, resolveSimpleTypeDefinition, resolveSimpleTypeDefinition, resolveSimpleTypeDefinitionURI, resolveTypeDefinition, resolveTypeDefinition, resolveTypeDefinitionURI, setElement, setElementGen, setListContentAndOrder, traverseToRootForAnalysis, traverseToRootForPatching, updateElement, updateElement, updatePrefix`

Methods inherited from class org.eclipse.emf.ecore.impl.EObjectImpl
`eAdapters, eBasicAdapters, eBasicProperties, eBasicSetContainer, eClass, eContainerFeatureID, eDeliver, eInternalContainer, eIsProxy, eProperties, eSetClass, eSetDeliver, eSetProxyURI`

Methods inherited from class org.eclipse.emf.ecore.impl.BasicEObjectImpl

`eAddVirtualValue, eAllContents, eBaseStructuralFeatureID, eBasicRemoveFromContainer, eBasicRemoveFromContainerFeature, eBasicSetContainer, eComputeVirtualValuesCapacity, eContainer, eContainerAdapterArray, eContainingFeature, eContainmentFeature, eContainmentFeature, eContains, eContents, eCrossReferences, eDerivedStructuralFeatureID, eDerivedStructuralFeatureID, eDirectResource, eDynamicBasicRemoveFromContainer, eDynamicClass, eDynamicFeature, eDynamicFeatureID, eDynamicGet, eDynamicGet, eDynamicGet, eDynamicInverseAdd, eDynamicInverseAdd, eDynamicInverseRemove, eDynamicInverseRemove, eDynamicIsSet, eDynamicIsSet, eDynamicIsSet, eDynamicSet, eDynamicSet, eDynamicSet, eDynamicUnset, eDynamicUnset, eDynamicUnset, eGet, eGet, eGet, eHasSettings, eInternalResource, eInverseAdd, eInverseAdd, eInverseRemove, eIsSet, eOpenGet, eOpenIsSet, eOpenSet, eOpenUnset, eProxyURI, eRemoveVirtualValue, eResolveProxy, eResource, eSet, eSetDirectResource, eSetResource, eSetStore, eSetting, eSettingDelegate, eSettings, eSetVirtualIndexBits, eSetVirtualValue, eSetVirtualValues, eStaticFeatureCount, eStore, eUnset, eVirtualBitCount, eVirtualGet, eVirtualGet, eVirtualIndex, eVirtualIndexBits, eVirtualIsSet, eVirtualSet, eVirtualUnset, eVirtualValue, eVirtualValues`

Methods inherited from class org.eclipse.emf.common.notify.impl.BasicNotifierImpl
`eBasicAdapterArray, eBasicHasAdapters`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Methods inherited from interface org.eclipse.xsd.XSDNamedComponent
`getAliasName, getAliasURI, getName, getQName, getQName, getTargetNamespace, getURI, hasNameAndTargetNamespace, hasSameNameAndTargetNamespace, hasURI, setName, setTargetNamespace`

Methods inherited from interface org.eclipse.xsd.XSDConcreteComponent

`clearDiagnostics, contains, elementAttributesChanged, elementChanged, elementContentsChanged, getComponentsWithApplicationInformation, getComponentsWithUserInformation, getContainer, getDiagnostics, getElement, getRootContainer, getSchema, resolveAttributeDeclaration, resolveAttributeDeclaration, resolveAttributeDeclarationURI, resolveAttributeGroupDefinition, resolveAttributeGroupDefinition, resolveAttributeGroupDefinitionURI, resolveComplexTypeDefinition, resolveComplexTypeDefinition, resolveComplexTypeDefinitionURI, resolveElementDeclaration, resolveElementDeclaration, resolveElementDeclarationURI, resolveIdentityConstraintDefinition, resolveIdentityConstraintDefinition, resolveIdentityConstraintDefinitionURI, resolveModelGroupDefinition, resolveModelGroupDefinition, resolveModelGroupDefinitionURI, resolveNotationDeclaration, resolveNotationDeclaration, resolveNotationDeclarationURI, resolveSimpleTypeDefinition, resolveSimpleTypeDefinition, resolveSimpleTypeDefinitionURI, resolveTypeDefinition, resolveTypeDefinition, resolveTypeDefinitionURI, setElement, updateElement, updateElement`

Methods inherited from interface org.eclipse.emf.ecore.EObject
`eAllContents, eClass, eContainer, eContainingFeature, eContainmentFeature, eContents, eCrossReferences, eGet, eGet, eIsProxy, eIsSet, eResource, eSet, eUnset`

Methods inherited from interface org.eclipse.emf.common.notify.Notifier
`eAdapters, eDeliver, eNotify, eSetDeliver`

Field Detail

### IDENTITY_CONSTRAINT_CATEGORY_EDEFAULT

    protected static final XSDIdentityConstraintCategory IDENTITY_CONSTRAINT_CATEGORY_EDEFAULT

  The default value of the '`Identity Constraint Category`' attribute.

  See Also:
    `getIdentityConstraintCategory()`

### IDENTITY_CONSTRAINT_CATEGORY_EFLAG_OFFSET

    protected static final int IDENTITY_CONSTRAINT_CATEGORY_EFLAG_OFFSET

  The offset of the flags representing the value of the '`Identity Constraint Category`' attribute.

  See Also:
    Constant Field Values

### IDENTITY_CONSTRAINT_CATEGORY_EFLAG_DEFAULT

    protected static final int IDENTITY_CONSTRAINT_CATEGORY_EFLAG_DEFAULT

  The flags representing the default value of the '`Identity Constraint Category`' attribute.

### IDENTITY_CONSTRAINT_CATEGORY_EFLAG

    protected static final int IDENTITY_CONSTRAINT_CATEGORY_EFLAG

  The flags representing the value of the '`Identity Constraint Category`' attribute.

  See Also:
    `getIdentityConstraintCategory()`, Constant Field Values

### annotation

    protected XSDAnnotation annotation

  The cached value of the '`Annotation`' containment reference.

  See Also:
    `getAnnotation()`

### referencedKey

    protected XSDIdentityConstraintDefinition referencedKey

  The cached value of the '`Referenced Key`' reference.

  See Also:
    `getReferencedKey()`

### selector

    protected XSDXPathDefinition selector

  The cached value of the '`Selector`' containment reference.

  See Also:
    `getSelector()`

### fields

    protected EList<XSDXPathDefinition> fields

  The cached value of the '`Fields`' containment reference list.

  See Also:
    `getFields()`

Constructor Detail

### XSDIdentityConstraintDefinitionImpl

    protected XSDIdentityConstraintDefinitionImpl()

Method Detail

### createIdentityConstraintDefinition

    public static XSDIdentityConstraintDefinition createIdentityConstraintDefinition(org.w3c.dom.Node node)

### eStaticClass

    protected EClass eStaticClass()

  Overrides:
    `eStaticClass` in class `XSDNamedComponentImpl`

### getIdentityConstraintCategory

    public XSDIdentityConstraintCategory getIdentityConstraintCategory()

  Specified by:
    `getIdentityConstraintCategory` in interface `XSDIdentityConstraintDefinition`
  Returns:
    the value of the 'Identity Constraint Category' attribute.
  See Also:
    `XSDIdentityConstraintCategory`, `XSDIdentityConstraintDefinition.setIdentityConstraintCategory(XSDIdentityConstraintCategory)`, `XSDPackage.getXSDIdentityConstraintDefinition_IdentityConstraintCategory()`

### setIdentityConstraintCategory

    public void setIdentityConstraintCategory(XSDIdentityConstraintCategory newIdentityConstraintCategory)

  Specified by:
    `setIdentityConstraintCategory` in interface `XSDIdentityConstraintDefinition`
  Parameters:
    `newIdentityConstraintCategory` - the new value of the 'Identity Constraint Category' attribute.
  See Also:
    `XSDIdentityConstraintCategory`, `XSDIdentityConstraintDefinition.getIdentityConstraintCategory()`

### getAnnotation

    public XSDAnnotation getAnnotation()

  Specified by:
    `getAnnotation` in interface `XSDIdentityConstraintDefinition`
  Returns:
    the value of the 'Annotation' containment reference.
  See Also:
    `XSDIdentityConstraintDefinition.setAnnotation(XSDAnnotation)`, `XSDPackage.getXSDIdentityConstraintDefinition_Annotation()`

### setAnnotation

    public void setAnnotation(XSDAnnotation newAnnotation)

  Specified by:
    `setAnnotation` in interface `XSDIdentityConstraintDefinition`
  Parameters:
    `newAnnotation` - the new value of the 'Annotation' containment reference.
  See Also:
    `XSDIdentityConstraintDefinition.getAnnotation()`

### basicSetAnnotation

    public NotificationChain basicSetAnnotation(XSDAnnotation newAnnotation,
                                                NotificationChain msgs)

### getReferencedKey

    public XSDIdentityConstraintDefinition getReferencedKey()

  Specified by:
    `getReferencedKey` in interface `XSDIdentityConstraintDefinition`
  Returns:
    the value of the 'Referenced Key' reference.
  See Also:
    `XSDIdentityConstraintDefinition.setReferencedKey(XSDIdentityConstraintDefinition)`, `XSDPackage.getXSDIdentityConstraintDefinition_ReferencedKey()`

### setReferencedKey

    public void setReferencedKey(XSDIdentityConstraintDefinition newReferencedKey)

  Specified by:
    `setReferencedKey` in interface `XSDIdentityConstraintDefinition`
  Parameters:
    `newReferencedKey` - the new value of the 'Referenced Key' reference.
  See Also:
    `XSDIdentityConstraintDefinition.getReferencedKey()`

### getSelector

    public XSDXPathDefinition getSelector()

  Specified by:
    `getSelector` in interface `XSDIdentityConstraintDefinition`
  Returns:
    the value of the 'Selector' containment reference.
  See Also:
    `XSDIdentityConstraintDefinition.setSelector(XSDXPathDefinition)`, `XSDPackage.getXSDIdentityConstraintDefinition_Selector()`

### setSelector

    public void setSelector(XSDXPathDefinition newSelector)

  Specified by:
    `setSelector` in interface `XSDIdentityConstraintDefinition`
  Parameters:
    `newSelector` - the new value of the 'Selector' containment reference.
  See Also:
    `XSDIdentityConstraintDefinition.getSelector()`

### basicSetSelector

    public NotificationChain basicSetSelector(XSDXPathDefinition newSelector,
                                              NotificationChain msgs)

### getFields

    public EList<XSDXPathDefinition> getFields()

  Specified by:
    `getFields` in interface `XSDIdentityConstraintDefinition`
  Returns:
    the value of the 'Fields' containment reference list.
  See Also:
    `XSDPackage.getXSDIdentityConstraintDefinition_Fields()`

### eInverseRemove

    public NotificationChain eInverseRemove(InternalEObject otherEnd,
                                            int featureID,
                                            NotificationChain msgs)

  Overrides:
    `eInverseRemove` in class `XSDConcreteComponentImpl`

### eGet

    public java.lang.Object eGet(int featureID,
                                 boolean resolve,
                                 boolean coreType)

  Specified by:
    `eGet` in interface `InternalEObject`
  Overrides:
    `eGet` in class `XSDNamedComponentImpl`

### eSet

    public void eSet(int featureID,
                     java.lang.Object newValue)

  Specified by:
    `eSet` in interface `InternalEObject`
  Overrides:
    `eSet` in class `XSDNamedComponentImpl`

### eUnset

    public void eUnset(int featureID)

  Specified by:
    `eUnset` in interface `InternalEObject`
  Overrides:
    `eUnset` in class `XSDNamedComponentImpl`

### eIsSet

    public boolean eIsSet(int featureID)

  Specified by:
    `eIsSet` in interface `InternalEObject`
  Overrides:
    `eIsSet` in class `XSDNamedComponentImpl`

### toString

    public java.lang.String toString()

  Overrides:
    `toString` in class `XSDNamedComponentImpl`

### createElement

    public org.w3c.dom.Element createElement()

  Overrides:
    `createElement` in class `XSDConcreteComponentImpl`

### patch

    protected void patch()

  Overrides:
    `patch` in class `XSDNamedComponentImpl`

### validate

    public void validate()

  Description copied from interface: `XSDConcreteComponent`
  Validates whether this component conforms to the constraints defined in the XML Schema standard. `Diagnostics` are produced to report any problems. The effect of calling this for a component not directly or indirectly contained by a `schema` is undefined, and is likely to result in null pointer exceptions.

  Specified by:
    `validate` in interface `XSDConcreteComponent`
  Overrides:
    `validate` in class `XSDConcreteComponentImpl`
  See Also:
    `XSDConcreteComponent.getDiagnostics()`, `XSDConcreteComponent.clearDiagnostics()`

### reconcileAttributes

    protected void reconcileAttributes(org.w3c.dom.Element changedElement)

  Overrides:
    `reconcileAttributes` in class `XSDNamedComponentImpl`

### handleUnreconciledElement

    protected void handleUnreconciledElement(org.w3c.dom.Element child,
                                             java.util.List<XSDConcreteComponent> newContents,
                                             java.util.List<XSDConcreteComponent> remainingContents)

  Overrides:
    `handleUnreconciledElement` in class `XSDConcreteComponentImpl`

### handleReconciliation

    protected void handleReconciliation(java.util.List<XSDConcreteComponent> newContents,
                                        java.util.List<XSDConcreteComponent> remainingContents)

  Overrides:
    `handleReconciliation` in class `XSDConcreteComponentImpl`

### changeAttribute

    protected void changeAttribute(EAttribute eAttribute)

  Overrides:
    `changeAttribute` in class `XSDNamedComponentImpl`

### adoptBy

    protected void adoptBy(XSDSchema xsdSchema)

  Overrides:
    `adoptBy` in class `XSDNamedComponentImpl`

### orphanBy

    protected void orphanBy(XSDSchema xsdSchema)

  Overrides:
    `orphanBy` in class `XSDConcreteComponentImpl`

### changeReference

    protected void changeReference(EReference eReference)

  Overrides:
    `changeReference` in class `XSDConcreteComponentImpl`

### cloneConcreteComponent

    public XSDConcreteComponent cloneConcreteComponent(boolean deep,
                                                       boolean shareDOM)

  Description copied from interface: `XSDConcreteComponent`
  Creates a clone of the component. The clone may be deep and may share the DOM of this component.

  Specified by:
    `cloneConcreteComponent` in interface `XSDConcreteComponent`
  Overrides:
    `cloneConcreteComponent` in class `XSDConcreteComponentImpl`
  Parameters:
    `deep` - whether the clone should be deep.
    `shareDOM` - whether the clone should share the original DOM
  Returns:
    a clone of the component.

Copyright 2001-2006 IBM Corporation and others. All Rights Reserved.