serp.bytecode
Class InnerClasses

java.lang.Object
  extended by serp.bytecode.Attributes
      extended by serp.bytecode.Attribute
          extended by serp.bytecode.InnerClasses
All Implemented Interfaces:
BCEntity, VisitAcceptor

public class InnerClasses
extends Attribute

Attribute describing all referenced classes that are not package members. This includes all member interfaces and classes.

Author:
Abe White

Method Summary
 void acceptVisit(BCVisitor visit)
          Accept a visit from a BCVisitor, calling the appropriate methods to notify the visitor that it has entered this entity, and to provide it with the proper callbacks for each sub-entity owned by this one.
 InnerClass addInnerClass()
          Add an inner class.
 InnerClass addInnerClass(InnerClass inner)
          Import an inner class from another entity, or make a copy of one on this entity.
 InnerClass addInnerClass(String name, BCClass type, BCClass owner)
          Add an inner class.
 InnerClass addInnerClass(String name, Class type, Class owner)
          Add an inner class.
 InnerClass addInnerClass(String name, String type, String owner)
          Add an inner class.
 void clear()
          Clear all inner classes from this entity.
 InnerClass getInnerClass(String name)
          Return the inner class with the given name.
 InnerClass[] getInnerClasses()
          Return all referenced inner classes, or empty array if none.
 InnerClass[] getInnerClasses(String name)
          Return all inner classes with the given name, or empty array if none.
 boolean removeInnerClass(InnerClass innerClass)
          Remove the given inner class.
 boolean removeInnerClass(String name)
          Remove the inner class with the given name.
 void setInnerClasses(InnerClass[] inners)
          Set the inner class references for this class.
 
Methods inherited from class serp.bytecode.Attribute
getClassLoader, getName, getNameIndex, getOwner, getPool, getProject, isValid
 
Methods inherited from class serp.bytecode.Attributes
addAttribute, addAttribute, clearAttributes, getAttribute, getAttributes, getAttributes, removeAttribute, removeAttribute, setAttributes
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

getInnerClasses

public InnerClass[] getInnerClasses()
Return all referenced inner classes, or empty array if none.


getInnerClass

public InnerClass getInnerClass(String name)
Return the inner class with the given name. If multiple inner classes share the name, which is returned is undefined. Use null to retrieve anonymous classes.


getInnerClasses

public InnerClass[] getInnerClasses(String name)
Return all inner classes with the given name, or empty array if none. Use null to retrieve anonymous classes.


setInnerClasses

public void setInnerClasses(InnerClass[] inners)
Set the inner class references for this class. This method is useful when importing inner class references from another class.


addInnerClass

public InnerClass addInnerClass(InnerClass inner)
Import an inner class from another entity, or make a copy of one on this entity.

Returns:
the newly added inner class

addInnerClass

public InnerClass addInnerClass()
Add an inner class.


addInnerClass

public InnerClass addInnerClass(String name,
                                String type,
                                String owner)
Add an inner class.

Parameters:
name - the simple name of the class, or null if anonymous
type - the full class name of the inner class
owner - the declaring class, or null if not a member class

addInnerClass

public InnerClass addInnerClass(String name,
                                Class type,
                                Class owner)
Add an inner class.

Parameters:
name - the simple name of the class, or null if anonymous
type - the class of the inner class
owner - the declaring class, or null if not a member class

addInnerClass

public InnerClass addInnerClass(String name,
                                BCClass type,
                                BCClass owner)
Add an inner class.

Parameters:
name - the simple name of the class, or null if anonymous
type - the class of the inner class
owner - the declaring class, or null if not a member class

clear

public void clear()
Clear all inner classes from this entity.


removeInnerClass

public boolean removeInnerClass(String name)
Remove the inner class with the given name. Use null for anonymous classes.

Returns:
true if an inner class was removed, false otherwise

removeInnerClass

public boolean removeInnerClass(InnerClass innerClass)
Remove the given inner class. After being removed, the given inner class is invalid, and the result of any operations on it are undefined.

Returns:
true if the inner class was removed, false otherwise

acceptVisit

public void acceptVisit(BCVisitor visit)
Description copied from interface: VisitAcceptor
Accept a visit from a BCVisitor, calling the appropriate methods to notify the visitor that it has entered this entity, and to provide it with the proper callbacks for each sub-entity owned by this one.



Copyright © 2002-2007. All Rights Reserved.