Package xyz.cofe.sql.stream
Class XmlStreamWriter
java.lang.Object
xyz.cofe.sql.stream.DataStreamAbstract
xyz.cofe.sql.stream.XmlStreamWriter
- All Implemented Interfaces:
xyz.cofe.scn.LongScn<XmlStreamWriter,XmlStreamWriter>,xyz.cofe.scn.Scn<XmlStreamWriter,java.lang.Long,XmlStreamWriter>,QueryStream
public class XmlStreamWriter extends DataStreamAbstract implements QueryStream, xyz.cofe.scn.LongScn<XmlStreamWriter,XmlStreamWriter>
Пишет результат запроса в XML поток
- Author:
- nt.gocha@gmail.com
-
Nested Class Summary
Nested classes/interfaces inherited from class xyz.cofe.sql.stream.DataStreamAbstract
DataStreamAbstract.BlobToStrHex, DataStreamAbstract.ByteArrToStrHex, DataStreamAbstract.NClobSer, DataStreamAbstract.StrHexToBlob, DataStreamAbstract.StrHexToNByteArr, DataStreamAbstract.StrHexToOByteArr, DataStreamAbstract.StrToClob -
Field Summary
Fields Modifier and Type Field Description protected intcurrentRowIndexprotected intflushEachMessagesprotected intflushEachRowsbooleangenerateScnMarkprotected booleanmessageBufferprotected intmessageIndexprotected java.util.concurrent.ConcurrentLinkedQueue<Message>messagesprotected xyz.cofe.xml.FormatXMLWriteroutprotected booleanoverwriteScnMark -
Constructor Summary
Constructors Constructor Description XmlStreamWriter(java.io.OutputStream out, java.lang.String cs)КонструкторXmlStreamWriter(java.io.OutputStream out, java.nio.charset.Charset cs)КонструкторXmlStreamWriter(java.io.Writer wr)КонструкторXmlStreamWriter(javax.xml.stream.XMLStreamWriter xw)КонструкторXmlStreamWriter(xyz.cofe.xml.FormatXMLWriter xw)Конструктор -
Method Summary
Modifier and Type Method Description voidcell(int columnIndex, java.lang.Object value, ScnMark mark)Данные ячейки строки из выборкиvoidcolumnBegin(int columnIndex, ScnMark mark)Начало колонки (мета данные)voidcolumnEnd()Конец описания колонки (мета данные)voidcolumnProperty(java.lang.String key, java.lang.Object value, ScnMark mark)Описание колонки (мета данные)voiddataBegin(ScnMark mark)Начало данных выборкиvoiddataEnd()Конец данных выборкиvoiderror(Err err, ScnMark mark)Событие ошибки при чтении данных/получении выборкиvoidgeneratedKeysBegin(ScnMark scm)Отмечает начало табличных данных сгенерируемых первичных ключейvoidgeneratedKeysEnd()Отмечает конец дпнных о первичных ключахintgetFlushEachMessages()intgetFlushEachRows()booleanisGenerateScnMark()Генерировать метку scnbooleanisMessageBuffer()Буфферизировать сообщения (по умолчанию false).booleanisOverwriteScnMark()Переписывать метку SCN.voidmessage(Message mes)Сообщения генерируемое базой при выборке данных (PRINT/DBMS_OUTPUT)voidmetaBegin(ScnMark mark)Начало описания табличных данных (мета данные)voidmetaEnd()Конец описания мета данных выборкиprotected ScnMarknextScnMark()Генерирует новую метку SCNvoidqueryStreamBegin()Отмечает начало записи SQL выборки.voidqueryStreamEnd()Отмечает конец записи SQL выборкиvoidrowBegin(int rowIndex, ScnMark mark)Начало данных строки из выборкиvoidrowEnd()Конец данных строки из выборкиvoidsetFlushEachMessages(int flushEachMessages)voidsetFlushEachRows(int flushEachRows)voidsetGenerateScnMark(boolean generateScnMark)Генерировать метку scnvoidsetMessageBuffer(boolean messageBuffer)Буфферизировать сообщения (по умолчанию false).voidsetOverwriteScnMark(boolean overwriteScnMark)Переписывать метку SCNvoidtableBegin(int tableIndex, ScnMark mark)Начало табличных данныхvoidtableEnd()Конец табличных данныхvoidupdateCount(int count, ScnMark mark)Отмечает кол-во созданых/измененных строкprotected voidwriteCell(int columnIndex, java.lang.Object value, ScnMark mark)protected voidwriteColumnBegin(int columnIndex, ScnMark mark)мета данные колонки <column>protected voidwriteColumnEnd()protected voidwriteColumnProperty(java.lang.String key, java.lang.String value, ScnMark mark)Пишет свойство колонки в виде тэга <имя_свойства>значение</имя свойства>protected voidwriteDataBegin(ScnMark mark)protected voidwriteDataEnd()protected voidwriteError(Err err, ScnMark mark)protected voidwriteGeneratedKeysBegin(ScnMark mark)Пишет информацию о автоматически генерируемых первичных ключах <generated>protected voidwriteGeneratedKeysEnd()protected voidwriteMessage(Message mes)Пишет сообщение в XML поток <message>protected voidwriteMessages()Пишет все накопленные сообщения из буфера одним блоком (<messages> сообщения </messages>) освобождая буферprotected voidwriteMetaBegin(ScnMark mark)Мета данные - <meta>protected voidwriteMetaEnd()protected voidwriteQueryStreamBegin()Начало xml потока - тэг <query>protected voidwriteQueryStreamEnd()protected voidwriteRowBegin(int rowIndex, ScnMark mark)protected voidwriteRowEnd()protected voidwriteTableBegin(int tableIndex, ScnMark mark)Начало табличных данных - <resultSet>protected voidwriteTableEnd()protected voidwriteUpdateCount(int count, ScnMark mark)
-
Field Details
-
out
protected xyz.cofe.xml.FormatXMLWriter out -
overwriteScnMark
protected boolean overwriteScnMark -
generateScnMark
public boolean generateScnMark -
currentRowIndex
protected volatile int currentRowIndex -
flushEachRows
protected int flushEachRows -
messageBuffer
protected boolean messageBuffer -
messages
-
flushEachMessages
protected volatile int flushEachMessages -
messageIndex
protected volatile int messageIndex
-
-
Constructor Details
-
XmlStreamWriter
public XmlStreamWriter(javax.xml.stream.XMLStreamWriter xw)Конструктор- Parameters:
xw- поток для записи XML
-
XmlStreamWriter
public XmlStreamWriter(xyz.cofe.xml.FormatXMLWriter xw)Конструктор- Parameters:
xw- поток для записи XML
-
XmlStreamWriter
public XmlStreamWriter(java.io.Writer wr)Конструктор- Parameters:
wr- поток для записи XML
-
XmlStreamWriter
public XmlStreamWriter(java.io.OutputStream out, java.nio.charset.Charset cs)Конструктор- Parameters:
out- поток для записи XMLcs- кодировка
-
XmlStreamWriter
public XmlStreamWriter(java.io.OutputStream out, java.lang.String cs)Конструктор- Parameters:
out- поток для записи XMLcs- кодировка
-
-
Method Details
-
nextScnMark
Генерирует новую метку SCN- Returns:
- метка SCN
-
isOverwriteScnMark
public boolean isOverwriteScnMark()Переписывать метку SCN.При значении overwriteScnMark=true и generateScnMark=true - создает метку, если она указана - то переопределяет ее
- Returns:
- true - переопределять метку SCN
-
setOverwriteScnMark
public void setOverwriteScnMark(boolean overwriteScnMark)Переписывать метку SCN- Parameters:
overwriteScnMark- true - переопределять метку SCN- See Also:
isOverwriteScnMark()
-
isGenerateScnMark
public boolean isGenerateScnMark()Генерировать метку scn- Returns:
- true - генерировать метку scn
- See Also:
isOverwriteScnMark()
-
setGenerateScnMark
public void setGenerateScnMark(boolean generateScnMark)Генерировать метку scn- Parameters:
generateScnMark- true - генерировать метку scn- See Also:
isOverwriteScnMark()
-
queryStreamBegin
public void queryStreamBegin()Description copied from interface:QueryStreamОтмечает начало записи SQL выборки.В процессе работы вызываются все остальные методы, послединй меотд обычно должен быть queryStreamEnd.
Возможна ситуация, что в процессе выборки события message и error будут происходить из другого трэда ОС.- Specified by:
queryStreamBeginin interfaceQueryStream- See Also:
QueryStream.queryStreamEnd()
-
writeQueryStreamBegin
protected void writeQueryStreamBegin() throws javax.xml.stream.XMLStreamExceptionНачало xml потока - тэг <query>- Throws:
javax.xml.stream.XMLStreamException- ошибка I/O
-
tableBegin
Description copied from interface:QueryStreamНачало табличных данных- Specified by:
tableBeginin interfaceQueryStream- Parameters:
tableIndex- индекс табличных данных, 0 - первая выборка, возможно более одной выборки табличных данных в результате запросаmark- отмета SCN
-
writeTableBegin
protected void writeTableBegin(int tableIndex, ScnMark mark) throws javax.xml.stream.XMLStreamExceptionНачало табличных данных - <resultSet>- Parameters:
tableIndex- индексmark- отметка- Throws:
javax.xml.stream.XMLStreamException- Ошибка I/O
-
metaBegin
Description copied from interface:QueryStreamНачало описания табличных данных (мета данные)- Specified by:
metaBeginin interfaceQueryStream- Parameters:
mark- отметка SCN
-
writeMetaBegin
Мета данные - <meta>- Parameters:
mark- метка scn- Throws:
javax.xml.stream.XMLStreamException- Ошибка I/O
-
columnBegin
Description copied from interface:QueryStreamНачало колонки (мета данные)- Specified by:
columnBeginin interfaceQueryStream- Parameters:
columnIndex- индекс колонкиmark- отметка SCN
-
writeColumnBegin
protected void writeColumnBegin(int columnIndex, ScnMark mark) throws javax.xml.stream.XMLStreamExceptionмета данные колонки <column>- Parameters:
columnIndex- индекс колонкиmark- метка- Throws:
javax.xml.stream.XMLStreamException- Ошибка I/O
-
columnProperty
Description copied from interface:QueryStreamОписание колонки (мета данные)- Specified by:
columnPropertyin interfaceQueryStream- Parameters:
key- имя свойстваvalue- значение свойстваmark- отметка SCN
-
writeColumnProperty
protected void writeColumnProperty(java.lang.String key, java.lang.String value, ScnMark mark) throws javax.xml.stream.XMLStreamExceptionПишет свойство колонки в виде тэга <имя_свойства>значение</имя свойства>- Parameters:
key- имя свойства - должно начинаться с буквыvalue- значениеmark- метка scn- Throws:
javax.xml.stream.XMLStreamException- Ошибка I/O
-
columnEnd
public void columnEnd()Description copied from interface:QueryStreamКонец описания колонки (мета данные)- Specified by:
columnEndin interfaceQueryStream
-
writeColumnEnd
protected void writeColumnEnd() throws javax.xml.stream.XMLStreamException- Throws:
javax.xml.stream.XMLStreamException
-
metaEnd
public void metaEnd()Description copied from interface:QueryStreamКонец описания мета данных выборки- Specified by:
metaEndin interfaceQueryStream
-
writeMetaEnd
protected void writeMetaEnd() throws javax.xml.stream.XMLStreamException- Throws:
javax.xml.stream.XMLStreamException
-
dataBegin
Description copied from interface:QueryStreamНачало данных выборки- Specified by:
dataBeginin interfaceQueryStream- Parameters:
mark- отметка SCN
-
writeDataBegin
- Throws:
javax.xml.stream.XMLStreamException
-
rowBegin
Description copied from interface:QueryStreamНачало данных строки из выборки- Specified by:
rowBeginin interfaceQueryStream- Parameters:
rowIndex- иднекс строкиmark- отметка SCN
-
writeRowBegin
protected void writeRowBegin(int rowIndex, ScnMark mark) throws javax.xml.stream.XMLStreamException- Throws:
javax.xml.stream.XMLStreamException
-
cell
Description copied from interface:QueryStreamДанные ячейки строки из выборки- Specified by:
cellin interfaceQueryStream- Parameters:
columnIndex- индекс колонкиvalue- значениеmark- отметка SCN
-
writeCell
protected void writeCell(int columnIndex, java.lang.Object value, ScnMark mark) throws javax.xml.stream.XMLStreamException- Throws:
javax.xml.stream.XMLStreamException
-
rowEnd
public void rowEnd()Description copied from interface:QueryStreamКонец данных строки из выборки- Specified by:
rowEndin interfaceQueryStream
-
getFlushEachRows
public int getFlushEachRows() -
setFlushEachRows
public void setFlushEachRows(int flushEachRows) -
writeRowEnd
protected void writeRowEnd() throws javax.xml.stream.XMLStreamException- Throws:
javax.xml.stream.XMLStreamException
-
dataEnd
public void dataEnd()Description copied from interface:QueryStreamКонец данных выборки- Specified by:
dataEndin interfaceQueryStream
-
writeDataEnd
protected void writeDataEnd() throws javax.xml.stream.XMLStreamException- Throws:
javax.xml.stream.XMLStreamException
-
tableEnd
public void tableEnd()Description copied from interface:QueryStreamКонец табличных данных- Specified by:
tableEndin interfaceQueryStream
-
writeTableEnd
protected void writeTableEnd() throws javax.xml.stream.XMLStreamException- Throws:
javax.xml.stream.XMLStreamException
-
queryStreamEnd
public void queryStreamEnd()Description copied from interface:QueryStreamОтмечает конец записи SQL выборки- Specified by:
queryStreamEndin interfaceQueryStream
-
writeQueryStreamEnd
protected void writeQueryStreamEnd() throws javax.xml.stream.XMLStreamException- Throws:
javax.xml.stream.XMLStreamException
-
updateCount
Description copied from interface:QueryStreamОтмечает кол-во созданых/измененных строк- Specified by:
updateCountin interfaceQueryStream- Parameters:
count- кол-во строкmark- отметка SCN
-
writeUpdateCount
protected void writeUpdateCount(int count, ScnMark mark) throws javax.xml.stream.XMLStreamException- Throws:
javax.xml.stream.XMLStreamException
-
isMessageBuffer
public boolean isMessageBuffer()Буфферизировать сообщения (по умолчанию false).если включенна буферизация, то все сообщения будут записаны в один блок <messages>
- Returns:
- true - буфферизировать сообщения
- See Also:
writeMessages()
-
setMessageBuffer
public void setMessageBuffer(boolean messageBuffer)Буфферизировать сообщения (по умолчанию false).- Parameters:
messageBuffer- true - буфферизировать сообщения
-
message
Description copied from interface:QueryStreamСообщения генерируемое базой при выборке данных (PRINT/DBMS_OUTPUT)- Specified by:
messagein interfaceQueryStream- Parameters:
mes- сообщение
-
getFlushEachMessages
public int getFlushEachMessages() -
setFlushEachMessages
public void setFlushEachMessages(int flushEachMessages) -
writeMessage
Пишет сообщение в XML поток <message>- Parameters:
mes- сообщение- Throws:
javax.xml.stream.XMLStreamException- ошибка записи
-
writeMessages
protected void writeMessages() throws javax.xml.stream.XMLStreamExceptionПишет все накопленные сообщения из буфера одним блоком (<messages> сообщения </messages>) освобождая буфер- Throws:
javax.xml.stream.XMLStreamException- Ошибка I/O
-
error
Description copied from interface:QueryStreamСобытие ошибки при чтении данных/получении выборки- Specified by:
errorin interfaceQueryStream- Parameters:
err- описание ошибкиmark- отметка SCN
-
writeError
- Throws:
javax.xml.stream.XMLStreamException
-
generatedKeysBegin
Description copied from interface:QueryStreamОтмечает начало табличных данных сгенерируемых первичных ключей- Specified by:
generatedKeysBeginin interfaceQueryStream- Parameters:
scm- отметка SCN
-
writeGeneratedKeysBegin
Пишет информацию о автоматически генерируемых первичных ключах <generated>- Parameters:
mark- отметка SCN- Throws:
javax.xml.stream.XMLStreamException- Ошибка I/O
-
generatedKeysEnd
public void generatedKeysEnd()Description copied from interface:QueryStreamОтмечает конец дпнных о первичных ключах- Specified by:
generatedKeysEndin interfaceQueryStream
-
writeGeneratedKeysEnd
protected void writeGeneratedKeysEnd() throws javax.xml.stream.XMLStreamException- Throws:
javax.xml.stream.XMLStreamException
-