package accrue.analysis.ext;

import accrue.analysis.pointer.ConstructorContext;
import accrue.analysis.pointer.ReferenceVariable;

public interface ExtInitializerOrFieldDecl {

    /**
     * Set the appropriate ReferenceVariable that represents the
     * current object (i.e., the reference variable 
     *  used in the pointer analysis to refer to "this")
     * for the given constructor context. 
     * @param constructorContext
     * @param thisNode
     */
    void setThisNode(ConstructorContext constructorContext,
            ReferenceVariable thisNode);

    /**
     * Get the appropriate reference variable for "this" (i.e., the reference 
     * variable used in the pointer analysis to refer to "this")
     * for the given constructor context. 
     * 
     * @param constructorContext
     * @return
     */
    ReferenceVariable getThisNode(ConstructorContext constructorContext);

}
