public class VOTableBuilder extends DocumentedTableBuilder implements MultiTableBuilder
TableBuilder
interface which
gets StarTable
s from VOTable documents.Constructor and Description |
---|
VOTableBuilder()
Default constructor.
|
VOTableBuilder(boolean strict)
Constructs a builder with explicit setting of whether VOTable
standard interpreation is strict or not.
|
Modifier and Type | Method and Description |
---|---|
boolean |
canImport(DataFlavor flavor)
Returns
true for flavors which have MIME types starting
text/xml
application/xml
application/x-votable+xml
|
boolean |
canStream()
Indicates whether this handler can read tables from a stream.
|
boolean |
docIncludesExample()
Indicates whether the serialization of some (short) example table
should be added to the user documentation for this handler.
|
String |
getFormatName()
Returns the string "VOTable".
|
String |
getXmlDescription()
Returns user-directed documentation in XML format.
|
StarTable |
makeStarTable(DataSource datsrc,
boolean wantRandom,
StoragePolicy storagePolicy)
Makes a StarTable out of a DataSource which points to a VOTable.
|
TableSequence |
makeStarTables(DataSource datsrc,
StoragePolicy storagePolicy)
Constructs a sequence of StarTables based on a given DataSource.
|
void |
streamStarTable(InputStream istrm,
TableSink sink,
String index)
Acquires the data from a single TABLE element in a VOTable document,
writing the result to a sink.
|
getExtensions, looksLikeFile
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
looksLikeFile
matchesExtension, readText, toLink
public VOTableBuilder()
VOElementFactory.isStrictByDefault()
.public VOTableBuilder(boolean strict)
strict
- true iff you want strict enforcement of VOTable standardVOElementFactory.setStrict(boolean)
public String getFormatName()
getFormatName
in interface TableBuilder
public StarTable makeStarTable(DataSource datsrc, boolean wantRandom, StoragePolicy storagePolicy) throws TableFormatException, IOException
datsrc
,
thus it must be a non-negative integer less than the number of
TABLE elements. If it has no position attribute, the first
TABLE element is used. The interpretation of the position
should probably change or be extended in the future to
allow XPath expressions.makeStarTable
in interface TableBuilder
datsrc
- the location of the VOTable document to usewantRandom
- whether, preferentially, a random access table
should be returned (doesn't guarantee that it will be random)storagePolicy
- a StoragePolicy object which may be used to
supply scratch storage if the builder needs itdatsrc
,
or null
if this handler can't handle itTableFormatException
- if the table is not of a kind that
can be handled by this handlerIOException
- if an unexpected I/O error occurs during processingpublic TableSequence makeStarTables(DataSource datsrc, StoragePolicy storagePolicy) throws TableFormatException, IOException
MultiTableBuilder
TableFormatException
should be thrown. If this builder thinks it should be able to
handle the source but an error occurs during processing, an
IOException
can be thrown.
If the position
of the data source is not null,
then this method should return a sequence containing a single table,
the one which would be returned by the makeStarTable
method with that position.
makeStarTables
in interface MultiTableBuilder
datsrc
- the DataSource containing the table resourcestoragePolicy
- a StoragePolicy object which may be used to
supply scratch storage if the builder needs itdatsrc
TableFormatException
- if the table is not of a kind that
can be handled by this handlerIOException
- if an unexpected I/O error occurs during processingpublic boolean canImport(DataFlavor flavor)
true
for flavors which have MIME types starting
canImport
in interface TableBuilder
flavor
- the DataFlavor whose suitability as stream input
is to be assessedtrue
iff this builder reckons it stands a good
chance of turning a stream of type flavor
into a
StarTable
public void streamStarTable(InputStream istrm, TableSink sink, String index) throws IOException
Note that only table metadata that precedes the TABLE element in the XML stream can be picked up when using this method. If there are any XML elements following the end of the TABLE whose content would normally show up in table metadata, it will be ignored when using this method.
For more flexible streamed access to VOTable data, use a
TableContentHandler
.
streamStarTable
in interface TableBuilder
istrm
- stream from which the VOTable document will be suppliedsink
- callback interface into which the table metadata and
data will be dumpedindex
- if present, a string representation of the index of
the table in the document to be read - "0" means the
first one encountered, "1" means the second, etc.
If it's null
or not of numeric form the
first table will be usedTableFormatException
- if the table can't be streamed or
the data is malformedIOException
- if some other error occurspublic boolean canStream()
DocumentedTableBuilder
canStream
in class DocumentedTableBuilder
public boolean docIncludesExample()
DocumentedIOHandler
Documented.getXmlDescription()
method already includes some example output, should return false.docIncludesExample
in interface DocumentedIOHandler
public String getXmlDescription()
Documented
The output should be a sequence of one or more <P> elements, using XHTML-like XML. Since rendering may be done in a number of contexts however, use of the full range of XHTML elements is discouraged. Where possible, the content should stick to simple markup such as the elements P, A, UL, OL, LI, DL, DT, DD EM, STRONG, I, B, CODE, TT, PRE.
getXmlDescription
in interface Documented
Copyright © 2025 Central Laboratory of the Research Councils. All Rights Reserved.