Estendendo as Transformações de Processos de Negócios em Modelos de Serviços

Você pode estender a transformação de Processo de Negócios em Modelo de Serviço para customizar como os processos de negócios de um modelo de especificação serão transformados. As condições especificadas em uma extensão de transformação possibilitam a transformação para gerar saída específica do domínio.
Antes de Iniciar

O procedimento a seguir supõe que você saiba como criar, testar e distribuir plug-ins, e que esteja familiarizado com o Plug-in Development Environment (PDE) do Eclipse.

É necessário ter um projeto de plug-in de transformação no espaço de trabalho. Esse projeto de plug-in contém a implementação da extensão de transformação. O ID especificado para a transformação deve ser exclusivo.

Por Que e Quando Desempenhar Esta Tarefa
Para estender a transformação de Processo de Negócios em Modelo de Serviço, conclua as seguintes etapas:
  1. Na pasta src do plug-in de transformação, no pacote que tem o mesmo nome do plug-in de transformação, crie uma classe Java™ que estenda com.ibm.xtools.transform.core.Transform:
    package com.ibm.xtools.transform.cfm.example.transform;  
    
    import com.ibm.xtools.transform.cfm.example.rules.MyPopulateComponentRule; 
    import com.ibm.xtools.transform.core.Transform;   
    
    /**  
     * com.ibm.xtools.transform.cfm.example.transform.MyTransform  
     */ 
    public class MyTransform     
    	extends Transform {      
    
    	public static final String TRANSFORM_ID = "com.ibm.xtools.transform.cfm.example.transform.MyTransformId"; //$NON-NLS-1$      
    
    	public MyTransform() {         
    		super(TRANSFORM_ID);         
    		add(new MyPopulateComponentRule());         
    	} 
    }

    Nesse exemplo, com.ibm.xtools.transform.cfm.example.transform é o nome da extensão de transformação que você cria e com.ibm.xtools.transform.cfm.example.transform.MyTransformId é o ID de transformação exclusivo. A classse MyPopulateComponentRule contém os detalhes de implementação sobre como transformar um processo de negócios em um modelo de especificação.

  2. Na pasta src da extensão de transformação, crie um pacote Java para conter a classe ou as classes que especificam se essa extensão de transformação deve transformar um processo de negócios específico. Essas classes são chamadas de classes de condição. Nesse exemplo, o pacote chama-se com.ibm.xtools.transform.cfm.example.condition.
  3. No pacote que você criar na etapa 2, crie uma classe Java, chamada classe de condição, que contenha o seguinte código:
    package com.ibm.xtools.transform.cfm.example.condition;  
    
    import org.eclipse.uml2.uml.Collaboration;  
    import com.ibm.xtools.transform.cfm.common.util.CommonConfigUtil; 
    import com.ibm.xtools.transform.cfm.example.transform.MyTransform; 
    import com.ibm.xtools.transform.core.ITransformContext; 
    import com.ibm.xtools.transform.core.TransformCondition;  
    
    /**  
     * com.ibm.xtools.transform.cfm.example.condition.MyExtensionCondition  
     */ 
    public class MyExtensionCondition     
    	extends TransformCondition {      
    		public MyExtensionCondition() {         
    			super();     
    		}      
    
    		protected boolean isContextSatisfied(ITransformContext context) {          
    			return (context.getSource() instanceof Collaboration)             
    			&& CommonConfigUtil.getExtensionIdFor(                 
    				(Collaboration) context.getSource(), context).equals(                 
    				MyTransform.TRANSFORM_ID);     
    		}  
    }
    Quando você executar a transformação de Processo de Negócios em Modelo de Serviço, o serviço de transformação utilizará as informações dessa classe de condição para determinar se essa extensão de transformação deverá ser chamada para transformar um processo de negócios no modelo de especificação.
  4. No arquivo plugin.xml da extensão de transformação, inclua um ponto de extensão para registrar a extensão de transformação. É necessário utilizar os mesmos valores do exemplo abaixo para os atributos extension point e targetTransformation. Para os outros atributos, especifique os valores apropriados com base nas convenções de nomenclatura utilizadas para criar a extensão de transformação.
    <extension point="com.ibm.xtools.transform.core.transformationExtensions">
          
          <TransformationExtension author="you" description="my custom extension" document="optional" enabled="true" id="com.ibm.xtools.transform.cfm.example.transform.MyTransformId" name="My custom extension" targetTransformation="com.ibm.xtools.transform.cfm.wbm.transforms.MainTransform" version="1.0.0">
                
     					<TransformDefinition acceptCondition="com.ibm.xtools.transform.cfm.example.condition.MyExtensionCondition" class="com.ibm.xtools.transform.cfm.example.transform.MyTransform" id="myTransformId"/>
                   
    							<ExtendTransform targetTransform="com.ibm.xtools.transform.cfm.wbm.transforms.OwnedBehaviorTransform">
          
    									<AddTransform id="com.ibm.xtools.transform.cfm.example.transform.MyTransform"/>
    							</ExtendTransform>
             
    			</TransformationExtension>
    </extension>
Resultados
Na próxima vez que você criar ou editar uma configuração da transformação de Processo de Negócios em Modelo de Serviço, na página Transformação de Processo de Negócios em Modelo de Serviço do assistente Nova Configuração de Transformação, você poderá selecionar a nova extensão para transformar processos de negócios.

Feedback