org.objectweb.asm.tree.analysis

Class SimpleVerifier

public class SimpleVerifier extends BasicVerifier

An extended {@link BasicVerifier} that performs more precise verifications. This verifier computes exact class types, instead of using a single "object reference" type (as done in the {@link BasicVerifier}).

Author: Eric Bruneton Bing Ran

Constructor Summary
SimpleVerifier()
Constructs a new {@link SimpleVerifier}.
SimpleVerifier(Type currentClass, Type currentSuperClass, boolean isInterface)
Constructs a new {@link SimpleVerifier} to verify a specific class.
SimpleVerifier(Type currentClass, Type currentSuperClass, List currentClassInterfaces, boolean isInterface)
Constructs a new {@link SimpleVerifier} to verify a specific class.
Method Summary
protected ClassgetClass(Type t)
protected ValuegetElementValue(Value objectArrayValue)
protected booleanisArrayValue(Value value)
protected booleanisSubTypeOf(Value value, Value expected)
Valuemerge(Value v, Value w)
ValuenewValue(Type type)

Constructor Detail

SimpleVerifier

public SimpleVerifier()
Constructs a new {@link SimpleVerifier}.

SimpleVerifier

public SimpleVerifier(Type currentClass, Type currentSuperClass, boolean isInterface)
Constructs a new {@link SimpleVerifier} to verify a specific class. This class will not be loaded into the JVM since it may be incorrect.

Parameters: currentClass the class that is verified. currentSuperClass the super class of the class that is verified. isInterface if the class that is verified is an interface.

SimpleVerifier

public SimpleVerifier(Type currentClass, Type currentSuperClass, List currentClassInterfaces, boolean isInterface)
Constructs a new {@link SimpleVerifier} to verify a specific class. This class will not be loaded into the JVM since it may be incorrect.

Parameters: currentClass the class that is verified. currentSuperClass the super class of the class that is verified. currentClassInterfaces the interfaces implemented by the class that is verified. isInterface if the class that is verified is an interface.

Method Detail

getClass

protected Class getClass(Type t)

getElementValue

protected Value getElementValue(Value objectArrayValue)

isArrayValue

protected boolean isArrayValue(Value value)

isSubTypeOf

protected boolean isSubTypeOf(Value value, Value expected)

merge

public Value merge(Value v, Value w)

newValue

public Value newValue(Type type)