Re: [Prevayler-discussion] Prevayler Facade
Brought to you by:
jsampson,
klauswuestefeld
From: Klaus W. <kla...@gm...> - 2009-07-22 16:17:21
|
Interesting. Void methods without the annotation can default to Transaction. Methods with a return value and without an annotation can default to TransactionWithQuery. So I think you might only need the @Query annotation. It that right? See you, Klaus. On Wed, Jul 22, 2009 at 12:03 PM, Diego Miranda<die...@gm...> wrote: > Hi all! > > For a project i'm developing i wrote a simple proxy that implements the > transactions using annotations. > Rigth now, this proxy needs that you implement an interface with the > annotations. But the idea is that you > define your prevalent object (without any interface) with those annotations. > These annotations are the prevayler > transactions: > > @Query > @Transaction > @TransactionWithQuery > > An example, following the prevayler demo examples: > > public interface IBank implements Serializable { > > @TransactionWithQuery public Account createAccount (String holder) > throws Account.InvalidHolder; > @Transaction public void deleteAccount(long number) throws > AccountNotFound; > > } > > The implementation of IBank: > > public class Bank implements IBank { > > ... > public Account createAccount(String holder) throws Account.InvalidHolder > { > Account account = new Account(nextAccountNumber, holder); > accountsByNumber.put(new Long(nextAccountNumber++), account); > > if (bankListener != null) bankListener.accountCreated(account); > return account; > } > > public void deleteAccount(long number) throws AccountNotFound { > Account account = findAccount(number); > accountsByNumber.remove(new Long(number)); > if (bankListener != null) bankListener.accountDeleted(account); > } > ... > > The code remains the same. > > Generating the proxy is straighforward: > > Bank bank = PrevaylerProxy.createInstance ( IBank.class, new Bank(), "Bank" > ); > > If you found this is useful (and if possible, of course) i would be glad to > contrib with the code. :) > > Regards > > Diego > > > > > -- > Ley de Hofstadter: Siempre toma más tiempo del que se preveía, aun cuando se > tenga en cuenta la Ley de Hofstadter. > > ------------------------------------------------------------------------------ > > _______________________________________________ > To unsubscribe go to the end of this page: > http://lists.sourceforge.net/lists/listinfo/prevayler-discussion > _______________________________________________ > "Databases in Memoriam" -- http://www.prevayler.org > > |