Xtools Transformation Extensions

Identifier:
com.ibm.xtools.transform.core.transformationExtensions

Description:
This extension point facilitates the configuration of extensions to transformations that are defined by transformation providers registered with the transformation service. Using a transformation extension, a client can extend the behavior of an existing transformation.

A transformation extension allows a client to add rules, content extractors or transforms to an existing transformation, as long as that transformation has published the unique IDs of its transforms. In an extension, the following items can be defined:

Configuration Markup:

<!ELEMENT extension (TransformationExtension)>

<!ATTLIST extension

point CDATA #REQUIRED

id    CDATA #IMPLIED

name  CDATA #IMPLIED>


<!ELEMENT TransformationExtension (Property* , RuleDefinition* , ExtractorDefinition* , TransformDefinition* , ExtendTransform+)>

<!ATTLIST TransformationExtension

id                   CDATA #REQUIRED

name                 CDATA #IMPLIED

targetTransformation CDATA #REQUIRED

author               CDATA #IMPLIED

description          CDATA #IMPLIED

document             CDATA #IMPLIED

enabled              (true | false) "true"

version              CDATA #REQUIRED

extensionGUI         CDATA #IMPLIED

helperClass          CDATA #IMPLIED

readonly             (true | false) "false">


<!ELEMENT Property EMPTY>

<!ATTLIST Property

name         CDATA #REQUIRED

id           CDATA #REQUIRED

description  CDATA #IMPLIED

value        CDATA #IMPLIED

metatype     CDATA #IMPLIED

metatypeData CDATA #IMPLIED

maxValues    CDATA #IMPLIED

delimiters   CDATA #IMPLIED

readonly     (true | false) "false">


<!ELEMENT RuleDefinition EMPTY>

<!ATTLIST RuleDefinition

id              CDATA #REQUIRED

name            CDATA #IMPLIED

description     CDATA #IMPLIED

class           CDATA #REQUIRED

acceptCondition CDATA #IMPLIED>


<!ELEMENT ExtractorDefinition EMPTY>

<!ATTLIST ExtractorDefinition

id              CDATA #REQUIRED

name            CDATA #IMPLIED

description     CDATA #IMPLIED

class           CDATA #REQUIRED

acceptCondition CDATA #IMPLIED

filterCondition CDATA #IMPLIED>


<!ELEMENT TransformDefinition EMPTY>

<!ATTLIST TransformDefinition

id              CDATA #REQUIRED

name            CDATA #IMPLIED

description     CDATA #IMPLIED

class           CDATA #IMPLIED

acceptCondition CDATA #IMPLIED>


<!ELEMENT ExtendTransform (AddRule* , AddExtractor* , AddTransform*)>

<!ATTLIST ExtendTransform

id              CDATA #IMPLIED

name            CDATA #IMPLIED

targetTransform CDATA #REQUIRED>


<!ELEMENT AddRule EMPTY>

<!ATTLIST AddRule

id         CDATA #REQUIRED

index      CDATA #IMPLIED

insertAtID CDATA #IMPLIED>


<!ELEMENT AddExtractor EMPTY>

<!ATTLIST AddExtractor

id         CDATA #REQUIRED

index      CDATA #IMPLIED

transform  CDATA #REQUIRED

insertAtID CDATA #IMPLIED>


<!ELEMENT AddTransform EMPTY>

<!ATTLIST AddTransform

id         CDATA #REQUIRED

index      CDATA #IMPLIED

insertAtID CDATA #IMPLIED>


Examples:
Following is an example of a transformation extension:


<extension point="com.ibm.xtools.transform.core.transformationExtensions">
   <TransformationExtension
      id="clientB.transformation.extension.1"
      targetTransformation="providerA.TransformA">
      <Property id="extension.property.1" name="newPropertyName" value="default value" readonly="true" />

      <RuleDefinition
         id="clientB.ClassRuleB1"
         name="Client B Class Rule 1"
         class="com.ibm.clientB.extension.ClassRuleB1" />

      <RuleDefinition
         id="clientB.ClassRuleB2"
         name="Client B Class Rule 2"
         class="com.ibm.clientB.extension.ClassRuleB2" />

      <ExtractorDefinition
         id="clientB.ClassExtractorB"
         name="Client B Class Extractor "
         class="com.ibm.clientB.extension.ClassExtractorB" />

      <TransformDefinition
         id="clientB.ClassTransformB"
         name="Client B Class Transform "
         class="com.ibm.clientB.extension.ClassTransformB" />

      <ExtendTransform
         targetTransform="TransformA.ClassTransform" >
         <AddRule
            id="clientB.ClassRuleB1"
            index="0" />
         <AddExtractor
            id="clientB.ClassExtractorB"
            transform="clientB.ClassTransformB" />
      </ExtendTransform>

      <ExtendTransform
         targetTransform="clientB.ClassTransformB"
         <AddRule
            id="clientB.ClassRuleB2" />
      </ExtendTransform>

   </TransformationExtension>
</extension>

API Information:
The value of the class attribute in the <RuleDefinition> element must be derieved from com.ibm.xtools.transform.core.AbstractRule.

The value of the class attribute in the <ExtractorDefinition> element must be derived from com.ibm.xtools.transform.core.AbstractContentExtractor.

The value of the class attribute in the <TransformDefinition> element, if specified, must be derived from com.ibm.xtools.transform.core.AbstractTransform. If not specified, the class com.ibm.xtools.transform.core.Transform is used.

The value of the acceptCondition and filterCondition attributes in the rule, extractor and transform definitions must be derived from org.eclipse.emf.query.conditions.Condition. By default, the condition can only interrogate the current source object to make its decision. If more information is needed, the condition can be derived from com.ibm.xtools.transform.core.TransformCondition, in which case the entire transform context is available.


Copyright (c) 2004, 2018 Model RealTime, HCL and others. All Rights Reserved.