org.apache.bcel.verifier.structurals
Class LocalVariables

java.lang.Object
  extended by org.apache.bcel.verifier.structurals.LocalVariables

public class LocalVariables
extends java.lang.Object

This class implements an array of local variables used for symbolic JVM simulation.

Version:
$Id: LocalVariables.java 386056 2006-03-15 11:31:56Z tcurdt $
Author:
Enver Haase

Field Summary
private  Type[] locals
          The Type[] containing the local variable slots.
 
Constructor Summary
LocalVariables(int maxLocals)
          Creates a new LocalVariables object.
 
Method Summary
protected  java.lang.Object clone()
          Returns a deep copy of this object; i.e.
 boolean equals(java.lang.Object o)
           
 Type get(int i)
          Returns the type of the local variable slot i.
 LocalVariables getClone()
          Returns a (correctly typed) clone of this object.
 int hashCode()
           
 void initializeObject(UninitializedObjectType u)
          Replaces all occurences of u in this local variables set with an "initialized" ObjectType.
 int maxLocals()
          Returns the number of local variable slots this LocalVariables instance has.
 void merge(LocalVariables lv)
          Merges two local variables sets as described in the Java Virtual Machine Specification, Second Edition, section 4.9.2, page 146.
private  void merge(LocalVariables lv, int i)
          Merges a single local variable.
 void set(int i, Type type)
          Sets a new Type for the given local variable slot.
 java.lang.String toString()
          Returns a String representation of this object.
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

locals

private Type[] locals
The Type[] containing the local variable slots.

Constructor Detail

LocalVariables

public LocalVariables(int maxLocals)
Creates a new LocalVariables object.

Method Detail

clone

protected java.lang.Object clone()
Returns a deep copy of this object; i.e. the clone operates on a new local variable array. However, the Type objects in the array are shared.

Overrides:
clone in class java.lang.Object

get

public Type get(int i)
Returns the type of the local variable slot i.


getClone

public LocalVariables getClone()
Returns a (correctly typed) clone of this object. This is equivalent to ((LocalVariables) this.clone()).


maxLocals

public int maxLocals()
Returns the number of local variable slots this LocalVariables instance has.


set

public void set(int i,
                Type type)
Sets a new Type for the given local variable slot.


hashCode

public int hashCode()
Overrides:
hashCode in class java.lang.Object
Returns:
a hash code value for the object.

equals

public boolean equals(java.lang.Object o)
Overrides:
equals in class java.lang.Object

merge

public void merge(LocalVariables lv)
Merges two local variables sets as described in the Java Virtual Machine Specification, Second Edition, section 4.9.2, page 146.


merge

private void merge(LocalVariables lv,
                   int i)
Merges a single local variable.

See Also:
merge(LocalVariables)

toString

public java.lang.String toString()
Returns a String representation of this object.

Overrides:
toString in class java.lang.Object

initializeObject

public void initializeObject(UninitializedObjectType u)
Replaces all occurences of u in this local variables set with an "initialized" ObjectType.