001package serp.bytecode;
002
003import serp.bytecode.lowlevel.*;
004
005/**
006 * Interface implemented by all bytecode entities. Entities must be able
007 * to access the project, constant pool, and class loader of the current class.
008 *
009 * @author Abe White
010 */
011public interface BCEntity {
012    /**
013     * Return the project of the current class.
014     */
015    public Project getProject();
016
017    /**
018     * Return the constant pool of the current class.
019     */
020    public ConstantPool getPool();
021
022    /**
023     * Return the class loader to use when loading related classes.
024     */
025    public ClassLoader getClassLoader();
026
027    /**
028     * Return false if this entity has been removed from its parent; in this
029     * case the results of any operations on the entity are undefined.
030     */
031    public boolean isValid();
032}