public interface ValueInfo
Object
s;
use of the information in this class
can then be used to make additional sense of the object(s) thus returned.Modifier and Type | Method and Description |
---|---|
java.lang.String |
formatValue(java.lang.Object value,
int maxLength)
Returns a string representation of a given value described by this
ValueInfo . |
java.util.List<DescribedValue> |
getAuxData()
Returns a list of auxiliary metadata objects
pertaining to this info.
|
default DescribedValue |
getAuxDatumByName(java.lang.String name)
Gets an item of auxiliary metadata by its name.
|
java.lang.Class<?> |
getContentClass()
Returns the java class of the values described by this object.
|
java.lang.String |
getDescription()
Returns a description of the values described by this object.
|
DomainMapper[] |
getDomainMappers()
Returns an array of objects which may be able to convert from the
values described by this info to a particular target value domain.
|
int |
getElementSize()
May indicate the size of a value element stored as the value of
this info.
|
java.lang.String |
getName()
Returns the name of this object.
|
int[] |
getShape()
Returns the shape associated with array value types.
|
java.lang.String |
getUCD()
Returns the Unified Column Descriptor string applying to the
values described by this object.
|
java.lang.String |
getUnitString()
Returns a string representing the units of the values described by
this object.
|
java.lang.String |
getUtype()
Returns the Utype string applying to the values described by
this object.
|
java.lang.String |
getXtype()
Returns the Xtype string applying to the values described by
this object.
|
boolean |
isArray()
Indicates whether the values described by this object are java arrays.
|
boolean |
isNullable()
Indicates whether values returned described by this object may have the
value
null . |
default void |
setAuxDatum(DescribedValue dval)
Adds the given DescribedValue to the list of auxiliary metadata
for this object.
|
java.lang.Object |
unformatString(java.lang.String rep)
Returns an object of the sort described by this
ValueInfo
represented by the given string rep . |
java.lang.String getName()
java.lang.String getUnitString()
null
if units are
unknownjava.lang.String getUCD()
null
if none is knownUCD
java.lang.String getUtype()
null
if none is knownjava.lang.String getXtype()
null
if none is knownjava.lang.String getDescription()
java.lang.Class<?> getContentClass()
Object
described by this
ValueInfo
will be an instance of the returned class
or one of its subclasses. Note therefore that it must not
return one of the primitive class objects
(int.class
et al.);
the appropriate wrapper classes must be used instead
(Integer.class
etc).
The class returned should not under normal circumstances be an
array of arrays; to express multidimensionality of arrays you
should store an array of non-array objects or of primitives and
provide shape information via the getShape
method.
There is nothing to stop you describing arrays of arrays with a
ValueInfo
, but some other elements of the tables
infrastructure and applications may work on the assumption that
such objects are not present.
Note that to store sets of more than 231 items it
will be necessary to use some custom object, since java arrays
are indexed by type int
.
boolean isArray()
getContentClass().getComponentType()!=null
true
iff the values described by this object are
java arraysint[] getShape()
getContentClass()
is a java array type,
the return from this method may contain information about
the shape of the rectangular array which this represents.
The dimensions of the array are given in the elements of
the return value of this method, fastest varying first.
All elements of the array should be positive, except that the
last (slowest varying) element may be <=0 (conventionally -1)
to indicate that the number of (shape.length-1)
-dimensional
slices contained in the value is not known.
If nothing is known about the shape of the array values,
then a 1-element array whose only element is <=0 should be returned.
If getContentClass
does not give an array type
(hence isArray
returns false)
the return value for this method is undefined (but should probably
be null
).
int getElementSize()
getShape()
(or by 1, if getShape
is null).
The exact meaning of the value returned is dependent on this
ValueInfo. This method was introduced to return the maximum
number of characters in a String
-class ValueInfo;
this information is necessary for writing out to certain formats (FITS).
Other ValueInfo types however may use it for their own purposes.
ValueInfo instances which decline to supply this information should return -1 from this method.
boolean isNullable()
null
.
In general this should return true
,
which implies no assertion about the return values (they may or
may not be null
). But if the values are known never to
be null
, it may return false
.false
if values are guaranteed
non-null
java.util.List<DescribedValue> getAuxData()
DescribedValue
itemsDomainMapper[] getDomainMappers()
java.lang.String formatValue(java.lang.Object value, int maxLength)
ValueInfo
. The returned string should be
no longer than a given maximum length.value
- the value to representmaxLength
- the maximum number of characters in the returned
stringjava.lang.Object unformatString(java.lang.String rep)
ValueInfo
represented by the given string rep
.rep
- the string representation of a value described by
this ValueInfo
rep
; must match
this info's content class (or be null)default DescribedValue getAuxDatumByName(java.lang.String name)
name
- the name of an auxiliary metadata itemDescribedValue
object representing the
named auxiliary metadata item for this column,
or null
if none existsdefault void setAuxDatum(DescribedValue dval)
dval
- the new datum to add