public abstract class CompleteDataType extends Object implements Serializable
DataType
with ancillary information about the type (where
appropriate) that's needed to actually use the DataType. E.g., to be
"complete",
Schema
),andCompleteDataType
).Schema
)
and its return type (as a CompleteDataType
)
Note: Serializations of instances of this class that are created (e.g., by using
ObjectOutputStream
) in one version of StreamBase in general will not be
deserializable in any other version of StreamBase.
Modifier and Type | Class and Description |
---|---|
static class |
CompleteDataType.CaptureType |
static class |
CompleteDataType.FunctionType |
static class |
CompleteDataType.ListType |
static class |
CompleteDataType.TupleType |
Modifier and Type | Field and Description |
---|---|
static long |
NULL_TO_TYPE_SCORE |
static long |
SCORE_FAIL |
static long |
SCORE_PASS |
protected DataType |
type |
static long |
TYPE_TO_TYPE_SCORE |
static long |
WILDCARD_SCORE |
Modifier | Constructor and Description |
---|---|
protected |
CompleteDataType(DataType type) |
Modifier and Type | Method and Description |
---|---|
boolean |
canAssignFrom(CompleteDataType other)
Check if a value of this type can be assigned a value of the other type.
|
protected boolean |
canAssignFromImpl(CompleteDataType other)
Method for subclasses to override if they have a broader concept of type.
|
protected boolean |
equalBaseTypes(CompleteDataType other) |
static CompleteDataType |
findSuperType(CompleteDataType t1,
CompleteDataType t2)
Find a type that t1 and t2 can both promote to safely
|
static CompleteDataType |
forBlob()
Return the complete type for a blob.
|
static CompleteDataType |
forBlobList() |
static CompleteDataType |
forBool()
Deprecated.
|
static CompleteDataType |
forBoolean()
Return the complete type for a bool.
|
static CompleteDataType |
forBoolList() |
static CompleteDataType |
forCapture(String typeName)
Return a capture complete data type with the specified type parameter name.
|
static CompleteDataType |
forDouble()
Return the complete type for a double.
|
static CompleteDataType |
forDoubleList() |
static CompleteDataType.FunctionType |
forFunction(Schema argumentSchema,
CompleteDataType returnType)
Return a function's
CompleteDataType with the given argument schema and return type |
static CompleteDataType |
forInt()
Return the complete type for an int.
|
static CompleteDataType |
forIntList() |
static CompleteDataType |
forList(CompleteDataType elementType)
Return a list complete data type with the specified element type
|
static CompleteDataType |
forLong()
Return the complete type for a long.
|
static CompleteDataType |
forLongList() |
static CompleteDataType |
forString()
Return the complete type for a string.
|
static CompleteDataType |
forStringList() |
static CompleteDataType |
forTimestamp()
Return the complete type for a timestamp.
|
static CompleteDataType |
forTimestampList() |
static CompleteDataType |
forTuple(Schema schema)
Return a tuple complete data type with the specified schema.
|
Schema |
getArgumentSchema()
For function types, return the argument schema.
|
String |
getCaptureName()
For capture types, return the capture type name.
|
DataType |
getDataType()
Return the data type of the complete type
|
CompleteDataType |
getElementType()
For list collection types, return the complete type of the list's elements.
|
String |
getName()
Get the name of this complete type
|
CompleteDataType |
getReturnType()
For function types, return the return type of the function.
|
Schema |
getSchema()
For tuple types, return the tuple's schema.
|
long |
rateCoercion(CompleteDataType type)
calculate the coercion score to get coerce this → type
- by default returns SCORE_PASS or SCORE_FAIL based on equals
|
static long |
rateCoercion(CompleteDataType from,
CompleteDataType to) |
String |
toHumanString()
Return a String describing the type suitable for error messages.
|
abstract String |
toHumanString(SchemaUtil.SchemaProvider schemaProvider)
Return a String describing the type suitable for error messages.
|
String |
toString() |
protected final DataType type
public static final long SCORE_FAIL
public static final long SCORE_PASS
public static final long TYPE_TO_TYPE_SCORE
public static final long NULL_TO_TYPE_SCORE
public static final long WILDCARD_SCORE
protected CompleteDataType(DataType type)
public DataType getDataType()
public String toHumanString()
Assumes no schemas are named.
public final boolean canAssignFrom(CompleteDataType other)
other
- the other typeprotected boolean canAssignFromImpl(CompleteDataType other)
other
- the other typepublic long rateCoercion(CompleteDataType type)
type
- the CType to converse topublic abstract String toHumanString(SchemaUtil.SchemaProvider schemaProvider)
schemaProvider
- A schema provider to identify named schemasprotected boolean equalBaseTypes(CompleteDataType other)
public String getName()
public Schema getSchema()
public Schema getArgumentSchema()
public CompleteDataType getElementType()
public String getCaptureName()
public CompleteDataType getReturnType()
public static long rateCoercion(CompleteDataType from, CompleteDataType to)
@Deprecated public static CompleteDataType forBool()
public static CompleteDataType forBoolean()
public static CompleteDataType forBlob()
public static CompleteDataType forDouble()
public static CompleteDataType forInt()
public static CompleteDataType forLong()
public static CompleteDataType forString()
public static CompleteDataType forTimestamp()
public static CompleteDataType forTuple(Schema schema)
schema
- the tuple's schema. This parameter may not be null.public static CompleteDataType forList(CompleteDataType elementType)
elementType
- the list's element typepublic static CompleteDataType forDoubleList()
public static CompleteDataType forIntList()
public static CompleteDataType forLongList()
public static CompleteDataType forStringList()
public static CompleteDataType forBoolList()
public static CompleteDataType forBlobList()
public static CompleteDataType forTimestampList()
public static CompleteDataType forCapture(String typeName)
typeName
- the type parameter name to usepublic static CompleteDataType findSuperType(CompleteDataType t1, CompleteDataType t2)
t1
- an input type or nullt2
- an input type or nullpublic static CompleteDataType.FunctionType forFunction(Schema argumentSchema, CompleteDataType returnType)
CompleteDataType
with the given argument schema and return typeargumentSchema
- the function's arguments. To represent no arguments, pass an empty schema, not null.returnType
- the function's return typeCompleteDataType