org.codehaus.aspectwerkz.cflow
Class CflowBinding

java.lang.Object
  extended by org.codehaus.aspectwerkz.cflow.CflowBinding

public class CflowBinding
extends Object

A Cflow binding represents an extracted cflow or cflowbelow subexpression

For a given pointcut "pcA and cflowA or cflowbelowB", we will extract two bindings. The m_cflowID must be unique on a per cflow sub expresion basis ie JVM wide.

Note: CflowBinding hashcode depends on Cflow_ID (sub expr) + isCflowBelow only.

Author:
Alexandre Vasseur

Constructor Summary
CflowBinding(int cflowID, ExpressionInfo cflowSubExpression, ExpressionInfo outerExpression, boolean isCflowBelow)
          Cosntructs a new cflow binding
 
Method Summary
 boolean equals(Object o)
           
 AspectDefinition getAspectDefinition(SystemDefinition systemDefinition, ClassLoader loader)
          Create an aspect definition for this cflow binding in the given system.
static List getCflowBindingsForCflowOf(ExpressionInfo expressionInfo)
          Extract the cflow bindings from any pointcut This includes both cflow and cflowbelow
 int getCflowID()
           
 ExpressionInfo getExpression()
           
 int hashCode()
           
 boolean isCflowBelow()
           
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CflowBinding

public CflowBinding(int cflowID,
                    ExpressionInfo cflowSubExpression,
                    ExpressionInfo outerExpression,
                    boolean isCflowBelow)
Cosntructs a new cflow binding

Parameters:
cflowID -
cflowSubExpression -
isCflowBelow -
Method Detail

getExpression

public ExpressionInfo getExpression()
Returns:
the sub expression

getCflowBindingsForCflowOf

public static List getCflowBindingsForCflowOf(ExpressionInfo expressionInfo)
Extract the cflow bindings from any pointcut This includes both cflow and cflowbelow

Parameters:
expressionInfo - the pointcut expression frow where to extract the cflow bindings
Returns:
a list of CflowBinding, can be empty

getAspectDefinition

public AspectDefinition getAspectDefinition(SystemDefinition systemDefinition,
                                            ClassLoader loader)
Create an aspect definition for this cflow binding in the given system. The cflow jit aspects will gets compiled and loaded

Parameters:
systemDefinition -
loader -
Returns:
the cflow aspect definition

isCflowBelow

public boolean isCflowBelow()

getCflowID

public int getCflowID()

equals

public boolean equals(Object o)
Overrides:
equals in class Object

hashCode

public int hashCode()
Overrides:
hashCode in class Object


Copyright © 2002-2005 Jonas Bonér, Alexandre Vasseur. All Rights Reserved.