edu.rice.cs.dynamicjava.symbol.type
Class TypeAbstractVisitor<RetType>

java.lang.Object
  extended by edu.rice.cs.dynamicjava.symbol.type.TypeVisitorLambda<RetType>
      extended by edu.rice.cs.dynamicjava.symbol.type.TypeAbstractVisitor<RetType>
All Implemented Interfaces:
TypeVisitor<RetType>, Lambda<Type,RetType>

public abstract class TypeAbstractVisitor<RetType>
extends TypeVisitorLambda<RetType>

A parametric abstract implementation of a visitor over Type that return a value. This visitor implements the visitor interface with methods that each delegate to a case representing their superclass. At the top of this delegation tree is the method defaultCase(), which (unless overridden) throws an exception.


Constructor Summary
TypeAbstractVisitor()
           
 
Method Summary
 RetType defaultCase(Type that)
          This method is run for all cases that are not handled elsewhere.
 RetType forArrayType(ArrayType that)
           
 RetType forBooleanType(BooleanType that)
          Process an instance of BooleanType.
 RetType forBottomType(BottomType that)
          Process an instance of BottomType.
 RetType forBoundType(BoundType that)
           
 RetType forByteType(ByteType that)
          Process an instance of ByteType.
 RetType forCharType(CharType that)
          Process an instance of CharType.
 RetType forClassType(ClassType that)
           
 RetType forDoubleType(DoubleType that)
          Process an instance of DoubleType.
 RetType forFloatingPointType(FloatingPointType that)
           
 RetType forFloatType(FloatType that)
          Process an instance of FloatType.
 RetType forIntegerType(IntegerType that)
           
 RetType forIntegralType(IntegralType that)
           
 RetType forIntersectionType(IntersectionType that)
          Process an instance of IntersectionType.
 RetType forIntType(IntType that)
          Process an instance of IntType.
 RetType forLongType(LongType that)
          Process an instance of LongType.
 RetType forNullType(NullType that)
          Process an instance of NullType.
 RetType forNumericType(NumericType that)
           
 RetType forParameterizedClassType(ParameterizedClassType that)
          Process an instance of ParameterizedClassType.
 RetType forPrimitiveType(PrimitiveType that)
           
 RetType forRawClassType(RawClassType that)
          Process an instance of RawClassType.
 RetType forReferenceType(ReferenceType that)
           
 RetType forShortType(ShortType that)
          Process an instance of ShortType.
 RetType forSimpleArrayType(SimpleArrayType that)
          Process an instance of SimpleArrayType.
 RetType forSimpleClassType(SimpleClassType that)
          Process an instance of SimpleClassType.
 RetType forTopType(TopType that)
          Process an instance of TopType.
 RetType forType(Type that)
           
 RetType forUnionType(UnionType that)
          Process an instance of UnionType.
 RetType forValidType(ValidType that)
           
 RetType forVarargArrayType(VarargArrayType that)
          Process an instance of VarargArrayType.
 RetType forVariableType(VariableType that)
          Process an instance of VariableType.
 RetType forVoidType(VoidType that)
          Process an instance of VoidType.
 RetType forWildcard(Wildcard that)
          Process an instance of Wildcard.
 
Methods inherited from class edu.rice.cs.dynamicjava.symbol.type.TypeVisitorLambda
value
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

TypeAbstractVisitor

public TypeAbstractVisitor()
Method Detail

defaultCase

public RetType defaultCase(Type that)
This method is run for all cases that are not handled elsewhere. By default, an exception is thrown; subclasses may override this behavior.

Throws:
IllegalArgumentException

forType

public RetType forType(Type that)

forValidType

public RetType forValidType(ValidType that)

forPrimitiveType

public RetType forPrimitiveType(PrimitiveType that)

forBooleanType

public RetType forBooleanType(BooleanType that)
Description copied from class: TypeVisitorLambda
Process an instance of BooleanType.

Specified by:
forBooleanType in interface TypeVisitor<RetType>
Specified by:
forBooleanType in class TypeVisitorLambda<RetType>

forNumericType

public RetType forNumericType(NumericType that)

forIntegralType

public RetType forIntegralType(IntegralType that)

forCharType

public RetType forCharType(CharType that)
Description copied from class: TypeVisitorLambda
Process an instance of CharType.

Specified by:
forCharType in interface TypeVisitor<RetType>
Specified by:
forCharType in class TypeVisitorLambda<RetType>

forIntegerType

public RetType forIntegerType(IntegerType that)

forByteType

public RetType forByteType(ByteType that)
Description copied from class: TypeVisitorLambda
Process an instance of ByteType.

Specified by:
forByteType in interface TypeVisitor<RetType>
Specified by:
forByteType in class TypeVisitorLambda<RetType>

forShortType

public RetType forShortType(ShortType that)
Description copied from class: TypeVisitorLambda
Process an instance of ShortType.

Specified by:
forShortType in interface TypeVisitor<RetType>
Specified by:
forShortType in class TypeVisitorLambda<RetType>

forIntType

public RetType forIntType(IntType that)
Description copied from class: TypeVisitorLambda
Process an instance of IntType.

