RowListStarTable
.JoinStarTable
can now
deduplicate column names.ConcatStarTable
permits adding the rows of one table after the rows of another.RowSequence
interface
has been modified; a new
close
method has been introduced, and the old
advance()
and getRowIndex()
methods have been
withdrawn (these latter were not very useful and in some cases
problematic to implement).
setName()
and setURL()
have been added to the StarTable
interface.
StoragePolicy
class was
introduced, which allows you to influence whether cached table data are
stored in memory or on disk.
This has led to backwardly-incompatible changes to public interfaces and
classes:
makeStarTable
now takes a new StoragePolicy
argument, and
VOElementFactory
's methods
are now instance methods rather than static ones.
StarTableFactory
class's
makeStarTable
methods now come in two flavours - with and
without a format name. This corresponds to two table reading modes:
named format mode and automatic format detection mode.
In named format mode you specify the format of the table you are
trying to read and in automatic format detection mode you rely
on the factory to work it out
using magic numbers. Although automatic detection works well
for VOTable and FITS, it's poor for text-based formats like
ASCII and CSV.
This has resulted in addition of some new two-argument
makeStarTable
methods and the withdrawal of the
getBuilders
method in favour of two new methods
getDefaultBuilders
and
getKnownBuilders
(similarly for setter methods) which deal with the handlers
used in automatic detection mode and the ones available for
named format mode respectively.
Note that the ASCII table format is not automatically detected,
so to use ASCII tables you now have to specify the format explicitly.
VOElement
class
has been rewritten and now implements the DOM
Element
interface.
This means that the hierarchical structure which you can navigate
to obtain information about the VOTable document and extract
table data actually is a DOM rather than just being sat
on top of one. You can therefore now use it just as a normal
DOM tree (making use of the methods defined in the
org.w3c.dom
interface,
interoperating with third-party components which require a DOM).
This has had a number of additional benefits and consequences:
VOElementFactory
class now has instance methods rather than static methods.
StoragePolicy.DISCARD
into a VOElementFactory
it is now possible to obtain a data-less
(structure only, hence minimal resource) VOTable DOM.
TableSink
methods
now throw exceptions.
StarTableFactory
's list for automatic format detection,
but CSV-format tables can be loaded using named format mode.
The format is intended to match the (widely-used) variety used by
Microsoft Excel amongst others (with optional column names).
basic-fits
").
StoragePolicy
).
Short
/Float
types in preference to Integer
/Double
if the input data make this appropriate.
d
or D
as an exponent letter
as well as e
or E
.
uk.ac.starlink.table.join
.
These work and have full javadocs, but
they are still experimental, subject to substantial change in future
releases, and not documented properly in this document.
NULL_VALUE_INFO
)
Nulls in FITS and VOTable/FITS tables are now preserved correctly
on output.
TCOMMx
headers.
EmptyStarTable
added.
StarTable
objectwantRandom
flag has been changed in name and
semantics to requireRandom
in
StarTableFactory
.
When set, any table returned from the factory is now guaranteed
to have random access.
StarTableOutput
now has a new method
writeStarTable
which writes a table to an OutputStream
as well
as the one which writes to a location string (usually filename).
This is supported by changes to the writeStarTable
methods which StarTableWriter
implementations must provide.
uk.ac.starlink.table.gui.StarTableChooser
table loader dialogue has been improved in several ways.
Loading is now done asynchronously, so that the GUI does not
lock up when a long load is taking place (a load cancel button can
be pressed).
Additionally, custom load dialogues have been made pluggable,
so that you can add new load sub-dialogues by implementing
TableLoadDialog
(most likely subclassing
BasicTableLoadDialog
)
and naming the class in the
startable.load.dialogs
property.
A dialogue for browsing AstroGrid's MySpace remote filestore is
available, but for reasons of size STIL is not by default
packaged with all the
classes required to make it work (AXIS and the CDK are missing).
setParameter
has been added to the StarTable
interface.
BeanStarTable
which can store
Java Beans has been introduced. This is handy for storing arrays
of objects of the same kind without having to write a custom table
implementation.
arraysize
workaround
arraysize
attribute; by default
it is now assumed to have the value "*
" rather
than "1
" as the standard dictates.
See Section 6.3.4.
xsi:schemaLocation="http://www.ivoa.net/xml/VOTable/v1.1 http://www.ivoa.net/xml/VOTable/v1.1"instead of
xsi:noNamespaceSchemaLocation="http://www.ivoa.net/xml/VOTable/v1.1"(thanks to Paul Harrison for suggesting this correction).
tpipe
command introduced
tpipe
command has been tentatively introduced
at this release (Appendix B.3).
This useful command-line tool is experimental and may undergo
major changes or be moved to a separate package altogether
in future releases.
There have been changes to some of the main interfaces:
hasNext()
method has been withdrawn
from the RowSequence
interface and the next()
method, which used to be
declared void
, now returns
boolean
indicating whether there is another row.
This is quite likely to break existing code, but the fix is easy;
simply replace:
RowSequence rseq = table.getRowSequence(); while ( rseq.hasNext() ) { rseq.next(); ... }with
RowSequence rseq = table.getRowSequence(); while ( rseq.next() ) { ... }
streamStarTable
has been added to the TableBuilder
interface
to provide improved support for table streaming.
uk.ac.starlink.gui
package.
StarTableChooser
and StarTableSaver
have been replaced by TableLoadChooser
and
TableSaveChooser
, and these both now use a
graphical widget which can view files in remote filestores
(such as MySpace and SRB) if the relevant classes are present.
Minor changes:
Tables.sortTable
method.ExplodedStarTable
.ConcatStarTable
.arraysize="1"
explicitly for
scalar character fields.