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
  • Field Details

  • 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 - поток для записи XML
      cs - кодировка
    • XmlStreamWriter

      public XmlStreamWriter​(java.io.OutputStream out, java.lang.String cs)
      Конструктор
      Parameters:
      out - поток для записи XML
      cs - кодировка
  • Method Details

    • nextScnMark

      protected ScnMark 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:
      queryStreamBegin in interface QueryStream
      See Also:
      QueryStream.queryStreamEnd()
    • writeQueryStreamBegin

      protected void writeQueryStreamBegin() throws javax.xml.stream.XMLStreamException
      Начало xml потока - тэг <query>
      Throws:
      javax.xml.stream.XMLStreamException - ошибка I/O
    • tableBegin

      public void tableBegin​(int tableIndex, ScnMark mark)
      Description copied from interface: QueryStream
      Начало табличных данных
      Specified by:
      tableBegin in interface QueryStream
      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

      public void metaBegin​(ScnMark mark)
      Description copied from interface: QueryStream
      Начало описания табличных данных (мета данные)
      Specified by:
      metaBegin in interface QueryStream
      Parameters:
      mark - отметка SCN
    • writeMetaBegin

      protected void writeMetaBegin​(ScnMark mark) throws javax.xml.stream.XMLStreamException
      Мета данные - <meta>
      Parameters:
      mark - метка scn
      Throws:
      javax.xml.stream.XMLStreamException - Ошибка I/O
    • columnBegin

      public void columnBegin​(int columnIndex, ScnMark mark)
      Description copied from interface: QueryStream
      Начало колонки (мета данные)
      Specified by:
      columnBegin in interface QueryStream
      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

      public void columnProperty​(java.lang.String key, java.lang.Object value, ScnMark mark)
      Description copied from interface: QueryStream
      Описание колонки (мета данные)
      Specified by:
      columnProperty in interface QueryStream
      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:
      columnEnd in interface QueryStream
    • 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:
      metaEnd in interface QueryStream
    • writeMetaEnd

      protected void writeMetaEnd() throws javax.xml.stream.XMLStreamException
      Throws:
      javax.xml.stream.XMLStreamException
    • dataBegin

      public void dataBegin​(ScnMark mark)
      Description copied from interface: QueryStream
      Начало данных выборки
      Specified by:
      dataBegin in interface QueryStream
      Parameters:
      mark - отметка SCN
    • writeDataBegin

      protected void writeDataBegin​(ScnMark mark) throws javax.xml.stream.XMLStreamException
      Throws:
      javax.xml.stream.XMLStreamException
    • rowBegin

      public void rowBegin​(int rowIndex, ScnMark mark)
      Description copied from interface: QueryStream
      Начало данных строки из выборки
      Specified by:
      rowBegin in interface QueryStream
      Parameters:
      rowIndex - иднекс строки
      mark - отметка SCN
    • writeRowBegin

      protected void writeRowBegin​(int rowIndex, ScnMark mark) throws javax.xml.stream.XMLStreamException
      Throws:
      javax.xml.stream.XMLStreamException
    • cell

      public void cell​(int columnIndex, java.lang.Object value, ScnMark mark)
      Description copied from interface: QueryStream
      Данные ячейки строки из выборки
      Specified by:
      cell in interface QueryStream
      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:
      rowEnd in interface QueryStream
    • 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:
      dataEnd in interface QueryStream
    • 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:
      tableEnd in interface QueryStream
    • 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:
      queryStreamEnd in interface QueryStream
    • writeQueryStreamEnd

      protected void writeQueryStreamEnd() throws javax.xml.stream.XMLStreamException
      Throws:
      javax.xml.stream.XMLStreamException
    • updateCount

      public void updateCount​(int count, ScnMark mark)
      Description copied from interface: QueryStream
      Отмечает кол-во созданых/измененных строк
      Specified by:
      updateCount in interface QueryStream
      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

      public void message​(Message mes)
      Description copied from interface: QueryStream
      Сообщения генерируемое базой при выборке данных (PRINT/DBMS_OUTPUT)
      Specified by:
      message in interface QueryStream
      Parameters:
      mes - сообщение
    • getFlushEachMessages

      public int getFlushEachMessages()
    • setFlushEachMessages

      public void setFlushEachMessages​(int flushEachMessages)
    • writeMessage

      protected void writeMessage​(Message mes) throws javax.xml.stream.XMLStreamException
      Пишет сообщение в 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

      public void error​(Err err, ScnMark mark)
      Description copied from interface: QueryStream
      Событие ошибки при чтении данных/получении выборки
      Specified by:
      error in interface QueryStream
      Parameters:
      err - описание ошибки
      mark - отметка SCN
    • writeError

      protected void writeError​(Err err, ScnMark mark) throws javax.xml.stream.XMLStreamException
      Throws:
      javax.xml.stream.XMLStreamException
    • generatedKeysBegin

      public void generatedKeysBegin​(ScnMark scm)
      Description copied from interface: QueryStream
      Отмечает начало табличных данных сгенерируемых первичных ключей
      Specified by:
      generatedKeysBegin in interface QueryStream
      Parameters:
      scm - отметка SCN
    • writeGeneratedKeysBegin

      protected void writeGeneratedKeysBegin​(ScnMark mark) throws javax.xml.stream.XMLStreamException
      Пишет информацию о автоматически генерируемых первичных ключах <generated>
      Parameters:
      mark - отметка SCN
      Throws:
      javax.xml.stream.XMLStreamException - Ошибка I/O
    • generatedKeysEnd

      public void generatedKeysEnd()
      Description copied from interface: QueryStream
      Отмечает конец дпнных о первичных ключах
      Specified by:
      generatedKeysEnd in interface QueryStream
    • writeGeneratedKeysEnd

      protected void writeGeneratedKeysEnd() throws javax.xml.stream.XMLStreamException
      Throws:
      javax.xml.stream.XMLStreamException