Xtools Transformation Extensions

com.ibm.xtools.transform.core.transformationExtensions

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:

<!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>


<!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>


<!ELEMENT AddExtractor EMPTY>

<!ATTLIST AddExtractor

id        CDATA #REQUIRED

index     CDATA #IMPLIED

transform CDATA #REQUIRED>


<!ELEMENT AddTransform EMPTY>

<!ATTLIST AddTransform

id    CDATA #REQUIRED

index CDATA #IMPLIED>


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>

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 com.ibm.xtools.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.

No information at this time.


© Copyright 2004 IBM Corporation. All Rights Reserved.