Wemerson,
Olhando sua classe novamente, vc pretende chamar o send() sempre de dentro
dos services, né?
e vai sempre alimentar a variável this.url, né?
como todas as funções, as q chamam e o send, estão na mesma classe, e a
variável this.url tb, eu definiria a this.url na chamada andes de chamar o
send() e nem precisa dar override no send();
public function getAll():AsyncToken{
this.url += getURL("getAll");
return this.send();
}
protected function getURL(func:String):String {
return "/" + this.remoteService + func;
}
*--
Gustavo Martinez*
2013/4/18 Wemerson Couto Guimarães <[email protected]>
> @Freddy, a dica foi boa; mas infelizmente não dá certo, visto que o
> arguments.callee é referente à função atual e não mostra nada sobre qual
> função anterior.
>
>
> http://stackoverflow.com/questions/4731935/actionscript-obtain-the-name-of-the-current-function
>
> Se pelo menos tivesse como fazer um override inserindo novos parâmetros.
>
>
> @Gustavo, eu queria manter tudo o mais desacoplado possível, sem
> malabarismos... só usando o que fosse nativo mesmo... mas estou analisando
> que a melhor saída é passar o nome nos parameters mesmo...
>
>
>
> Em 18 de abril de 2013 13:40, Fredy Gadotti <[email protected]>escreveu:
>
> Se não me engano, os métodos tem uma propriedade especial que não aparece
>> no code complete que se chama "callee", que tem o nome da função que chamou
>> o método corrente.
>>
>> Dá uma pesquisada nisso, que é o caminho das pedras :D
>> hehe
>>
>>
>> 2013/4/18 Wemerson Couto Guimarães <[email protected]>
>>
>>> Não tem como... pra fazer um override de uma função/método a sua
>>> declaração deve ser idêntica à função da classe original, exceto pelo termo
>>> "override" é claro!
>>>
>>>
>>>
>>>
>>>
>>>
>>> Em 18 de abril de 2013 11:59, Gustavo Martinez <[email protected]> escreveu:
>>>
>>> Wemerson, aconselho passar o nome da função como parâmetro:
>>>>
>>>> override public function send(*functionName*:String,
>>>> parameters:Object=null):AsyncToken{
>>>>
>>>> this.url += "/" + this.remoteService + *functionName*; // (getAll,
>>>> getById, save, etc...)
>>>> return super.send(parameters);
>>>> }
>>>>
>>>> *--
>>>> Gustavo Martinez*
>>>>
>>>>
>>>> 2013/4/18 Wemerson Couto Guimarães <[email protected]>
>>>>
>>>>> O detalhe é que eu preciso justamente saber o nome do método que
>>>>> originou a chamada, pois ele vai ser usado posteriormente.
>>>>>
>>>>> veja um exemplo com um override.. onde preciso saber qual o método.. :
>>>>>
>>>>> Class ServiceBase extends HTTPService
>>>>> {
>>>>> private var remoteService:String;
>>>>>
>>>>> public function ServiceBase(serviceName:String){
>>>>> this.remoteService = serviceName;
>>>>> }
>>>>>
>>>>> override public function send(parameters:Object=null):AsyncToken{
>>>>>
>>>>> this.url += "/" + this.remoteService + METODO_REMOTO; // (getAll,
>>>>> getById, save, etc...)
>>>>> return super.send(parameters);
>>>>> }
>>>>>
>>>>> public function getAll():AsyncToken{
>>>>> return this.send();
>>>>> }
>>>>>
>>>>> public function getById(id:):AsyncToken{
>>>>> var parameters:Object = new Object();
>>>>> parameters.id = id;
>>>>> return this.send(parameters);
>>>>> }
>>>>>
>>>>> public function save(object:*):AsyncToken{
>>>>> return this.send(object);
>>>>> }
>>>>> }
>>>>>
>>>>> Class UsuarioService extends ServiceBase
>>>>> {
>>>>> public function UsuarioService(){
>>>>> this.super( 'usuario' );
>>>>> }
>>>>> }
>>>>>
>>>>>
>>>>> --
>>>>> Wemerson Guimarães
>>>>> Rio Verde - Go - Brasil
>>>>>
>>>>> --
>>>>> --
>>>>> 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
>>>>> ---
>>>>> Você está recebendo esta mensagem porque se inscreveu no grupo
>>>>> "flexdev" dos Grupos do Google.
>>>>> Para cancelar a inscrição neste grupo e parar de receber seus e-mails,
>>>>> envie um e-mail para [email protected].
>>>>> Para obter mais opções, acesse
>>>>> https://groups.google.com/groups/opt_out.
>>>>>
>>>>>
>>>>>
>>>>
>>>> --
>>>> --
>>>> 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
>>>> ---
>>>> Você está recebendo esta mensagem porque se inscreveu no grupo
>>>> "flexdev" dos Grupos do Google.
>>>> Para cancelar a inscrição neste grupo e parar de receber seus e-mails,
>>>> envie um e-mail para [email protected].
>>>> Para obter mais opções, acesse https://groups.google.com/groups/opt_out
>>>> .
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>> --
>>> Wemerson Guimarães
>>> Rio Verde - Go - Brasil
>>>
>>> --
>>> --
>>> 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
>>> ---
>>> Você está recebendo esta mensagem porque se inscreveu no grupo "flexdev"
>>> dos Grupos do Google.
>>> Para cancelar a inscrição neste grupo e parar de receber seus e-mails,
>>> envie um e-mail para [email protected].
>>> Para obter mais opções, acesse https://groups.google.com/groups/opt_out.
>>>
>>>
>>>
>>
>> --
>> --
>> 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
>> ---
>> Você está recebendo esta mensagem porque se inscreveu no grupo "flexdev"
>> dos Grupos do Google.
>> Para cancelar a inscrição neste grupo e parar de receber seus e-mails,
>> envie um e-mail para [email protected].
>> Para obter mais opções, acesse https://groups.google.com/groups/opt_out.
>>
>>
>>
>
>
>
> --
> Wemerson Guimarães
> Rio Verde - Go - Brasil
>
> --
> --
> 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
> ---
> Você está recebendo esta mensagem porque se inscreveu no grupo "flexdev"
> dos Grupos do Google.
> Para cancelar a inscrição neste grupo e parar de receber seus e-mails,
> envie um e-mail para [email protected].
> Para obter mais opções, acesse https://groups.google.com/groups/opt_out.
>
>
>
--
--
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
---
Você está recebendo esta mensagem porque se inscreveu no grupo "flexdev" dos
Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um
e-mail para [email protected].
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.