@Override public JsonParser createParser(URL data) throws IOException, JsonParseException { return new IonParser(ionSystem.newReader(data.openStream()), SHOULD_CLOSE_READER_YES); } }
case NULL: return sys.newNull(); case BOOL: return sys.newNullBool(); case INT: return sys.newNullInt(); case FLOAT: return sys.newNullFloat(); case DECIMAL: return sys.newNullDecimal(); case TIMESTAMP: return sys.newNullTimestamp(); case SYMBOL: return sys.newNullSymbol(); case STRING: return sys.newNullString(); case CLOB: return sys.newNullClob(); case BLOB: return sys.newNullBlob(); case LIST: return sys.newNullList(); case SEXP: return sys.newNullSexp(); case STRUCT: return sys.newNullString(); default: throw new IonException("unrecognized type encountered"); case NULL: return sys.newNull(); case BOOL: return sys.newBool(booleanValue()); case INT: return sys.newInt(longValue()); case FLOAT: return sys.newFloat(doubleValue()); case DECIMAL: return sys.newDecimal(decimalValue()); case TIMESTAMP: IonTimestamp t = sys.newNullTimestamp(); Timestamp ti = timestampValue(); t.setValue(ti); return t; case SYMBOL: return sys.newSymbol(stringValue()); case STRING: return sys.newString(stringValue()); case CLOB:
try IonReader reader = mySystem.newReader(in); while (reader.next() != null) mySystem.newSharedSymbolTable(reader, true); myCatalog.putTable(symtab); IonCatalog catalog = mySystem.getCatalog(); assert myCatalog == catalog;
@Override public void processFiles(String[] filePaths) { super.processFiles(filePaths); SymbolTable[] importArray = new SymbolTable[myImports.size()]; myImports.toArray(importArray); SymbolTable mySymtab = mySystem.newSharedSymbolTable(mySymtabName, mySymtabVersion, mySymbols.iterator(), importArray); IonWriter w = mySystem.newTextWriter((OutputStream)System.out); try { // TODO ensure IVM is printed mySymtab.writeTo(w); System.out.println(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
/** * @param container must not be null. */ public static IonWriter makeSystemWriter(IonContainer container) { IonSystem sys = container.getSystem(); IonCatalog cat = sys.getCatalog(); SymbolTable defaultSystemSymtab = sys.getSystemSymbolTable(); IonWriter writer = new IonWriterSystemTree(defaultSystemSymtab, cat, container, null /* initialIvmHandling */); return writer; } }
public IonReaderTreeSystem(IonValue value) { if (value == null) { // do nothing _system_symtab = null; _symbolTableAccessor = null; } else { _system_symtab = value.getSystem().getSystemSymbolTable(); re_init(value, /* hoisted */ false); _symbolTableAccessor = new SymbolTableProvider() { public SymbolTable getSymbolTable() { return IonReaderTreeSystem.this.getSymbolTable(); } }; } }
/** * @param container must not be null. */ public static IonWriter makeWriter(IonContainer container) { IonSystem sys = container.getSystem(); IonCatalog cat = sys.getCatalog(); IonWriter writer = makeWriter(cat, container); return writer; }
protected void process(IonReader reader, OutputStream out) throws IOException, IonException { IonSystem system = this.mySystem; IonWriter writer = system.newTextWriter(out); writer.writeValues(reader); // Ensure there's a newline at the end and flush the buffer. out.write('\n'); out.flush(); } }
protected IonGenerator _createGenerator(ObjectWriteContext writeCtxt, OutputStream out, JsonEncoding enc, boolean isManaged) throws IOException { IonWriter ion; IOContext ioCtxt = _createContext(out, isManaged); Closeable dst; // not necessarily same as 'out'... // Binary writers are simpler: no alternate encodings if (_cfgBinaryWriters) { ioCtxt.setEncoding(enc); ion = _system.newBinaryWriter(out); dst = out; } else { if (enc != JsonEncoding.UTF8) { // not sure if non-UTF-8 encodings would be legal... throw new IOException("Ion only supports UTF-8 encoding, can not use "+enc); } // In theory Ion package could take some advantage of getting OutputStream. // In practice we seem to be better off using Jackson's efficient buffering encoder ioCtxt.setEncoding(enc); // This is bit unfortunate, since out != dst now... Writer w = new CloseSafeUTF8Writer(ioCtxt, out); ion = _system.newTextWriter(w); dst = w; } return _createGenerator(writeCtxt, ioCtxt, ion, dst); }
private int findSid(SymbolToken symToken) { int sid = symToken.getSid(); String text = symToken.getText(); if (sid != UNKNOWN_SYMBOL_ID) // sid is assigned { assert text == null || text.equals(mySymbolTable.findKnownSymbol(sid)); } else // sid is not assigned { if (mySymbolTable.isSystemTable()) { // Replace current symtab with a new local symbol table // using the default system symtab mySymbolTable = myIonSystem.newLocalSymbolTable(); } // Intern the new symbol and get its assigned sid sid = mySymbolTable.intern(text).getSid(); } return sid; }
case NULL: return sys.newNull(); case BOOL: return sys.newNullBool(); case INT: return sys.newNullInt(); case FLOAT: return sys.newNullFloat(); case DECIMAL: return sys.newNullDecimal(); case TIMESTAMP: return sys.newNullTimestamp(); case SYMBOL: return sys.newNullSymbol(); case STRING: return sys.newNullString(); case CLOB: return sys.newNullClob(); case BLOB: return sys.newNullBlob(); case LIST: return sys.newNullList(); case SEXP: return sys.newNullSexp(); case STRUCT: return sys.newNullString(); default: throw new IonException("unrecognized type encountered"); case NULL: return sys.newNull(); case BOOL: return sys.newBool(booleanValue()); case INT: return sys.newInt(longValue()); case FLOAT: return sys.newFloat(doubleValue()); case DECIMAL: return sys.newDecimal(decimalValue()); case TIMESTAMP: IonTimestamp t = sys.newNullTimestamp(); Timestamp ti = timestampValue(); t.setValue(ti); return t; case SYMBOL: return sys.newSymbol(stringValue()); case STRING: return sys.newString(stringValue()); case CLOB:
try IonReader reader = mySystem.newReader(in); while (reader.next() != null) mySystem.newSharedSymbolTable(reader, true); myCatalog.putTable(symtab); IonCatalog catalog = mySystem.getCatalog(); assert myCatalog == catalog;
@Override public void processFiles(String[] filePaths) { super.processFiles(filePaths); SymbolTable[] importArray = new SymbolTable[myImports.size()]; myImports.toArray(importArray); SymbolTable mySymtab = mySystem.newSharedSymbolTable(mySymtabName, mySymtabVersion, mySymbols.iterator(), importArray); IonWriter w = mySystem.newTextWriter((OutputStream)System.out); try { // TODO ensure IVM is printed mySymtab.writeTo(w); System.out.println(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
/** * @param container must not be null. */ public static IonWriter makeSystemWriter(IonContainer container) { IonSystem sys = container.getSystem(); IonCatalog cat = sys.getCatalog(); SymbolTable defaultSystemSymtab = sys.getSystemSymbolTable(); IonWriter writer = new IonWriterSystemTree(defaultSystemSymtab, cat, container, null /* initialIvmHandling */); return writer; } }
/** * @param container must not be null. */ public static IonWriter makeWriter(IonCatalog catalog, IonContainer container) { IonSystem sys = container.getSystem(); SymbolTable defaultSystemSymtab = sys.getSystemSymbolTable(); // TODO the SUPPRESS here is a nasty discontinuity with other places // that create this kind of reader. It prevents the Lite DG system // iterator from returning two IVMs at the start of the data. // The Span tests detect that problem. IonWriterSystemTree system_writer = new IonWriterSystemTree(defaultSystemSymtab, catalog, container, InitialIvmHandling.SUPPRESS); return new IonWriterUser(catalog, sys, system_writer); }
protected SymbolTable getLatestSharedSymtab(String name) { IonCatalog catalog = mySystem.getCatalog(); SymbolTable table = catalog.getTable(name); if (table == null) { String message = "There's no symbol table in the catalog named " + name; throw new RuntimeException(message); } logDebug("Found shared symbol table " + name + "@" + table.getVersion()); return table; }
protected void process(IonReader reader, OutputStream out) throws IOException, IonException { IonSystem system = this.mySystem; IonWriter writer = system.newTextWriter(out); writer.writeValues(reader); // Ensure there's a newline at the end and flush the buffer. out.write('\n'); out.flush(); } }
private int findSid(SymbolToken symToken) { int sid = symToken.getSid(); String text = symToken.getText(); if (sid != UNKNOWN_SYMBOL_ID) // sid is assigned { assert text == null || text.equals(mySymbolTable.findKnownSymbol(sid)); } else // sid is not assigned { if (mySymbolTable.isSystemTable()) { // Replace current symtab with a new local symbol table // using the default system symtab mySymbolTable = myIonSystem.newLocalSymbolTable(); } // Intern the new symbol and get its assigned sid sid = mySymbolTable.intern(text).getSid(); } return sid; }
case NULL: return sys.newNull(); case BOOL: return sys.newNullBool(); case INT: return sys.newNullInt(); case FLOAT: return sys.newNullFloat(); case DECIMAL: return sys.newNullDecimal(); case TIMESTAMP: return sys.newNullTimestamp(); case SYMBOL: return sys.newNullSymbol(); case STRING: return sys.newNullString(); case CLOB: return sys.newNullClob(); case BLOB: return sys.newNullBlob(); case LIST: return sys.newNullList(); case SEXP: return sys.newNullSexp(); case STRUCT: return sys.newNullString(); default: throw new IonException("unrecognized type encountered"); case NULL: return sys.newNull(); case BOOL: return sys.newBool(booleanValue()); case INT: return sys.newInt(longValue()); case FLOAT: return sys.newFloat(doubleValue()); case DECIMAL: return sys.newDecimal(decimalValue()); case TIMESTAMP: IonTimestamp t = sys.newNullTimestamp(); Timestamp ti = timestampValue(); t.setValue(ti); return t; case SYMBOL: return sys.newSymbol(stringValue()); case STRING: return sys.newString(stringValue()); case CLOB:
@Override public JsonParser createParser(byte[] data) throws IOException, JsonParseException { return new IonParser(ionSystem.newReader(data), SHOULD_CLOSE_READER_NO); }