Rational Developer para System z, Versão 7.6

Lidando com Parâmetros Customizados

Os desenvolvedores do RAM possuem a capacidade de customizar as ações existentes do CARMA ou criar ações completamente novas. Essas ações podem ter parâmetros customizados ou valores de retorno, como definido pela configuração do host CARMA.

Há várias classes auxiliares para que você possa utilizar facilmente essas ações customizadas:

CustomActionParameterManager
Consulta os valores padrão, armazenados e de link (recuperados na ordem especificada nas preferências do CARMA) em oposição aos metadados
CustomActionParameterDialog
Um diálogo de conveniência que simplesmente pede que os usuários insiram valores para os parâmetros customizados
CustomActionUtil
Uma classe auxiliar fornecendo diversos métodos de conveniência

Usando as Classes de Auxílio de Ação Customizada

A forma mais simples de obter valores para um parâmetro customizado é utilizar um dos métodos no CustomActionUtil; por exemplo, getCustomParameters:

CustomActionUtil.getCustomParameters(resource, "101");

Isso recupera os parâmetros customizados para a ação com um ID de ação de 101 para o recurso determinado. Se planejar utilizar a mesma tarefa repetidamente para recursos diferentes, mas semelhantes, você pode utilizar getCustomParametersForTask da seguinte forma:

CARMAContent[] resources = getResources();
CarmaTaskMemento taskMemento  = new CarmaTaskMemento();
for (int i = 0; i < resources.length; i++) {
        	CustomActionUtil.getCustomParametersForTask(taskMemento, resources[i], "101");
}

No exemplo acima, taskMemento é utilizado para armazenar informações digitadas pelo usuário para uso entre as chamadas de ações. Se taskMemento não foi utilizado aqui, o usuário deve ser consultado com os mesmos prompts para todos os recursos.

Se você preferir utilizar um mecanismo diferente para procurar valores de parâmetro (como uma interface com o usuário diferente), poderá interagir diretamente com a classe CustomActionParameterManager, conforme ilustrado no seguinte exemplo:

CustomActionParameterManager manager = CustomActionParameterManager.getManager();
Object[] paramsToPass = manager.getCustomParameters(resource, actionId); // parâmetros a serem transmitidos ao comando
//este método dirá se o gerenciador possui ou não todas as informações necessárias
if (manager.isPromptNeeded(resource, actionId)) {
        	final Action action = resource.findActionFor(actionId);

        	Iterator parameters = action.getParameters().iterator();

        	//localize o parâmetro que deseja alterar desta forma ou procure por ele como nulo em paramsToPass
        	int index = 0;
        while (it.hasNext()) {
                                       		Parameter param = (Parameter) it.next();
                		if (param.getName().equals(targetName))
                        break;
                index++;
        }

        	paramsToPass[index] = new Boolean(false);

        	//armazene opcionalmente o parâmetro para posteriormente
        	Object[] paramsToStore = new Object[paramsToPass.length];
        	for (int i = 0; i < paramsToStore.length; i++) {
                		paramsToStore[i] = null;
                		if (i == index)
                        			paramsToStore[i] = new Boolean(false);
        }
        	manager.setUserStoredParamValues(resource.getRepository(), paramsToStore);
}

No exemplo acima, targetName é o nome do parâmetro, como definido pelo desenvolvedor RAM.


Termos de Uso | Feedback

Este centro de informações é desenvolvido pela tecnologia Eclipse. (http://www.eclipse.org)