Xtools Transformation Providers
Identifier:
com.ibm.xtools.transform.core.transformationProviders
Description:
This extension point facilitates the configuration of providers for the transformation service
(com.ibm.xtools.transform.core.services.TransformationService).
The transformation service enables Xtools clients to register model transformations. These
transformations can be used to convert the data from one model into a different model. Typically
the source model is a UML based model with transformation specific profiles applied to that model.
The target model is typically a code model such as Java or J2EE (EJBs). The user chooses which
transformation is going to be applied to his source model.
Configuration Markup:
<!ELEMENT extension (TransformationProvider)>
<!ATTLIST extension
point CDATA #REQUIRED
id CDATA #IMPLIED
name CDATA #IMPLIED>
- point - The identifier of the extension point, e.g. com.ibm.xtools.transform.core.transformationProviders.
- id - The identifier of the extension, e.g. my.plugin.transformationProvider.
- name - The name of the extension, e.g. %ext.transformationProviderName.
<!ELEMENT TransformationProvider (Priority , Policy? , Transformation+)>
<!ATTLIST TransformationProvider
class CDATA #REQUIRED>
- class - The provider class creates instances of transformations and provides
validation to ensure that the transformation properties are
sufficiently initialized to enable the transformation to be executed.
This class should be derived from
com.ibm.xtools.transform.core.AbstractTransformationProvider.
<!ELEMENT Priority EMPTY>
<!ATTLIST Priority
name (Lowest|Low|Medium|High|Highest) >
- name - The name of the provider priority, i.e. Lowest, Low, Medium, High, or Highest.
<!ELEMENT Policy EMPTY>
<!ATTLIST Policy
class CDATA #REQUIRED
plugin CDATA #REQUIRED>
- class - The provider policy class. Provider policies can optionally be associated with providers to determine whether the providers provide a given operation.
- plugin - The plug-in containing the provider policy, i.e. org.eclipse.gmf.runtime.common.core.provider.
<!ELEMENT Transformation (Property* , ExecutionList? , License*)>
<!ATTLIST Transformation
author CDATA #IMPLIED
name CDATA #REQUIRED
id CDATA #REQUIRED
keywords CDATA #IMPLIED
description CDATA #IMPLIED
document CDATA #IMPLIED
extensible (true | false) "true"
icon CDATA #IMPLIED
sourceModelType CDATA #REQUIRED
targetModelType CDATA #REQUIRED
groupPath CDATA #REQUIRED
public (true | false) "true"
profiles CDATA #IMPLIED
version CDATA #REQUIRED
transformGUI CDATA #IMPLIED
reverseTransformationId CDATA #IMPLIED
supportsSilentMode (true | false) "false"
supportsSourceOverride (true | false) "true"
licenseId CDATA #IMPLIED
licenseVersion CDATA #IMPLIED>
- author - The author of the transformation.
- name - The localized name of the transformation that the user will see.
- id - The unique identifier of the transformation.
- keywords - A list of associated keywords (separated by commas).
- description - A localized description of the transformation that the user will see.
- document - An HTML document reference containing detailed information on
what the transformation does and how it can be used. The referenced
HTML document can either be an URL or a file path relative
to the root directory of the plug-in.
- extensible - A boolean flag that indicates whether non-owner plug-ins can extend
this transformation. The default is extensible (true).
- icon - A relative path of an icon (e.g., GIF file) for this transformation. The icon should
be small enough to fit into a tree control (e.g., 16X16).
- sourceModelType - The type of source model that the transformation expects. The UI
filters the current selection based on this property's values.
Examples include:
UML2, UML2Notation, Resource and Raw (no filtering).
- targetModelType - The type of target model that the transformation generates.
- groupPath - A path, containing names separated by a slash (/), that is used to
categorize transformations. Each name in the path appears
as a node in a tree structure (similar to nested folders).
- public - Indicates whether this transformation is visible in the UI (public) or not (private).
If this attribute is not defined, the default value is public (true).
- profiles - A comma separated list of registered UML2 profile names. These profiles
are registered by the extension point
com.ibm.xtools.uml.msl.UMLProfiles.
- version - The version of this transformation. The version format should
be compatible with the Eclipse version format: x.y.z.
- transformGUI - An optional class that enables transformation authors to integrate custom
GUI into the transformation user interface. The specified
class must be derived from
com.ibm.xtools.transform.ui.AbstractTransformGUI.
- reverseTransformationId - The id of a transformation that can be used as a reverse of this transformation.
- supportsSilentMode - The transformation supports executing in silent/headless mode.
- supportsSourceOverride - Specifies if the transformation supports overriding the source property specified in the transformation configuration. If it does, additional transform context menus will be seen in the workbench to run the transformation using the selected object as the source for that transformation instance.
- Deprecated licenseId - The ID of the component that contains this plugin.
Note: this attribute is deprecated as of 3.0.3/8.0.3. Use the sequence of License elements to permit multiple components to license a transformation.
- Deprecated licenseVersion - The version of the component that contains this plugin.
Note: this attribute is deprecated as of 3.0.3/8.0.3. Use the sequence of License elements to permit multiple components to license a transformation.
<!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">
- name - The localized name of the transformation property.
- id - The identifier of the transformation property which must be unique
within this transformation.
- description - A localized description of this transformation property.
- value - The default value of the transformation property. If the property is read-write,
before and during transformation
execution this value can overridden by changing it in the transformation context.
If the
"maxValues" attribute is not "1", this default value will be parsed
(using the "delimiters" attribute) to create a list of values instead of
a single value. If this attribute is not specified, the property value is null.
- metatype - Defines the underlying type of the property value(s). The default metatype
value is "string".
The following metatypes are provided in the transformation framework:
Boolean, Choice, EMF, File, Folder, Integer, Project, Resource, String.
If the UML support of the transformation framework is installed the
following metatypes will also be available: Notation, UML, UMLNotation.
- metatypeData - Defines the data associated with the underlying type of the property value(s).
It is additional information that can be used to define constraints on the value.
The default metatype data value is an empty string.
Only two metatypes in the transformation framework currently use this.
- Choice - The format is a comma separated list. For example, one,two,three.
- String - The format is a comma separated list of key value pairs.
Currently the only supported key is maxLength which defines the maximum
number of characters the string may contain. For example, maxLength=10.
- maxValues - Defines the maximum number of values that can be defined for the property.
A number less than or equal to zero indicates an unlimited number of values.
The default maximum number of values is "1".
- delimiters - If a property can contain multiple values (maxValues != 1) and a
string is defined for the "value" attribute, this delimiters attribute
can be defined so that the single value string can be parsed into
multiple values (e.g., the keywords property expects a space separated
list of words as its "value" attribute).
The default delimiters are " \t\r\n\f".
- readonly - Identifies a property as being read-only that
cannot be changed at runtime. The default value is "false".
<!ELEMENT ExecutionList (UseUtility* , UseTransform)>
<!ELEMENT UseUtility EMPTY>
<!ATTLIST UseUtility
id CDATA #REQUIRED>
- id - The id of a defined transform utility
<!ELEMENT UseTransform (EMPTY?)>
<!ELEMENT License EMPTY>
<!ATTLIST License
licenseId CDATA #IMPLIED
licenseVersion CDATA #IMPLIED>
License information for features/components that license this plugin's transformation.
- licenseId - The ID of a component that licenses this plugin's transformation.
- licenseVersion - The version of a component that licenses this plugin's transformation.
Examples:
Following is an example of a transformation provider extension:
<extension
point="com.ibm.xtools.transform.core.transformationProviders">
<TransformationProvider
class="my.plugin.providers.MyTransformationProvider">
<Priority
name="Highest">
</Priority>
<Transformation
name="%transform.name"
id="my.plugin.transformation.uml2.Java"
author="Some Body"
description="%transform.description"
document="docs/transformDetails.html"
version="1.0.0;
keywords="UML, Java, AppType"
sourceModelType="UML2 Resource"
targetModelType="Java">
<Property id="my.plugin.transformation.property1" name="%property1.name" value="defaultValue1" />
<Property id="my.plugin.transformation.property2" name="%property2.name" value="defaultValue2" />
</Transformation>
</TransformationProvider>
</extension>
API Information:
The value of the class attribute must be a subclass of
com.ibm.xtools.transform.core.AbstractTransformationProvider.
Copyright (c) 2004, 2018 Model RealTime, HCL and others. All Rights Reserved.