com.tobesoft.xplatform.tx.impl
Class PlatformXmlDataDeserializer

java.lang.Object
  extended byorg.xml.sax.helpers.DefaultHandler
      extended bycom.tobesoft.xplatform.tx.impl.PlatformXmlDataDeserializer
All Implemented Interfaces:
org.xml.sax.ContentHandler, DataDeserializer, org.xml.sax.DTDHandler, org.xml.sax.EntityResolver, org.xml.sax.ErrorHandler

public class PlatformXmlDataDeserializer
extends org.xml.sax.helpers.DefaultHandler
implements DataDeserializer

InputStream 또는 Reader로부터 XPlatform에서 정의된 XML 형식의 데이터(stream)를 읽고, PlatformData으로 변환한다.

Author:
Choi, Jongkwan

Field Summary
protected static int INDEX_DATA_CELL
          DataSet의 데이터 진행 상태
protected static int INDEX_DATA_ROW
          DataSet의 행(row) 진행 상태
protected static int INDEX_SAVED_DATA_CELL
          DataSet의 원본 데이터 진행 상태
protected static int INDEX_SAVED_DATA_ROW
          DataSet의 원본 행(row) 진행 상태
protected static int INDEX_UNDEFINED
          미정의 상태
protected static int INDEX_VARIABLE
          Variable의 데이터 진행 상태
 
Constructor Summary
PlatformXmlDataDeserializer()
          기본 생성자이다.
 
Method Summary
protected  void addCurrentValue(char[] ch, int start, int length)
          현재 진행중인 데이터에 값을 추가한다.
 void characters(char[] ch, int start, int length)
          데이터를 설정한다.
protected  void clearCurrentValue()
          현재 진행중인 데이터를 삭제한다.
protected  void endData()
          Root 종료 태그(tag)에 대한 기능을 수행한다.
protected  void endDataSet()
          Dataset 종료 태그(tag)에 대한 기능을 수행한다.
protected  void endDataSetCell()
          Col 종료 태그(tag)에 대한 기능을 수행한다.
protected  void endDataSetColumnList()
          ColumnInfo 종료 태그(tag)에 대한 기능을 수행한다.
protected  void endDataSetConstantColumn()
          ConstColumn 종료 태그(tag)에 대한 기능을 수행한다.
protected  void endDataSetDefaultColumn()
          Column 종료 태그(tag)에 대한 기능을 수행한다.
protected  void endDataSetRow()
          Row 종료 태그(tag)에 대한 기능을 수행한다.
protected  void endDataSetRowList()
          Rows 종료 태그(tag)에 대한 기능을 수행한다.
protected  void endDataSetSavedRow()
          OrgRow 종료 태그(tag)에 대한 기능을 수행한다.
 void endElement(java.lang.String uri, java.lang.String localName, java.lang.String qName)
          종료 태그(tag)에 의해 기능을 수행한다.
protected  void endVariable()
          Parameter 종료 태그(tag)에 대한 기능을 수행한다.
protected  void endVariableList()
          Parameters 종료 태그(tag)에 대한 기능을 수행한다.
protected  java.lang.String getCurrentColumnName()
          현재 진행중인 열(column)의 식별자(name)을 반환한다.
protected  DataSet getCurrentDataSet()
          현재 진행중인 DataSet을 반환한다.
protected  int[] getCurrentDataTypes()
          현재 진행중인 DataSet의 열(column)들의 변환전 데이터 형식(dataType)을 반환한다.
protected  int getCurrentIndex()
          현재 진행 상태를 반환한다.
protected  boolean getCurrentIsEmpty()
          현재 진행중인 데이터의 null 값 여부를 반환한다.
protected  java.lang.String getCurrentRowType()
          현재 진행중인 행(row)의 형식(type)을 반환한다.
protected  java.lang.String getCurrentValue()
          현재 진행중인 데이터를 반환한다.
protected  Variable getCurrentVariable()
          현재 진행중인 Variable를 반환한다.
protected  PlatformData getData()
          분석된 PlatformData를 반환한다.
protected  DataTypeChanger getDataTypeChanger()
          DataTypeChanger를 반환한다.
protected  int[] getSourceDataTypes(DataSet ds, DataTypeChanger dataTypeChanger)
          DataSet 열(column)들의 변환전 데이터 형식(dataType)을 반환한다.
