Hi I-Chen: I am glad you have chosen the adapter bean project. Below is an abstract description of your project. -- Karl Adapter Beans: Abstract problem: Input: Class graph G with strategies S1 and S2 where S2 is a refinement of S1. Input object O for class graph G. Output: Traversal of O according to both S1 and S2. (According to S2 would be enough because S2 is a refinement of S1). (See paper with Boaz Patt-Shamir on strategies for description of algorithms, including an intersection algorithm that might help) Intuition: G is the concrete class graph used to instantiate a group of APPCs. S1 is one of the strategies in the APPCs that defines traversals of G-objects. S2 is a refinement of S1 (defining a more restrictive traversal). You can think of S2 being the result of combining S1 with additional constraints of mapping an interface class graph into a class graph. The example below shows what your program should accomplish. It acts like an informed filter that listens to certain events and then sends out new events. Example: Class graph: A = B C. B = D. C = E F. D = G. G = Z. E = Z. F = Z. Object traversed: A-object (there is only one) Strategy: S1: A -> * S2: A -> D D -> Z S1 S2 before A before A before ->A,B before ->A,D before B before ->B,D before D before D before ->D,G before ->D,Z before G before ->G,Z before Z before Z after Z after Z after ->G,Z after G after ->D,G after ->D,Z after D after D after B before C ... ... after ->A,B after ->A,D after A after A The adapter bean does not have to listen to all events sent by the traversal bean. This speads up the event handling. Implement first for embedded strategies and add later a name map. Plan for project: 1. Do basic event adaptation. 2. Add name map. 3. Implement algorithm for checking refinement of strategies. http://www.ccs.neu.edu/home/lorenz/Meetings/draft 4. Integrate with Bill's traversal bean (Bill does the S1 traversal) -- Karl