You should be able to do this fine using the existing annotation page logic.


In your annotation stuff for handling your specific type "claim" the
property specified using EnhancementOperation and then define a method body
that does the caching logic you describe and you'll be all set. (there are
other annotations in there that provide method body stuff to javassist for
you to reference)

On 5/25/06, Dan Adams <[EMAIL PROTECTED]> wrote:

Thank you for the time you guys have already spent on this, but if you
have any other comments I would really appreciate them. Is there just no
way to do this given the current tapestry annotation class structure?

On Thu, 2006-05-25 at 10:51 -0400, Dan Adams wrote:
> Well, I've been digging around in all the annotation source for 4.0.1
> and I seem to be stuck. It seems like there isn't any way to get to the
> javassist methods or to do what I'm trying to do. I've looked at the
> hivemind config and how to add the annotation. My only problem is how to
> actually get the annotation to do what it needs to do. Any suggestions
> on how to approach the problems I mentioned earlier? I also attached the
> source which is pretty short.
>
> On Thu, 2006-05-25 at 10:42 -0400, Jesse Kuhnert wrote:
> > Ah well...The annotations stuff in tapestry is pretty easy to follow
(just
> > added a lot of logic in this area myself). It would be best for you to
refer
> > to the tapestry annotations source, but the biggest thing is to also
> > remember that annotations are done almost the same way that the
> > "enhancement" stuff is done - with a hivemind chained pipeline
> > configuration. There is an annotations hivemind configuration section
that
> > configures and sets up all of them as well.
> >
> > On 5/25/06, Dan Adams <[EMAIL PROTECTED]> wrote:
> > >
> > > You are right about this. I hadn't realized you could do that with
> > > parameters. But that doesn't really apply to my problem since @Once
> > > won't normally be used on parameters. It came up because in some
> > > situations you have a method that does a hibernate query and returns
a
> > > list of objects and you'd like to be able to easily refer to that
> > > property more than once in the template. A common situation is
checking
> > > the list size in an @If before doing something with it.
> > >
> > > On Thu, 2006-05-25 at 10:28 -0400, Jesse Kuhnert wrote:
> > > > Doesn't tapestry support marking a parameter as cache-able
already?
> > > >
> > > > On 5/25/06, James Carman <[EMAIL PROTECTED]> wrote:
> > > > >
> > > > > Have you looked into AspectJ?
> > > > >
> > > > > -----Original Message-----
> > > > > From: Dan Adams [mailto:[EMAIL PROTECTED]
> > > > > Sent: Thursday, May 25, 2006 10:00 AM
> > > > > To: Tapestry users
> > > > > Subject: RE: Help in writing a custom annotation
> > > > >
> > > > > Okay, my annotation is called @Once and if put on accessor will
make
> > > > > sure that the method is only executed once and then the return
value
> > > is
> > > > > cached. Any further calls to the method will just return the
saved
> > > > > value. I've got pretty far but I think I'm stuck as I want to do
> > > > > something that I could do with javassist but I'm not sure how to
do
> > > > > within the tapestry enhancement classes. I've attached what I
have so
> > > > > far and I would greatly appreciated it if someone could give me
some
> > > > > suggestions on what to do. My big problem is:
> > > > >
> > > > > - I could add code at the beginning and end of the method with
> > > javassit
> > > > > but can't see a way to do that
> > > > > - Perhaps I could somehow rename the old method to something
else and
> > > > > put in a new method that calls it?
> > > > >
> > > > > Thanks a lot.
> > > > >
> > > > > On Thu, 2006-05-25 at 07:11 -0400, James Carman wrote:
> > > > > > I'd look at the one that injects messages, or beans, or even
the one
> > > > > that
> > > > > I
> > > > > > wrote for "autowiring" (available in SVN on the 4.1 branch).
> > > > > >
> > > > > > -----Original Message-----
> > > > > > From: Dan Adams [mailto:[EMAIL PROTECTED]
> > > > > > Sent: Wednesday, May 24, 2006 10:44 PM
> > > > > > To: Tapestry users
> > > > > > Subject: Help in writing a custom annotation
> > > > > >
> > > > > > I want to write an annotation that will intercept a method and
add a
> > > > > > property to the class. I've started digging around in some of
the
> > > > > > annotation sources but it's going pretty slow. Can someone
point me
> > > at
> > > > > > the right place to look for where to start?
> > > > > >
> > > > > --
> > > > > Dan Adams
> > > > > Software Engineer
> > > > > Interactive Factory
> > > > > 617.235.5857
> > > > >
> > > > >
> > > > >
> > > > >
---------------------------------------------------------------------
> > > > > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > > > > For additional commands, e-mail: [EMAIL PROTECTED]
> > > > >
> > > > >
> > > >
> > > >
> > > --
> > > Dan Adams
> > > Software Engineer
> > > Interactive Factory
> > > 617.235.5857
> > >
> > >
> > >
---------------------------------------------------------------------
> > > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > > For additional commands, e-mail: [EMAIL PROTECTED]
> > >
> > >
> >
> >
--
Dan Adams
Software Engineer
Interactive Factory
617.235.5857


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




--
Jesse Kuhnert
Tacos/Tapestry, team member/developer

Open source based consulting work centered around
dojo/tapestry/tacos/hivemind.

Reply via email to