com.veromodo.tempo.sem.type
Class TypeFunction

java.lang.Object
  extended by com.veromodo.tempo.sem.type.Type
      extended by com.veromodo.tempo.sem.type.TypeFunctional
          extended by com.veromodo.tempo.sem.type.TypeFunction
All Implemented Interfaces:
java.lang.Comparable<Type>

public class TypeFunction
extends TypeFunctional

Represents a type transformation from [T1] -> T2 where T1 is the domain and T2 is the co-domain. A funtion with no arguments is represented by T1 being an empty TypeTuple.


Nested Class Summary
 
Nested classes/interfaces inherited from class com.veromodo.tempo.sem.type.Type
Type.Order, Type.TypeKind
 
Field Summary
 
Fields inherited from class com.veromodo.tempo.sem.type.Type
_name, DEFAULT_NAME
 
Constructor Summary
TypeFunction(TypeTuple dom, Type cdom)
           
 
Method Summary
 Type.Order compare(Type t)
          Determines how Type t is realted to this.
 TypeFunction downCastFunction()
           
 Type getCoDom()
           
 TypeTuple getDom()
           
 int hashCode()
           
 boolean is(Type.TypeKind kind)
          Determines if the currently instance is of given TypeKind.
 Type resolve()
          Replaces any bound type parameters with thier bound types.
 java.lang.String toString()
           
 void visit(TypeVisitor v)
           
 
Methods inherited from class com.veromodo.tempo.sem.type.TypeFunctional
downCastFunctional
 
Methods inherited from class com.veromodo.tempo.sem.type.Type
accept, acceptable, compareTo, constructedWith, downCastArray, downCastAugmentedReal, downCastAutomaton, downCastBasicAutomaton, downCastBool, downCastChar, downCastCompositeAutomaton, downCastConstructor, downCastDiscreteReal, downCastEnum, downCastEnumValue, downCastFloat, downCastFunctionalGeneric, downCastGeneric, downCastInstance, downCastInt, downCastInt32, downCastList, downCastMap, downCastMeta, downCastNat, downCastNumeric, downCastParameter, downCastReal, downCastSum, downCastTuple, downCastVoid, equals, equals, getName, isArray, isAugmentedReal, isAutomaton, isBasicAutomaton, isBool, isChar, isCompositeAutomaton, isConstructor, isDiscreteReal, isEnum, isEnumValue, isEqualTo, isError, isFloat, isFun, isFunctional, isFunctionalGeneric, isGeneric, isId, isIndexed, isInstance, isInt, isInt32, isList, isMap, isMeta, isNat, isNumeric, isParameter, isReal, isSum, isTuple, isVariable, isVoid, lub, select
 
Methods inherited from class java.lang.Object
getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

TypeFunction

public TypeFunction(TypeTuple dom,
                    Type cdom)
Method Detail

is

public boolean is(Type.TypeKind kind)
Description copied from class: Type
Determines if the currently instance is of given TypeKind.

Overrides:
is in class TypeFunctional
Parameters:
kind - the type of class to compare to
Returns:
true if this is of given TypeKind

getDom

public TypeTuple getDom()
Specified by:
getDom in class TypeFunctional

getCoDom

public Type getCoDom()
Specified by:
getCoDom in class TypeFunctional

downCastFunction

public TypeFunction downCastFunction()
Overrides:
downCastFunction in class Type

toString

public java.lang.String toString()
Overrides:
toString in class Type

resolve

public Type resolve()
Description copied from class: Type
Replaces any bound type parameters with thier bound types. If all parameters are bound, the resulting type is not generic. If no parameters are bounf, the resulting type is this.

Overrides:
resolve in class Type
Returns:
a resolved type

compare

public Type.Order compare(Type t)
Description copied from class: Type
Determines how Type t is realted to this.

Specified by:
compare in class TypeFunctional
Parameters:
t - to compare to this
Returns:

visit

public void visit(TypeVisitor v)
Overrides:
visit in class TypeFunctional

hashCode

public int hashCode()
Overrides:
hashCode in class java.lang.Object