protected  PlatformData read(org.xml.sax.InputSource source, DataTypeChanger dataTypeChanger)
          SAXParser를 이용하여, InputSourcePlatformData으로 변환한다.
 PlatformData readData(java.io.InputStream in, DataTypeChanger dataTypeChanger, java.lang.String charset)
          InputStream로부터 XML 형식의 데이터(stream)를 읽고, PlatformData으로 변환한다.
 PlatformData readData(java.io.Reader in, DataTypeChanger dataTypeChanger, java.lang.String charset)
          Reader로부터 XML 형식의 데이터(stream)를 읽고, PlatformData으로 변환한다.
protected  void setCurrentColumnName(java.lang.String columnName)
          현재 진행중인 열(column)의 식별자(name)을 설정한다.
protected  void setCurrentDataSet(DataSet ds)
          현재 진행중인 DataSet을 설정한다.
protected  void setCurrentDataTypes(int[] dataTypes)
          현재 진행중인 DataSet의 열(column)들의 변환전 데이터 형식(dataType)을 설정한다.
protected  void setCurrentIndex(int index)
          현재 진행 상태를 설정한다.
protected  void setCurrentIsEmpty(boolean isEmpty)
          현재 진행중인 데이터의 null 값 여부를 설정한다.
protected  void setCurrentRowType(java.lang.String rowType)
          현재 진행중인 행(row)의 형식(type)을 설정한다.
protected  void setCurrentVariable(Variable var)
          현재 진행중인 Variable를 설정한다.
protected  void setData(PlatformData data)
          분석된 PlatformData를 설정한다.
protected  void setDataTypeChanger(DataTypeChanger dataTypeChanger)
          DataTypeChanger를 설정한다.
 void setProperty(java.lang.String key, java.lang.Object value)
          속성값을 설정한다.
protected  void startData()
          Root 시작 태그(tag)에 대한 기능을 수행한다.
protected  void startDataSet(org.xml.sax.Attributes attributes)
          Dataset 시작 태그(tag)에 대한 기능을 수행한다.
protected  void startDataSetCell(org.xml.sax.Attributes attributes)
          Col 시작 태그(tag)에 대한 기능을 수행한다.
protected  void startDataSetConstantColumn(org.xml.sax.Attributes attributes)
          ConstColumn 시작 태그(tag)에 대한 기능을 수행한다.
protected  void startDataSetDefaultColumn(org.xml.sax.Attributes attributes)
          Column 시작 태그(tag)에 대한 기능을 수행한다.
protected  void startDataSetRow(org.xml.sax.Attributes attributes)
          Row 시작 태그(tag)에 대한 기능을 수행한다.
protected  void startDataSetRowList(org.xml.sax.Attributes attributes)
          Rows 시작 태그(tag)에 대한 기능을 수행한다.
protected  void startDataSetSavedRow(org.xml.sax.Attributes attributes)
          OrgRow 시작 태그(tag)에 대한 기능을 수행한다.
 void startElement(java.lang.String uri, java.lang.String localName, java.lang.String qName, org.xml.sax.Attributes attributes)
          시작 태그(tag)에 의해 기능을 수행한다.
protected  void startVariable(org.xml.sax.Attributes attributes)
          Parameter 시작 태그(tag)에 대한 기능을 수행한다.
protected  void writeValueToFile(byte[] value, java.io.File file)
          데이터를 파일로 출력한다.
 
Methods inherited from class org.xml.sax.helpers.DefaultHandler
endDocument, endPrefixMapping, error, fatalError, ignorableWhitespace, notationDecl, processingInstruction, resolveEntity, setDocumentLocator, skippedEntity, startDocument, startPrefixMapping, unparsedEntityDecl, warning
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

INDEX_UNDEFINED

protected static final int INDEX_UNDEFINED
미정의 상태

See Also:
Constant Field Values

INDEX_VARIABLE

protected static final int INDEX_VARIABLE
Variable의 데이터 진행 상태

See Also:
Constant Field Values

INDEX_DATA_ROW

protected static final int INDEX_DATA_ROW
DataSet의 행(row) 진행 상태

See Also:
Constant Field Values

INDEX_DATA_CELL

protected static final int INDEX_DATA_CELL
DataSet의 데이터 진행 상태

See Also:
Constant Field Values

INDEX_SAVED_DATA_ROW

