Package com.amazon.ion.impl
Interface _Private_LocalSymbolTableFactory
public interface _Private_LocalSymbolTableFactory
NOT FOR APPLICATION USE
Implementations of this interface may be provided to IonReaders in order
to force them to construct LocalSymbolTables in a different way.
In practice, this is used to construct a different LocalSymbolTable
implementation for use with the DOM than is used purely by readers
and writers.
If
LocalSymbolTableAsStruct is ever deleted, this can go away
too.-
Method Summary
Modifier and TypeMethodDescriptionnewLocalSymtab(IonCatalog catalog, IonReader reader, boolean alreadyInStruct) Constructs a new local symbol table represented by the current value of the passed inIonReader.newLocalSymtab(SymbolTable defaultSystemSymtab, SymbolTable... imports) Constructs a new local symtab with given imports and local symbols.
-
Method Details
-
newLocalSymtab
Constructs a new local symbol table represented by the current value of the passed inIonReader.NOTE: It is assumed that the passed in reader is positioned properly on/before a value that represents a local symtab semantically. That is, no exception-checks are made on the
IonTypeand annotation, callers are responsible for checking this!- Parameters:
catalog- the catalog containing shared symtabs referenced by import declarations within the local symtabreader- the reader positioned on the local symbol table represented as a structalreadyInStruct- denotes whether the reader is already positioned on the struct; false if it is positioned before the struct
-
newLocalSymtab
Constructs a new local symtab with given imports and local symbols.- Parameters:
defaultSystemSymtab- the default system symtab, which will be used if the first import inimportsisn't a system symtab, never nullimports- the set of shared symbol tables to import; the first (and only the first) may be a system table, in which case thedefaultSystemSymtabis ignored- Throws:
IllegalArgumentException- if any import is a local table, or if any but the first is a system tableNullPointerException- if any import is null
-