Specified by:
forIntType in interface TypeVisitor<RetType>
Specified by:
forIntType in class TypeVisitorLambda<RetType>

forLongType

public RetType forLongType(LongType that)
Description copied from class: TypeVisitorLambda
Process an instance of LongType.

Specified by:
forLongType in interface TypeVisitor<RetType>
Specified by:
forLongType in class TypeVisitorLambda<RetType>

forFloatingPointType

public RetType forFloatingPointType(FloatingPointType that)

forFloatType

public RetType forFloatType(FloatType that)
Description copied from class: TypeVisitorLambda
Process an instance of FloatType.

Specified by:
forFloatType in interface TypeVisitor<RetType>
Specified by:
forFloatType in class TypeVisitorLambda<RetType>

forDoubleType

public RetType forDoubleType(DoubleType that)
Description copied from class: TypeVisitorLambda
Process an instance of DoubleType.

Specified by:
forDoubleType in interface TypeVisitor<RetType>
Specified by:
forDoubleType in class TypeVisitorLambda<RetType>

forReferenceType

public RetType forReferenceType(ReferenceType that)

forNullType

public RetType forNullType(NullType that)
Description copied from class: TypeVisitorLambda
Process an instance of NullType.

Specified by:
forNullType in interface TypeVisitor<RetType>
Specified by:
forNullType in class TypeVisitorLambda<RetType>

forArrayType

public RetType forArrayType(ArrayType that)

forSimpleArrayType

public RetType forSimpleArrayType(SimpleArrayType that)
Description copied from class: TypeVisitorLambda
Process an instance of SimpleArrayType.

Specified by:
forSimpleArrayType in interface TypeVisitor<RetType>
Specified by:
forSimpleArrayType in class TypeVisitorLambda<RetType>

forVarargArrayType

public RetType forVarargArrayType(VarargArrayType that)
Description copied from class: TypeVisitorLambda
Process an instance of VarargArrayType.

Specified by:
forVarargArrayType in interface TypeVisitor<RetType>
Specified by:
forVarargArrayType in class TypeVisitorLambda<RetType>

forClassType

public RetType forClassType(ClassType that)

forSimpleClassType

public RetType forSimpleClassType(SimpleClassType that)
Description copied from class: TypeVisitorLambda
Process an instance of SimpleClassType.

Specified by:
forSimpleClassType in interface TypeVisitor<RetType>
Specified by:
forSimpleClassType in class TypeVisitorLambda<RetType>

forRawClassType

public RetType forRawClassType(RawClassType that)
Description copied from class: TypeVisitorLambda
Process an instance of RawClassType.

Specified by:
forRawClassType in interface TypeVisitor<RetType>
Specified by:
forRawClassType in class TypeVisitorLambda<RetType>

forParameterizedClassType

public RetType forParameterizedClassType(ParameterizedClassType that)
Description copied from class: TypeVisitorLambda
Process an instance of ParameterizedClassType.

Specified by:
forParameterizedClassType in interface TypeVisitor<RetType>
Specified by:
forParameterizedClassType in class TypeVisitorLambda<RetType>

forBoundType

public RetType forBoundType(BoundType that)

forIntersectionType

public RetType forIntersectionType(IntersectionType that)
Description copied from class: TypeVisitorLambda
Process an instance of IntersectionType.

Specified by:
forIntersectionType in interface TypeVisitor<RetType>
Specified by:
forIntersectionType in class TypeVisitorLambda<RetType>

forUnionType

public RetType forUnionType(UnionType that)
Description copied from class: TypeVisitorLambda
Process an instance of UnionType.

Specified by:
forUnionType in interface TypeVisitor<RetType>
Specified by:
forUnionType in class TypeVisitorLambda<RetType>

forVariableType

public RetType forVariableType(VariableType that)
Description copied from class: TypeVisitorLambda
Process an instance of VariableType.

Specified by:
forVariableType in interface TypeVisitor<RetType>
Specified by:
forVariableType in class TypeVisitorLambda<RetType>

forTopType

public RetType forTopType(TopType that)
Description copied from class: TypeVisitorLambda
Process an instance of TopType.

Specified by:
forTopType in interface TypeVisitor<RetType>
Specified by:
forTopType in class TypeVisitorLambda<RetType>

forBottomType

public RetType forBottomType(BottomType that)
Description copied from class: TypeVisitorLambda
Process an instance of BottomType.

Specified by:
forBottomType in interface TypeVisitor<RetType>
Specified by:
forBottomType in class TypeVisitorLambda<RetType>

forVoidType

public RetType forVoidType(VoidType that)
Description copied from class: TypeVisitorLambda
Process an instance of VoidType.

Specified by:
forVoidType in interface TypeVisitor<RetType>
Specified by:
forVoidType in class TypeVisitorLambda<RetType>

forWildcard

public RetType forWildcard(Wildcard that)
Description copied from class: TypeVisitorLambda
Process an instance of Wildcard.

Specified by:
forWildcard in interface TypeVisitor<RetType>
Specified by:
forWildcard in class TypeVisitorLambda<RetType>