public class ScalarType extends Object implements Type
An instance of this class means a scalar value of unknown type.
Usually one of the derived classes NumericType,
StringType, BooleanType is used instead.
| Modifier | Constructor and Description |
|---|---|
|
ScalarType()
Creates a ScalarType.
|
protected |
ScalarType(String digest)
Creates a ScalarType (or subtype) with a given digest.
|
| Modifier and Type | Method and Description |
|---|---|
Type |
computeCommonType(Type type,
int[] conversionCount)
Returns a Type which is more general than this and the given Type.
|
boolean |
equals(Object obj) |
int |
getArity()
Returns the number of fields in a tuple type, or a set of tuples.
|
Dimension |
getDimension()
Returns the Dimension of this Type, or null if not known.
|
Hierarchy |
getHierarchy()
Returns the Hierarchy of this Type, or null if not known.
|
Level |
getLevel()
Returns the Level of this Type, or null if not known.
|
int |
hashCode() |
boolean |
isInstance(Object value)
Returns whether a value is valid for a type.
|
String |
toString() |
boolean |
usesDimension(Dimension dimension,
boolean definitely)
Returns whether this type contains a given dimension.
For example:
DimensionType([Gender]) uses only the
[Gender] dimension.
TupleType(MemberType([Gender]), MemberType([Store]))
uses [Gender] and [Store]
dimensions.
The definitely parameter comes into play when the
dimensional information is incomplete. |
boolean |
usesHierarchy(Hierarchy hierarchy,
boolean definitely)
Returns whether this type contains a given hierarchy.
For example:
HierarchyType([Customer].[Gender]) uses only the
[Customer].[Gender] hierarchy.
TupleType(MemberType([Customer].[Gender]),
MemberType([Store].[Store]))
uses [Gender] and [Store]
dimensions.
The definitely parameter comes into play when the
dimensional information is incomplete. |
public ScalarType()
protected ScalarType(String digest)
The digest is used for toString() and hashCode().
digest - Description of this typepublic boolean usesDimension(Dimension dimension, boolean definitely)
TypeDimensionType([Gender]) uses only the
[Gender] dimension.TupleType(MemberType([Gender]), MemberType([Store]))
uses [Gender] and [Store]
dimensions.definitely parameter comes into play when the
dimensional information is incomplete. For example, when applied to
TupleType(MemberType(null), MemberType([Store])),
usesDimension([Gender], false) returns true because it
is possible that the expression returns a member of the
[Gender] dimension; but
usesDimension([Gender], true) returns true because it
is possible that the expression returns a member of the
[Gender] dimension.usesDimension in interface Typedimension - Dimensiondefinitely - If true, returns true only if this type definitely
uses the dimensionpublic boolean usesHierarchy(Hierarchy hierarchy, boolean definitely)
TypeHierarchyType([Customer].[Gender]) uses only the
[Customer].[Gender] hierarchy.TupleType(MemberType([Customer].[Gender]),
MemberType([Store].[Store]))
uses [Gender] and [Store]
dimensions.definitely parameter comes into play when the
dimensional information is incomplete. For example, when applied to
TupleType(MemberType([Customer]), MemberType([Store])),
usesDimension([Customer].[Gender], false) returns true
because the expression returns a member of one hierarchy of the
[Customer] dimension and that might be a member of the
[Customer].[Gender] hierarchy; but
usesDimension([Customer].[Gender], true) returns false
because might return a member of a different hierarchy, such as
[Customer].[State].usesHierarchy in interface Typehierarchy - Hierarchydefinitely - If true, returns true only if this type definitely
uses the hierarchypublic Hierarchy getHierarchy()
TypegetHierarchy in interface Typepublic Level getLevel()
Typepublic Type computeCommonType(Type type, int[] conversionCount)
TypeSome examples:
If conversionCount is not null, implicit conversions
such as HierarchyType to DimensionType are considered; the parameter
is incremented by the number of conversions performed.
Some examples:
One use of common types is to determine the types of the arguments
to the Iif function. For example, the call
Iif(1 > 2, [Measures].[Unit Sales],
5)
has type ScalarType, because DecimalType(-1, 0) is a subtype of
ScalarType, and MeasureType can be converted implicitly to ScalarType.computeCommonType in interface Typetype - TypeconversionCount - Number of conversions; output parameter that is
incremented each time a conversion is performed; if null, conversions
are not consideredpublic Dimension getDimension()
TypegetDimension in interface Typepublic boolean isInstance(Object value)
TypeisInstance in interface Typevalue - ValueCopyright © 2021 Hitachi Vantara. All rights reserved.