protected static final int INDEX_SAVED_DATA_ROW
DataSet의 원본 행(row) 진행 상태

See Also:
Constant Field Values

INDEX_SAVED_DATA_CELL

protected static final int INDEX_SAVED_DATA_CELL
DataSet의 원본 데이터 진행 상태

See Also:
Constant Field Values
Constructor Detail

PlatformXmlDataDeserializer

public PlatformXmlDataDeserializer()
기본 생성자이다.

Method Detail

setProperty

public void setProperty(java.lang.String key,
                        java.lang.Object value)
속성값을 설정한다.

Specified by:
setProperty in interface DataDeserializer
Parameters:
key - 속성명
value - 속성값

readData

public PlatformData readData(java.io.InputStream in,
                             DataTypeChanger dataTypeChanger,
                             java.lang.String charset)
                      throws PlatformException
InputStream로부터 XML 형식의 데이터(stream)를 읽고, PlatformData으로 변환한다.

Specified by:
readData in interface DataDeserializer
Parameters:
in - InputStream
dataTypeChanger - DataTypeChanger
charset - 문자셋
Returns:
PlatformData
Throws:
PlatformException

readData

public PlatformData readData(java.io.Reader in,
                             DataTypeChanger dataTypeChanger,
                             java.lang.String charset)
                      throws PlatformException
Reader로부터 XML 형식의 데이터(stream)를 읽고, PlatformData으로 변환한다.

Specified by:
readData in interface DataDeserializer
Parameters:
in - Reader
dataTypeChanger - DataTypeChanger
charset - 문자셋
Returns:
PlatformData
Throws:
PlatformException

getCurrentIndex

protected int getCurrentIndex()
현재 진행 상태를 반환한다.

Returns:
진행 상태
See Also:
INDEX_UNDEFINED, INDEX_VARIABLE, INDEX_DATA_ROW, INDEX_DATA_CELL, INDEX_SAVED_DATA_ROW, INDEX_SAVED_DATA_CELL

setCurrentIndex

protected void setCurrentIndex(int index)
현재 진행 상태를 설정한다.

Parameters:
index - 진행 상태

getCurrentVariable

protected Variable getCurrentVariable()
현재 진행중인 Variable를 반환한다.

Returns:
Variable

setCurrentVariable

protected void setCurrentVariable(Variable var)
현재 진행중인 Variable를 설정한다.

Parameters:
var - Variable

getCurrentDataSet

protected DataSet getCurrentDataSet()
현재 진행중인 DataSet을 반환한다.

Returns:
DataSet

setCurrentDataSet

protected void setCurrentDataSet(DataSet ds)
현재 진행중인 DataSet을 설정한다.

Parameters:
ds - DataSet

getCurrentDataTypes

protected int[] getCurrentDataTypes()
현재 진행중인 DataSet의 열(column)들의 변환전 데이터 형식(dataType)을 반환한다.

Returns:
DataSet 열(column)들의 변환전 데이터 형식(dataType)

setCurrentDataTypes

protected void setCurrentDataTypes(int[] dataTypes)
현재 진행중인 DataSet의 열(column)들의 변환전 데이터 형식(dataType)을 설정한다.

Parameters:
dataTypes - DataSet 열(column)들의 변환전 데이터 형식(dataType)

getCurrentRowType

protected java.lang.String getCurrentRowType()
현재 진행중인 행(row)의 형식(type)을 반환한다.

Returns:
행(row)의 형식(type)

setCurrentRowType

protected void setCurrentRowType(java.lang.String rowType)
현재 진행중인 행(row)의 형식(type)을 설정한다.

Parameters:
rowType - 행(row)의 형식(type)

getCurrentColumnName

protected java.lang.String getCurrentColumnName()
현재 진행중인 열(column)의 식별자(name)을 반환한다.

Returns:
열(column)의 식별자(name)

setCurrentColumnName

protected void setCurrentColumnName(java.lang.String columnName)
현재 진행중인 열(column)의 식별자(name)을 설정한다.

Parameters:
columnName - 열(column)의 식별자(name)

getCurrentIsEmpty

protected boolean getCurrentIsEmpty()
현재 진행중인 데이터의 null 값 여부를 반환한다.

Returns:
데이터의 null 값 여부

setCurrentIsEmpty

