public class XmlStreamWriter extends DataStreamAbstract implements QueryStream, ScnChanged<XmlStreamWriter,Long>
DataStreamAbstract.BlobToStrHex, DataStreamAbstract.ByteArrToStrHex, DataStreamAbstract.NClobSer, DataStreamAbstract.StrHexToBlob, DataStreamAbstract.StrHexToNByteArr, DataStreamAbstract.StrHexToOByteArr, DataStreamAbstract.StrToClob| Modifier and Type | Field and Description |
|---|---|
protected int |
currentRowIndex |
protected int |
flushEachMessages |
protected int |
flushEachRows |
boolean |
generateScnMark |
protected boolean |
messageBuffer |
protected int |
messageIndex |
protected ConcurrentLinkedQueue<Message> |
messages |
protected FormatXMLWriter |
out |
protected boolean |
overwriteScnMark |
protected LongScnChangedSupport<XmlStreamWriter> |
scn |
typeCast| Constructor and Description |
|---|
XmlStreamWriter(FormatXMLWriter xw)
Конструктор
|
XmlStreamWriter(OutputStream out,
Charset cs)
Конструктор
|
XmlStreamWriter(OutputStream out,
String cs)
Конструктор
|
XmlStreamWriter(Writer wr)
Конструктор
|
XmlStreamWriter(XMLStreamWriter xw)
Конструктор
|
| Modifier and Type | Method and Description |
|---|---|
void |
addScnChangedEvent(ScnChangedEvent ev) |
Closeable |
addScnChangedListener(ScnChanedListener<XmlStreamWriter,Long> listener)
Добавляет подписчика на изменения
|
Closeable |
addScnChangedListener(ScnChanedListener<XmlStreamWriter,Long> listener,
boolean weakLink)
Добавляет подписчика на изменения
|
void |
cell(int columnIndex,
Object value,
ScnMark mark)
Данные ячейки строки из выборки
|
void |
columnBegin(int columnIndex,
ScnMark mark)
Начало колонки (мета данные)
|
void |
columnEnd()
Конец описания колонки (мета данные)
|
void |
columnProperty(String key,
Object value,
ScnMark mark)
Описание колонки (мета данные)
|
void |
dataBegin(ScnMark mark)
Начало данных выборки
|
void |
dataEnd()
Конец данных выборки
|
void |
error(Err err,
ScnMark mark)
Событие ошибки при чтении данных/получении выборки
|
void |
fireScnChanged(Long old,
Long cur) |
void |
fireScnChangedEvent(ScnChangedEvent event)
Уведомляет подписчиков о измении SCN минуя очередь уведомлений
|
void |
fireScnChangedEvents() |
void |
generatedKeysBegin(ScnMark scm)
Отмечает начало табличных данных сгенерируемых первичных ключей
|
void |
generatedKeysEnd()
Отмечает конец дпнных о первичных ключах
|
int |
getFlushEachMessages() |
int |
getFlushEachRows() |
ConcurrentLinkedQueue |
getScnChangedEventQueue() |
Set<ScnChanedListener<XmlStreamWriter,Long>> |
getScnChangedListeners()
Возвращает активных подписчиков
|
boolean |
hasScnChangedListener(ScnChanedListener<XmlStreamWriter,Long> listener)
Проверяет что указанный подписчик имеется в списках рассылки
|
boolean |
isGenerateScnMark()
Генерировать метку scn
|
boolean |
isMessageBuffer()
Буфферизировать сообщения (по умолчанию false).
|
boolean |
isOverwriteScnMark()
Переписывать метку SCN.
|
void |
message(Message mes)
Сообщения генерируемое базой при выборке данных (PRINT/DBMS_OUTPUT)
|
void |
metaBegin(ScnMark mark)
Начало описания табличных данных (мета данные)
|
void |
metaEnd()
Конец описания мета данных выборки
|
Pair<Long,Long> |
nextscn()
Генерирует новый номер SCN.
|
Pair<Long,Long> |
nextscn(boolean addEvent,
boolean fireEvent) |
protected ScnMark |
nextScnMark()
Генерирует новую метку SCN
|
void |
queryStreamBegin()
Отмечает начало записи SQL выборки.
|
void |
queryStreamEnd()
Отмечает конец записи SQL выборки
|
void |
removeAllScnChangedListeners()
Удаляет всех подписчиков
|
void |
removeScnChangedListener(ScnChanedListener<XmlStreamWriter,Long> listener)
Удаляет подписчика от уведомлений
|
void |
rowBegin(int rowIndex,
ScnMark mark)
Начало данных строки из выборки
|
void |
rowEnd()
Конец данных строки из выборки
|
Long |
scn()
Возвращает текущий номер изменений
|
void |
scn(Runnable run)
Выполняет код в блоку try/finally а затем рассылает уведомления.
|
void |
setFlushEachMessages(int flushEachMessages) |
void |
setFlushEachRows(int flushEachRows) |
void |
setGenerateScnMark(boolean generateScnMark)
Генерировать метку scn
|
void |
setMessageBuffer(boolean messageBuffer)
Буфферизировать сообщения (по умолчанию false).
|
void |
setOverwriteScnMark(boolean overwriteScnMark)
Переписывать метку SCN
|
void |
tableBegin(int tableIndex,
ScnMark mark)
Начало табличных данных
|
void |
tableEnd()
Конец табличных данных
|
void |
updateCount(int count,
ScnMark mark)
Отмечает кол-во созданых/измененных строк
|
protected void |
writeCell(int columnIndex,
Object value,
ScnMark mark) |
protected void |
writeColumnBegin(int columnIndex,
ScnMark mark)
мета данные колонки <column>
|
protected void |
writeColumnEnd() |
protected void |
writeColumnProperty(String key,
String value,
ScnMark mark)
Пишет свойство колонки в виде тэга <имя_свойства>значение</имя свойства>
|
protected void |
writeDataBegin(ScnMark mark) |
protected void |
writeDataEnd() |
protected void |
writeError(Err err,
ScnMark mark) |
protected void |
writeGeneratedKeysBegin(ScnMark mark)
Пишет информацию о автоматически генерируемых первичных ключах
<generated>
|
protected void |
writeGeneratedKeysEnd() |
protected void |
writeMessage(Message mes)
Пишет сообщение в XML поток
<message>
|
protected void |
writeMessages()
Пишет все накопленные сообщения из буфера одним блоком (<messages> сообщения </messages>) освобождая буфер
|
protected void |
writeMetaBegin(ScnMark mark)
Мета данные - <meta>
|
protected void |
writeMetaEnd() |
protected void |
writeQueryStreamBegin()
Начало xml потока - тэг <query>
|
protected void |
writeQueryStreamEnd() |
protected void |
writeRowBegin(int rowIndex,
ScnMark mark) |
protected void |
writeRowEnd() |
protected void |
writeTableBegin(int tableIndex,
ScnMark mark)
Начало табличных данных - <resultSet>
|
protected void |
writeTableEnd() |
protected void |
writeUpdateCount(int count,
ScnMark mark) |
getTypeCast, setTypeCastprotected FormatXMLWriter out
protected final LongScnChangedSupport<XmlStreamWriter> scn
protected boolean overwriteScnMark
public boolean generateScnMark
protected volatile int currentRowIndex
protected int flushEachRows
protected boolean messageBuffer
protected final ConcurrentLinkedQueue<Message> messages
protected volatile int flushEachMessages
protected volatile int messageIndex
public XmlStreamWriter(XMLStreamWriter xw)
xw - поток для записи XMLpublic XmlStreamWriter(FormatXMLWriter xw)
xw - поток для записи XMLpublic XmlStreamWriter(Writer wr)
wr - поток для записи XMLpublic XmlStreamWriter(OutputStream out, Charset cs)
out - поток для записи XMLcs - кодировкаpublic XmlStreamWriter(OutputStream out, String cs)
out - поток для записи XMLcs - кодировкаpublic Long scn()
ScnChangedscn in interface ScnChanged<XmlStreamWriter,Long>public Pair<Long,Long> nextscn()
LongScnChangedSupport.nextscn()public void scn(Runnable run)
run - блокуLongScnChangedSupport.scn(java.lang.Runnable)public boolean hasScnChangedListener(ScnChanedListener<XmlStreamWriter,Long> listener)
ScnChangedhasScnChangedListener in interface ScnChanged<XmlStreamWriter,Long>listener - подписчикpublic Set<ScnChanedListener<XmlStreamWriter,Long>> getScnChangedListeners()
ScnChangedgetScnChangedListeners in interface ScnChanged<XmlStreamWriter,Long>public Closeable addScnChangedListener(ScnChanedListener<XmlStreamWriter,Long> listener)
ScnChangedaddScnChangedListener in interface ScnChanged<XmlStreamWriter,Long>listener - подписчикpublic Closeable addScnChangedListener(ScnChanedListener<XmlStreamWriter,Long> listener, boolean weakLink)
ScnChangedaddScnChangedListener in interface ScnChanged<XmlStreamWriter,Long>listener - подписчикweakLink - true - добавить подписчика на weak ссылку / false - как hard ссылкуpublic void removeScnChangedListener(ScnChanedListener<XmlStreamWriter,Long> listener)
ScnChangedremoveScnChangedListener in interface ScnChanged<XmlStreamWriter,Long>listener - подписчикpublic void removeAllScnChangedListeners()
ScnChangedremoveAllScnChangedListeners in interface ScnChanged<XmlStreamWriter,Long>public void fireScnChangedEvent(ScnChangedEvent event)
event - уведомлениеpublic ConcurrentLinkedQueue getScnChangedEventQueue()
public void addScnChangedEvent(ScnChangedEvent ev)
public void fireScnChangedEvents()
protected ScnMark nextScnMark()
public boolean isOverwriteScnMark()
При значении overwriteScnMark=true и generateScnMark=true - создает метку, если она указана - то переопределяет ее
public void setOverwriteScnMark(boolean overwriteScnMark)
overwriteScnMark - true - переопределять метку SCNisOverwriteScnMark()public boolean isGenerateScnMark()
isOverwriteScnMark()public void setGenerateScnMark(boolean generateScnMark)
generateScnMark - true - генерировать метку scnisOverwriteScnMark()public void queryStreamBegin()
QueryStream
В процессе работы вызываются все остальные методы, послединй меотд обычно должен быть queryStreamEnd.
Возможна ситуация, что в процессе выборки события message и error будут происходить из другого трэда ОС.
queryStreamBegin in interface QueryStreamQueryStream.queryStreamEnd()protected void writeQueryStreamBegin()
throws XMLStreamException
XMLStreamException - ошибка I/Opublic void tableBegin(int tableIndex,
ScnMark mark)
QueryStreamtableBegin in interface QueryStreamtableIndex - индекс табличных данных, 0 - первая выборка, возможно более одной выборки табличных данных в результате запросаmark - отмета SCNprotected void writeTableBegin(int tableIndex,
ScnMark mark)
throws XMLStreamException
tableIndex - индексmark - отметкаXMLStreamException - Ошибка I/Opublic void metaBegin(ScnMark mark)
QueryStreammetaBegin in interface QueryStreammark - отметка SCNprotected void writeMetaBegin(ScnMark mark) throws XMLStreamException
mark - метка scnXMLStreamException - Ошибка I/Opublic void columnBegin(int columnIndex,
ScnMark mark)
QueryStreamcolumnBegin in interface QueryStreamcolumnIndex - индекс колонкиmark - отметка SCNprotected void writeColumnBegin(int columnIndex,
ScnMark mark)
throws XMLStreamException
columnIndex - индекс колонкиmark - меткаXMLStreamException - Ошибка I/Opublic void columnProperty(String key, Object value, ScnMark mark)
QueryStreamcolumnProperty in interface QueryStreamkey - имя свойстваvalue - значение свойстваmark - отметка SCNprotected void writeColumnProperty(String key, String value, ScnMark mark) throws XMLStreamException
key - имя свойства - должно начинаться с буквыvalue - значениеmark - метка scnXMLStreamException - Ошибка I/Opublic void columnEnd()
QueryStreamcolumnEnd in interface QueryStreamprotected void writeColumnEnd()
throws XMLStreamException
XMLStreamExceptionpublic void metaEnd()
QueryStreammetaEnd in interface QueryStreamprotected void writeMetaEnd()
throws XMLStreamException
XMLStreamExceptionpublic void dataBegin(ScnMark mark)
QueryStreamdataBegin in interface QueryStreammark - отметка SCNprotected void writeDataBegin(ScnMark mark) throws XMLStreamException
XMLStreamExceptionpublic void rowBegin(int rowIndex,
ScnMark mark)
QueryStreamrowBegin in interface QueryStreamrowIndex - иднекс строкиmark - отметка SCNprotected void writeRowBegin(int rowIndex,
ScnMark mark)
throws XMLStreamException
XMLStreamExceptionpublic void cell(int columnIndex,
Object value,
ScnMark mark)
QueryStreamcell in interface QueryStreamcolumnIndex - индекс колонкиvalue - значениеmark - отметка SCNprotected void writeCell(int columnIndex,
Object value,
ScnMark mark)
throws XMLStreamException
XMLStreamExceptionpublic void rowEnd()
QueryStreamrowEnd in interface QueryStreampublic int getFlushEachRows()
public void setFlushEachRows(int flushEachRows)
protected void writeRowEnd()
throws XMLStreamException
XMLStreamExceptionpublic void dataEnd()
QueryStreamdataEnd in interface QueryStreamprotected void writeDataEnd()
throws XMLStreamException
XMLStreamExceptionpublic void tableEnd()
QueryStreamtableEnd in interface QueryStreamprotected void writeTableEnd()
throws XMLStreamException
XMLStreamExceptionpublic void queryStreamEnd()
QueryStreamqueryStreamEnd in interface QueryStreamprotected void writeQueryStreamEnd()
throws XMLStreamException
XMLStreamExceptionpublic void updateCount(int count,
ScnMark mark)
QueryStreamupdateCount in interface QueryStreamcount - кол-во строкmark - отметка SCNprotected void writeUpdateCount(int count,
ScnMark mark)
throws XMLStreamException
XMLStreamExceptionpublic boolean isMessageBuffer()
если включенна буферизация, то все сообщения будут записаны в один блок <messages>
writeMessages()public void setMessageBuffer(boolean messageBuffer)
messageBuffer - true - буфферизировать сообщенияpublic void message(Message mes)
QueryStreammessage in interface QueryStreammes - сообщениеpublic int getFlushEachMessages()
public void setFlushEachMessages(int flushEachMessages)
protected void writeMessage(Message mes) throws XMLStreamException
mes - сообщениеXMLStreamException - ошибка записиprotected void writeMessages()
throws XMLStreamException
XMLStreamException - Ошибка I/Opublic void error(Err err, ScnMark mark)
QueryStreamerror in interface QueryStreamerr - описание ошибкиmark - отметка SCNprotected void writeError(Err err, ScnMark mark) throws XMLStreamException
XMLStreamExceptionpublic void generatedKeysBegin(ScnMark scm)
QueryStreamgeneratedKeysBegin in interface QueryStreamscm - отметка SCNprotected void writeGeneratedKeysBegin(ScnMark mark) throws XMLStreamException
mark - отметка SCNXMLStreamException - Ошибка I/Opublic void generatedKeysEnd()
QueryStreamgeneratedKeysEnd in interface QueryStreamprotected void writeGeneratedKeysEnd()
throws XMLStreamException
XMLStreamExceptionCopyright © 2019. All rights reserved.