package polyglot.ast; import java.util.List; import polyglot.types.Flags; import polyglot.types.ParsedClassType; /** * A <code>ClassDecl</code> represents a top-level, member, or local class * declaration. */ public interface ClassDecl extends Term, TopLevelDecl, ClassMember { /** * The type of the class declaration. */ ParsedClassType type(); /** * Set the type of the class declaration. */ ClassDecl type(ParsedClassType type); /** * The class declaration's flags. */ Flags flags(); /** * Set the class declaration's flags. */ ClassDecl flags(Flags flags); /** * The class declaration's name. */ String name(); /** * Set the class declaration's name. */ ClassDecl name(String name); /** * The class's super class. */ TypeNode superClass(); /** * Set the class's super class. */ ClassDecl superClass(TypeNode superClass); /** * The class's interface list. * @return A list of {@link polyglot.ast.TypeNode TypeNode}. */ List interfaces(); /** * Set the class's interface list. * @param interfaces A list of {@link polyglot.ast.TypeNode TypeNode}. */ ClassDecl interfaces(List interfaces); /** * The class's body. */ ClassBody body(); /** * Set the class's body. */ ClassDecl body(ClassBody body); }