Para aqueles que utilizam RemoteObject do LiveCycle para fazer chamada a
classes Java fiz uma implementação de um Service que chama classes de
comando do Java via Reflection. Essa funcionalidade é interessante porque
com apenas uma classe/service é possível fazer a chamada a diversos
"comandos" na camada Java, é um arquitetura simples mas muito funcional.

A classe Service é como segue:
public class CommandService {

    public void setCommand(List commandArgs) {

        if(commandArgs != null || commandArgs.size() > 0) {
            String nomeComando = "br.com.cleberlecheta.command." +
((String)commandArgs.get(0));
            try {
                Object classeCommand = Class.forName
(nomeComando).newInstance();
                Class param = List.class;
                Method metodo = classeCommand.getClass().getMethod("execute",
param);
                metodo.invoke(classeCommand, commandArgs);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }

    }
}

A classe Command:
public class TesteCommand implements Command{

    @Override
    public void execute(List commandArgs) {
        System.out.println("TESTE DE PARAMENTRO: " + commandArgs.get(0));
        System.out.println("TESTE DE PARAMENTRO: " + commandArgs.get(1));
    }

}

Ademais tudo que se há por fazer é declarar um RemoteObject no Flex e
utilizá-lo para fazer chamada a diversas classes de comando Java, que podem,
inclusive, tratar da persistência ou negócio da sua aplicação.

    <mx:RemoteObject id="commandSrv" destination="commandSrv"
showBusyCursor="true">
        <mx:method name="execute">
            <mx:arguments>
                <commandArgs>{ArrayCollection}</commandArgs>
            </mx:arguments>
        </mx:method>
    </mx:RemoteObject>


A aplicação desse padrão tem sido muito útil na arquitetura de meus
projetos, a idéia é contribuir e abrir margem para discussão, espero que
seja útil para vossos projetos também.

-- 
Atenciosamente

Cleber Lecheta Franchini
www.cleberlecheta.com.br

MBA em Gerenciamento por Projetos - FGV
Especialista em Sistemas GNU/Linux - Conectiva S.A
Tecnologia em Informática - UFPR


ANTES DE IMPRIMIR tenha em mente seu compromisso com o  MEIO AMBIENTE!

--~--~---------~--~----~------------~-------~--~----~
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para [email protected]
Para sair da lista, envie um email em branco para [EMAIL PROTECTED]
Mais opções estão disponíveis em http://groups.google.com/group/flexdev
-~----------~----~----~----~------~----~------~--~---

Responder a