protected void setCurrentIsEmpty(boolean isEmpty)
현재 진행중인 데이터의 null 값 여부를 설정한다.

Parameters:
isEmpty - 데이터의 null 값 여부

getCurrentValue

protected java.lang.String getCurrentValue()
현재 진행중인 데이터를 반환한다.

Returns:
데이터

addCurrentValue

protected void addCurrentValue(char[] ch,
                               int start,
                               int length)
현재 진행중인 데이터에 값을 추가한다.

Parameters:
ch - char 배열
start - 시작 위치(index)
length - 길이

clearCurrentValue

protected void clearCurrentValue()
현재 진행중인 데이터를 삭제한다.


getData

protected PlatformData getData()
분석된 PlatformData를 반환한다.

Returns:
PlatformData

setData

protected void setData(PlatformData data)
분석된 PlatformData를 설정한다.

Parameters:
data - PlatformData

getDataTypeChanger

protected DataTypeChanger getDataTypeChanger()
DataTypeChanger를 반환한다.

Returns:
DataTypeChanger

setDataTypeChanger

protected void setDataTypeChanger(DataTypeChanger dataTypeChanger)
DataTypeChanger를 설정한다.

Parameters:
dataTypeChanger - DataTypeChanger

read

protected PlatformData read(org.xml.sax.InputSource source,
                            DataTypeChanger dataTypeChanger)
                     throws PlatformException
SAXParser를 이용하여, InputSourcePlatformData으로 변환한다.

Parameters:
source - InputSource
dataTypeChanger - DataTypeChanger
Throws:
PlatformException

startElement

public void startElement(java.lang.String uri,
                         java.lang.String localName,
                         java.lang.String qName,
                         org.xml.sax.Attributes attributes)
                  throws org.xml.sax.SAXException
시작 태그(tag)에 의해 기능을 수행한다. 각 태그(tag)에 대한 내부적으로 호출되는 메소드(method)는 다음과 같다.
태그(tag) 메소드(method) 설 명
Root startData() PlatformData 생성
Parameters 호출안됨  
Parameter startVariable(Attributes) Variable 생성
Dataset startDataSet(Attributes) DataSet 생성
ColumnInfo 호출안됨  
ConstColumn startDataSetConstantColumn(Attributes) 상수값을 가진 DataSet의 열(column) 추가
Column startDataSetDefaultColumn(Attributes) 일반적인 DataSet의 열(column) 추가
Rows startDataSetRowList(Attributes) DataTypeChanger 호출
Row startDataSetRow(Attributes) DataSet의 행(row) 추가
OrgRow startDataSetSavedRow(Attributes) DataSet의 원본 데이터 설정 준비
Col startDataSetCell(Attributes) DataSet의 데이터 설정 준비

Specified by:
startElement in interface org.xml.sax.ContentHandler
Throws:
org.xml.sax.SAXException

endElement

public void endElement(java.lang.String uri,
                       java.lang.String localName,
                       java.lang.String qName)
                throws org.xml.sax.SAXException
종료 태그(tag)에 의해 기능을 수행한다. 각 태그(tag)에 대한 내부적으로 호출되는 메소드(method)는 다음과 같다.
태그(tag) 메소드(method) 설 명
Root endData() 진행 상태 변경
Parameters endVariableList() 진행 상태 변경
Parameter endVariable() Variable의 데이터 설정, VariablePlatformData에 추가, 진행 상태 변경
Dataset endDataSet() DataSetPlatformData에 추가, 진행 상태 변경
ColumnInfo endDataSetColumnList() 진행 상태 변경
ConstColumn endDataSetConstantColumn() 진행 상태 변경
Column endDataSetDefaultColumn() 진행 상태 변경
Rows endDataSetRowList 진행 상태 변경
Row endDataSetRow() DataSet 행(row)의 형식(type) 변경, 진행 상태 변경
OrgRow endDataSetSavedRow() 진행 상태 변경
Col endDataSetCell() DataSet의 데이터 설정, 진행 상태 변경

Specified by:
endElement in interface org.xml.sax.ContentHandler
Throws:
org.xml.sax.SAXException

characters

public void characters(char[] ch,
                       int start,
                       int length)
                throws org.xml.sax.SAXException
데이터를 설정한다.

Specified by:
characters in interface org.xml.sax.ContentHandler
Throws:
org.xml.sax.SAXException

