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)
Type
DimensionType([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 Type
dimension
- Dimensiondefinitely
- If true, returns true only if this type definitely
uses the dimensionpublic boolean usesHierarchy(Hierarchy hierarchy, boolean definitely)
Type
HierarchyType([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 Type
hierarchy
- Hierarchydefinitely
- If true, returns true only if this type definitely
uses the hierarchypublic Hierarchy getHierarchy()
Type
getHierarchy
in interface Type
public Level getLevel()
Type
public Type computeCommonType(Type type, int[] conversionCount)
Type
Some 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 Type
type
- TypeconversionCount
- Number of conversions; output parameter that is
incremented each time a conversion is performed; if null, conversions
are not consideredpublic Dimension getDimension()
Type
getDimension
in interface Type
public boolean isInstance(Object value)
Type
isInstance
in interface Type
value
- ValueCopyright © 2020 Hitachi Vantara. All rights reserved.