Class FunctionType
- All Implemented Interfaces:
Type
Type information for a first-class function being stored in a tuple (as an UntypedFunction
)
Does not support any type io or coercion operations
-
Field Summary
Modifier and TypeFieldDescriptionstatic final Object
static final FunctionType
Wildcard style function type object, typically used withRealizableFunction
s to say that some kind ofFunctionType
will be accepted, or in type problems to report a broad mismatch, e.g. -
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionasStruct()
Attempt to convert the given value in to one represented by this type.int
estimateSize
(Object entry) Estimate the number of bytes used to serialize the given value to an output stream.static FunctionType
fromFunction
(RiskscapeFunction function) Class<?>
The underlying java class used to represent this type.void
toBytes
(DataOutputStream os, Object toWrite) toString()
<T,
U> U visit
(TypeVisitor<T, U> tv, T data) Type specific visiting logic.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface nz.org.riskscape.engine.types.Type
checkForNull, find, findAllowNull, getUnwrappedType, isA, isNullable, isNumeric, isWrapped, toString, unwrap
-
Field Details
-
WILD
Wildcard style function type object, typically used with
RealizableFunction
s to say that some kind ofFunctionType
will be accepted, or in type problems to report a broad mismatch, e.g. we wanted a function type, but you gave us a list -
VISITOR_META_RETURNS
-
-
Constructor Details
-
FunctionType
Construct a
FunctionType
with the given function signature ofargumentTypes
andreturnType
. This should mean that any covariant arguments can be safely applied to a function that has this type, and that returned values will be covariant to the return type.
-
-
Method Details
-
fromFunction
-
coerce
Description copied from interface:Type
Attempt to convert the given value in to one represented by this type.
- Specified by:
coerce
in interfaceType
- Parameters:
value
- The value to coerce- Returns:
- A value that conforms to this type
- Throws:
CoercionException
- if the given object can not be converted to something represented by this type
-
internalType
Description copied from interface:Type
The underlying java class used to represent this type.
- Specified by:
internalType
in interfaceType
-
asStruct
-
toString
-
estimateSize
Description copied from interface:Type
Estimate the number of bytes used to serialize the given value to an output stream.
- Specified by:
estimateSize
in interfaceType
- Parameters:
entry
- the value of this type to measure. Must be ofType.internalType()
or aClassCastException
is going to happen- Returns:
- the estimated number of bytes, or zero if no estimation was possible.
-
toBytes
- Specified by:
toBytes
in interfaceType
- Throws:
IOException
-
fromBytes
- Specified by:
fromBytes
in interfaceType
- Throws:
IOException
-
visit
Description copied from interface:Type
Type specific visiting logic. Types must decide whether they are atomic or compound and call the relevant method on
TypeVisitor
. It's up to each compound type to decide how they want to structure their children, e.g. order, metadata, and what's considered a child or not. -
getArgumentTypes
-
getReturnType
-