startData

protected void startData()
Root 시작 태그(tag)에 대한 기능을 수행한다. PlatformData를 생성한다.


endData

protected void endData()
Root 종료 태그(tag)에 대한 기능을 수행한다. 진행 상태를 변경한다.


endVariableList

protected void endVariableList()
Parameters 종료 태그(tag)에 대한 기능을 수행한다. 진행 상태를 변경한다.


startVariable

protected void startVariable(org.xml.sax.Attributes attributes)
Parameter 시작 태그(tag)에 대한 기능을 수행한다. Variable을 생성한다.


endVariable

protected void endVariable()
Parameter 종료 태그(tag)에 대한 기능을 수행한다. Variable의 데이터를 설정하고, PlatformData에 추가한다.


startDataSet

protected void startDataSet(org.xml.sax.Attributes attributes)
Dataset 시작 태그(tag)에 대한 기능을 수행한다. DataSet을 생성한다.


endDataSet

protected void endDataSet()
Dataset 종료 태그(tag)에 대한 기능을 수행한다. DataSetPlatformData에 추가한다.


endDataSetColumnList

protected void endDataSetColumnList()
ColumnInfo 종료 태그(tag)에 대한 기능을 수행한다. 진행 상태를 변경한다.


startDataSetDefaultColumn

protected void startDataSetDefaultColumn(org.xml.sax.Attributes attributes)
Column 시작 태그(tag)에 대한 기능을 수행한다. DataSet의 일반적인 열(column)을 추가한다.


endDataSetDefaultColumn

protected void endDataSetDefaultColumn()
Column 종료 태그(tag)에 대한 기능을 수행한다. 진행 상태를 변경한다.


startDataSetConstantColumn

protected void startDataSetConstantColumn(org.xml.sax.Attributes attributes)
ConstColumn 시작 태그(tag)에 대한 기능을 수행한다. DataSet의 상수값을 가진 열(column)을 추가한다.


endDataSetConstantColumn

protected void endDataSetConstantColumn()
ConstColumn 종료 태그(tag)에 대한 기능을 수행한다. 진행 상태를 변경한다.


startDataSetRowList

protected void startDataSetRowList(org.xml.sax.Attributes attributes)
Rows 시작 태그(tag)에 대한 기능을 수행한다. DataTypeChanger를 호출한다.


endDataSetRowList

protected void endDataSetRowList()
Rows 종료 태그(tag)에 대한 기능을 수행한다. 진행 상태를 변경한다.


startDataSetRow

protected void startDataSetRow(org.xml.sax.Attributes attributes)
Row 시작 태그(tag)에 대한 기능을 수행한다. DataSet의 행(row)을 추가한다.


endDataSetRow

protected void endDataSetRow()
Row 종료 태그(tag)에 대한 기능을 수행한다. DataSet 행(row)의 형식(type)을 변경한다.


startDataSetSavedRow

protected void startDataSetSavedRow(org.xml.sax.Attributes attributes)
OrgRow 시작 태그(tag)에 대한 기능을 수행한다. 진행 상태를 변경한다.


endDataSetSavedRow

protected void endDataSetSavedRow()
OrgRow 종료 태그(tag)에 대한 기능을 수행한다. 진행 상태를 변경한다.


startDataSetCell

protected void startDataSetCell(org.xml.sax.Attributes attributes)
Col 시작 태그(tag)에 대한 기능을 수행한다. DataSet 열(column)의 식별자를 설정한다.


endDataSetCell

protected void endDataSetCell()
Col 종료 태그(tag)에 대한 기능을 수행한다. DataSet의 데이터를 설정한다.


getSourceDataTypes

protected int[] getSourceDataTypes(DataSet ds,
                                   DataTypeChanger dataTypeChanger)
DataSet 열(column)들의 변환전 데이터 형식(dataType)을 반환한다.

Parameters:
ds - DataSet
dataTypeChanger - DataTypeChanger
Returns:
DataSet 열(column)들의 변환전 데이터 형식(dataType)

writeValueToFile

protected void writeValueToFile(byte[] value,
                                java.io.File file)
                         throws java.io.IOException
데이터를 파일로 출력한다.

Parameters:
value - 데이터
file - 파일
Throws:
java.io.IOException


Copyright © 2000-2011 TOBESOFT Co., Ltd.