cocoon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Stefano Mazzocchi <stef...@apache.org>
Subject Re: [RT] Improving Sitemap and Flowscript
Date Fri, 22 Aug 2003 18:47:02 GMT

On Tuesday, Aug 19, 2003, at 22:35 Europe/Rome, Miles Elam wrote:

> Is only one interception possible?

No, of course not. You could have multiple interceptions, for example

main.js

  function getBlah() {
    return createBlah();
  }

interceptor1.js

  function get*() {
    before();
    continueExecution(arguments);
    after();
  }

interceptor2.js

  function get*() {
    before();
    continueExecution(arguments);
    after();
  }

then, somewhere, it is defined that

  [main.js -(wrapped by)-> interceptor1.js] -(wrapped by) -> 
interceptor2.js

so, by calling getBlah() the resulting virtual function will be

  function getBlah() {
    before() // from interceptor2
    before() // from interceptor1
    _blah = createBlah()
    after() // from interceptor1
    after() // from interceptor2
    return blah
  }

> Authentication is one use case for an interception.  Authorization 
> could be another.  I'm sure there are others.  Would multiple calls to 
> cocoon.apply(...) be possible?  Would they be order dependent?

Yes. Order of interception will need to be meaningful.

> Also, am I correct in the assumption that the wildcard is intended to 
> match target functions?

yes

> Doesn't that tie the two files too closely together?

it does create a contract on the function naming, yes. But I think this 
is a good thing.

> Or is this a change to the sitemap calling syntax.  Does the sitemap 
> call getwhatever(...), a get* function intercepter catches it and then 
> eventually passes the call down to whatever(...)?

nononon, that would be totally against the spirit of aspect 
orthogonality.

they key idea of transparent aspect layering is that you can remove the 
aspect without touching the rest of the code.

--
Stefano.


Mime
View raw message