kr.co.hit.live.util
Class ValueObjectUtil

java.lang.Object
  extended by kr.co.hit.live.util.ValueObjectUtil

public class ValueObjectUtil
extends Object

ValueObject를 생성하는 다양한 Utility 기능을 제공한다.

Version:
3.0
Author:
김형도

Constructor Summary
ValueObjectUtil()
           
 
Method Summary
static void addColumn(ValueObject pVO, Map<String,Object> columns)
          ValueObject의 모든 row에 Map 객체에 담긴 값들을 컬럼으로 추가한다.
static void addColumn(ValueObject pVO, String key, Object value)
          ValueObject의 모든 row에 컬럼을 추가한다.
static ValueObject build(byte[] data, String[] fieldKeys, int[] flength)
           byte[]로 부터 문자열을 읽어들여(시스템의 default encoding을 사용) 일정 길이(byte 수)를 기준으로 ValueObject 객체를 생성한다.
static ValueObject build(byte[] data, String[] fieldKeys, String token)
           주어진 byte[]에서 문자열을 읽어들여(시스템의 default encoding을 사용) 필드 구분자로 잘라내어 ValueObject 객체를 생성한다.
static ValueObject build(byte[] data, String[] fieldKeys, String token, int max)
           주어진 byte[]에서 문자열을 읽어들여(시스템의 default encoding을 사용) 필드 구분자로 잘라내어 ValueObject 객체를 생성한다.
static ValueObject build(File file, String[] fieldKeys, int[] flength)
           주어진 파일에서 문자열을 읽어들여(시스템의 default encoding을 사용) 일정 길이(byte 수)를 기준으로 ValueObject 객체를 생성한다.
static ValueObject build(File file, String[] fieldKeys, String token)
           주어진 파일에서 문자열을 읽어 들여 필드 구분자로 잘라내어 ValueObject 객체를 생성한다.
static ValueObject build(InputStream is, String[] fieldKeys, int[] flength)
           주어진 InputStream으로부터 문자열을 읽어들여(시스템의 default encoding을 사용) 일정 길이(byte 수)를 기준으로 ValueObject 객체를 생성한다.
static ValueObject build(InputStream is, String[] fieldKeys, String token)
           주어진 InputStream에서 문자열을 읽어들여(시스템의 default encoding을 사용) 필드 구분자로 잘라내어 ValueObject 객체를 생성한다.
static ValueObject build(InputStream is, String[] fieldKeys, String token, int max)
           주어진 InputStream에서 문자열을 읽어들여(시스템의 default encoding을 사용) 필드 구분자로 잘라내어 ValueObject 객체를 생성한다.
static ValueObject build(Object from)
          주어진 객체로부터 ValueObject를 생성하여 반환한다.
static ValueObject build(Reader input, String[] fieldKeys, int[] flength)
           주어진 Reader에서 문자열을 읽어들여(시스템의 default encoding을 사용) 일정 길이(byte 수)를 기준으로 ValueObject 객체를 생성한다.
static ValueObject build(Reader input, String[] fieldKeys, int[] flength, int max)
           주어진 Reader에서 문자열을 읽어 들여 일정 길이(byte 수)로 ValueObject 객체를 생성한다.
static ValueObject build(Reader input, String[] fieldKeys, String token)
           주어진 Reader에서 문자열을 읽어 들여 필드 구분자로 잘라내어 ValueObject 객체를 생성한다.
static ValueObject build(Reader input, String[] fieldKeys, String token, int max)
           주어진 Reader에서 문자열을 읽어 들여 필드 구분자로 잘라내어 ValueObject 객체를 생성한다.
static ValueObject build(String reqStr, String colSep, String rowSep)
           "status▦aa▦bb▦cc▩I▦1▦2▦3▩I▦7▦8▦9▩" 와 같은 형태의 문자열을 받아서 ValueObject를 생성한다.
static ValueObject buildFromArgs(String[] args)
          key[,index]:value 형태의 문자열 배열로부터 ValueObject 객체를 생성한다.
static ValueObject buildFromCSV(byte[] data, String[] fieldKeys, boolean headerRow)
           CSV 포멧의 데이터를 담고 있는 byte[]로부터 문자열을 읽어들여(시스템의 default encoding을 사용) ValueObject 객체를 생성한다.
static ValueObject buildFromCSV(byte[] data, String[] fieldKeys, boolean headerRow, int max)
           CSV 포멧의 데이터를 담고 있는 byte[]로부터 문자열을 읽어들여(시스템의 default encoding을 사용) ValueObject 객체를 생성한다.
static ValueObject buildFromCSV(InputStream is, String[] fieldKeys, boolean headerRow)
           CSV 포멧의 데이터를 입력으로 받는 InputStream에서 문자열을 읽어들여(시스템의 default encoding을 사용) ValueObject 객체를 생성한다.
static ValueObject buildFromCSV(InputStream is, String[] fieldKeys, boolean headerRow, int max)
           CSV 포멧의 데이터를 입력으로 받는 InputStream에서 문자열을 읽어들여(시스템의 default encoding을 사용) ValueObject 객체를 생성한다.
static ValueObject buildFromCSV(Reader input, String[] fieldKeys, boolean headerRow)
           CSV 포멧의 데이터를 입력으로 받는 Reader에서 문자열을 읽어 들여 ValueObject 객체를 생성한다.
static ValueObject buildFromCSV(Reader input, String[] fieldKeys, boolean headerRow, int max)
           CSV 포멧의 데이터를 입력으로 받는 Reader에서 문자열을 읽어 들여 ValueObject 객체를 생성한다.
static ValueObject buildFromXLS(byte[] data, String[] fieldKeys, boolean headerRow)
           Microsoft의 Excel 포멧의 데이터를 byte[]로 받아서 ValueObject 객체를 생성한다.
static ValueObject buildFromXLS(byte[] data, String[] fieldKeys, boolean headerRow, int max)
           Microsoft의 Excel 포멧의 데이터를 byte[]로 받아서 ValueObject 객체를 생성한다.
static ValueObject buildFromXLS(File file, String[] fieldKeys, boolean headerRow)
           Microsoft의 Excel 파일로부터 ValueObject 객체를 생성한다.
static ValueObject buildFromXLS(File file, String[] fieldKeys, boolean headerRow, int max)
           Microsoft의 Excel 파일로부터 ValueObject 객체를 생성한다.
static ValueObject buildFromXLS(File file, String[] fieldKeys, int sheetNum, int startRow, int max)
           Microsoft의 Excel 파일로부터 ValueObject 객체를 생성한다.
static ValueObject buildFromXLS(InputStream is, String[] fieldKeys, boolean headerRow)
           Microsoft의 Excel 포멧의 데이터를 입력으로 받는 InputStream으로부터 ValueObject 객체를 생성한다.
static ValueObject buildFromXLS(InputStream is, String[] fieldKeys, int sheetNum, int startRow, int max)
           Microsoft의 Excel 포멧의 데이터를 입력으로 받는 InputStream으로부터 ValueObject 객체를 생성한다.
static ValueObject clone(ValueObject srcVO)
          ValueObject의 복사본을 생성한다.
static ValueObject compact(ValueObject srcVO, String keyName, String[] cols, boolean keepOthers)
          keyName으로 지정된 컬럼 값이 같은 것끼리 모아서 cols로 지정된 컬럼들의 값을 위로 올려 붙인다.
static String[] getColumnNames(ValueObject srcVO)
          ValueObject에 있는 데이터들의 컬러명들을 리스트로 반환한다.
static String[] getColumnNames(ValueObject srcVO, int row)
          ValueObject에 있는 데이터들의 컬러명들을 리스트로 반환한다.
static String[] getColumnValues(ValueObject srcVO, String key)
          하나의 컬럼 데이터들만 리스트로 반환한다.
static boolean isAssignable(Object from)
          주어진 객체가 ValueObject로 변환이 가능한지 여부를 반환한다.
static int search(ValueObject pVO, String searchField, Object searchValue)
          주어진 ValueObject의 searchField 컬럼에 searchValue 값이 존재하는지 검색한다.
static int search(ValueObject pVO, String searchField, Object searchValue, int startidx)
          주어진 ValueObject의 searchField 컬럼에 searchValue 값이 존재하는지 검색한다.
static ValueObject select(ValueObject pVO, String colName, String pattern)
           
static ValueObject select(ValueObject pVO, String colName, String pattern, boolean exact)
           
static ValueObject select(ValueObject pVO, String colName, String pattern, boolean exact, boolean reverse)
          ValueObject에서 colName으로 주어진 컬럼들의 값을 pattern으로 매칭하여 해당되는 row 들만 ValueObject에 담아서 반환한다.
static void sort(ValueObject pVO, String sortField)
          주어진 ValueObject를 오름차순으로 정렬한다.
static void sort(ValueObject pVO, String sortField, boolean asc)
          주어진 ValueObject를 오름차순 또는 내림차순으로 정렬한다.
static void sort(ValueObject pVO, String sortField1, String sortField2)
          주어진 ValueObject를 오름차순으로 정렬한다.
static void sort(ValueObject pVO, String sortField1, String sortField2, boolean asc)
          주어진 ValueObject를 오름차순 또는 내림차순으로 정렬한다.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ValueObjectUtil

public ValueObjectUtil()
Method Detail

isAssignable

public static boolean isAssignable(Object from)
주어진 객체가 ValueObject로 변환이 가능한지 여부를 반환한다. 변환이 가능한 경우는 List<Map> 또는 Map[] 인 경우이다.

Parameters:
from -
Returns:

build

public static ValueObject build(Object from)
주어진 객체로부터 ValueObject를 생성하여 반환한다.

Parameters:
from -
Returns:
Throws:
ClassCastException - 변환 실패시

clone

public static ValueObject clone(ValueObject srcVO)
ValueObject의 복사본을 생성한다. ValueObject 내부에서 사용하는 ArrayList와 HashMap은 복사되지만 HashMap에 담겨져 있는 Value는 복사되지 않고 참조된다.

Parameters:
srcVO - ValueObject
Returns:
srcVO의 복사본

getColumnNames

public static String[] getColumnNames(ValueObject srcVO,
                                      int row)
ValueObject에 있는 데이터들의 컬러명들을 리스트로 반환한다.

Parameters:
srcVO -
row - 기준이 되는 row
Returns:
컬럼명 배열

getColumnNames

public static String[] getColumnNames(ValueObject srcVO)
ValueObject에 있는 데이터들의 컬러명들을 리스트로 반환한다. 첫번째 열을 기준으로 뽑아낸다.

Parameters:
srcVO -
row -
Returns:
컬럼명 배열

getColumnValues

public static String[] getColumnValues(ValueObject srcVO,
                                       String key)
하나의 컬럼 데이터들만 리스트로 반환한다.

Parameters:
srcVO -
key -
Returns:
컬럼 데이터 배열

build

public static ValueObject build(byte[] data,
                                String[] fieldKeys,
                                String token,
                                int max)
                         throws LiveException

주어진 byte[]에서 문자열을 읽어들여(시스템의 default encoding을 사용) 필드 구분자로 잘라내어 ValueObject 객체를 생성한다. 필드 구분자와 ValueObject을 작성할 때 사용하는 Key는 파라메터로 입력된다. 하나의 문자열 라인의 필드 수가 파라메터로 전달된 필드명 수보다 많을 경우 남는 필드 데이터는 무시된다. 반대로 필드명의 수가 많을 경우 모자라는 필드 값들은 공백 문자열로 처리된다.

Parameters:
is - 문자열을 읽어들일 InputStream
fieldKeys - ValueObject 작성시 사용되는 필드명 리스트
token - 필드 구분자
max - 작성되는 최대 Row 수 제한 값, 0 이면 파일 끝까지 처리
Returns:
ValueObject
Throws:
LiveException - 파일을 읽을때 에러가 발생한경우("live.error.07001")

build

public static ValueObject build(byte[] data,
                                String[] fieldKeys,
                                String token)
                         throws LiveException

주어진 byte[]에서 문자열을 읽어들여(시스템의 default encoding을 사용) 필드 구분자로 잘라내어 ValueObject 객체를 생성한다. 필드 구분자와 ValueObject을 작성할 때 사용하는 Key는 파라메터로 입력된다. 하나의 문자열 라인의 필드 수가 파라메터로 전달된 필드명 수보다 많을 경우 남는 필드 데이터는 무시된다. 반대로 필드명의 수가 많을 경우 모자라는 필드 값들은 공백 문자열로 처리된다.

Parameters:
data - 문자열을 읽어들일 byte[]
fieldKeys - ValueObject 작성시 사용되는 필드명 리스트
token - 필드 구분자
Returns:
생성된 ValueObject 객체
Throws:
LiveException - 파일을 읽을때 에러가 발생한경우("live.error.07001")

build

public static ValueObject build(InputStream is,
                                String[] fieldKeys,
                                String token)
                         throws LiveException

주어진 InputStream에서 문자열을 읽어들여(시스템의 default encoding을 사용) 필드 구분자로 잘라내어 ValueObject 객체를 생성한다. 필드 구분자와 ValueObject을 작성할 때 사용하는 Key는 파라메터로 입력된다. 하나의 문자열 라인의 필드 수가 파라메터로 전달된 필드명 수보다 많을 경우 남는 필드 데이터는 무시된다. 반대로 필드명의 수가 많을 경우 모자라는 필드 값들은 공백 문자열로 처리된다.

Parameters:
is - 문자열을 읽어들일 InputStream
fieldKeys - ValueObject 작성시 사용되는 필드명 리스트
token - 필드 구분자
Returns:
ValueObject
Throws:
LiveException - 파일을 읽을때 에러가 발생한경우("live.error.07001")

build

public static ValueObject build(InputStream is,
                                String[] fieldKeys,
                                String token,
                                int max)
                         throws LiveException

주어진 InputStream에서 문자열을 읽어들여(시스템의 default encoding을 사용) 필드 구분자로 잘라내어 ValueObject 객체를 생성한다. 필드 구분자와 ValueObject을 작성할 때 사용하는 Key는 파라메터로 입력된다. 하나의 문자열 라인의 필드 수가 파라메터로 전달된 필드명 수보다 많을 경우 남는 필드 데이터는 무시된다. 반대로 필드명의 수가 많을 경우 모자라는 필드 값들은 공백 문자열로 처리된다.

Parameters:
is - 문자열을 읽어들일 InputStream
fieldKeys - ValueObject 작성시 사용되는 필드명 리스트
token - 필드 구분자
max - 작성되는 최대 Row 수 제한 값, 0 이면 파일 끝까지 처리
Returns:
생성된 ValueObject 객체
Throws:
LiveException - 파일을 읽을때 에러가 발생한경우("live.error.07001")

build

public static ValueObject build(Reader input,
                                String[] fieldKeys,
                                String token,
                                int max)
                         throws LiveException

주어진 Reader에서 문자열을 읽어 들여 필드 구분자로 잘라내어 ValueObject 객체를 생성한다. 필드 구분자와 ValueObject을 작성할 때 사용하는 Key는 파라메터로 입력된다. 하나의 문자열 라인의 필드 수가 파라메터로 전달된 필드명 수보다 많을 경우 남는 필드 데이터는 무시된다. 반대로 필드명의 수가 많을 경우 모자라는 필드 값들은 공백 문자열로 처리된다.

Parameters:
input - 문자열을 읽어들일 Reader
fieldKeys - ValueObject 작성시 사용되는 필드명 리스트
token - 필드 구분자
max - 작성되는 최대 Row 수 제한 값, 0 이면 파일 끝까지 처리
Returns:
ValueObject
Throws:
LiveException - 파일을 읽을때 에러가 발생한경우("live.error.07001")

build

public static ValueObject build(Reader input,
                                String[] fieldKeys,
                                String token)
                         throws LiveException

주어진 Reader에서 문자열을 읽어 들여 필드 구분자로 잘라내어 ValueObject 객체를 생성한다.

Parameters:
input - 문자열을 읽어들일 BufferedReader
fieldKeys - ValueObject 작성시 사용되는 필드명 리스트
token - 필드 구분자
Returns:
ValueObject
Throws:
LiveException - 파일을 읽을때 에러가 발생한경우("live.error.07001")

build

public static ValueObject build(File file,
                                String[] fieldKeys,
                                String token)
                         throws LiveException

주어진 파일에서 문자열을 읽어 들여 필드 구분자로 잘라내어 ValueObject 객체를 생성한다.

Parameters:
file - 문자열을 읽어들일 File 객체
fieldKeys - ValueObject 작성시 사용되는 필드명 리스트
token - 필드 구분자
Returns:
ValueObject
Throws:
LiveException - 해당파일이 없을 경우("live.error.07002"), 파일을 읽을때 에러가 발생한경우("live.error.07001")

build

public static ValueObject build(Reader input,
                                String[] fieldKeys,
                                int[] flength,
                                int max)
                         throws LiveException

주어진 Reader에서 문자열을 읽어 들여 일정 길이(byte 수)로 ValueObject 객체를 생성한다. 잘라낼 길이와 ValueObject을 작성할 때 사용하는 Key는 파라메터로 입력된다. 하나의 문자열 라인의 필드 수가 파라메터로 전달된 필드명 수보다 많을 경우 남는 필드 데이터는 무시된다. 반대로 필드명의 수가 많을 경우 모자라는 필드 값들은 공백 문자열로 처리된다.

Parameters:
input - 문자열을 읽어들일 BufferedReader
fieldKeys - ValueObject 작성시 사용되는 필드명 리스트
flength - 컬럼별 길이
max - 작성되는 최대 Row 수 제한 값, 0인 경우 파일끝까지 처리
Returns:
ValueObject
Throws:
LiveException - 파일을 읽을때 에러가 발생한경우("live.error.07001")

build

public static ValueObject build(byte[] data,
                                String[] fieldKeys,
                                int[] flength)
                         throws LiveException

byte[]로 부터 문자열을 읽어들여(시스템의 default encoding을 사용) 일정 길이(byte 수)를 기준으로 ValueObject 객체를 생성한다.

Parameters:
data - 문자열을 읽어들일 byte[]
fieldKeys - ValueObject 작성시 사용되는 필드명 리스트
flength - 컬럼별 길이
Returns:
ValueObject
Throws:
LiveException - 파일을 읽을때 에러가 발생한경우("com.error.00013")

build

public static ValueObject build(InputStream is,
                                String[] fieldKeys,
                                int[] flength)
                         throws LiveException

주어진 InputStream으로부터 문자열을 읽어들여(시스템의 default encoding을 사용) 일정 길이(byte 수)를 기준으로 ValueObject 객체를 생성한다.

Parameters:
is - 문자열을 읽어들일 InputStream
fieldKeys - ValueObject 작성시 사용되는 필드명 리스트
flength - 컬럼별 길이
Returns:
ValueObject
Throws:
LiveException - 파일을 읽을때 에러가 발생한경우("com.error.00013")

build

public static ValueObject build(Reader input,
                                String[] fieldKeys,
                                int[] flength)
                         throws LiveException

주어진 Reader에서 문자열을 읽어들여(시스템의 default encoding을 사용) 일정 길이(byte 수)를 기준으로 ValueObject 객체를 생성한다.

Parameters:
input - 문자열을 읽어들일 Reader
fieldKeys - ValueObject 작성시 사용되는 필드명 리스트
flength - 컬럼별 길이
Returns:
ValueObject
Throws:
LiveException - 파일을 읽을때 에러가 발생한경우("com.error.00013")

build

public static ValueObject build(File file,
                                String[] fieldKeys,
                                int[] flength)
                         throws LiveException

주어진 파일에서 문자열을 읽어들여(시스템의 default encoding을 사용) 일정 길이(byte 수)를 기준으로 ValueObject 객체를 생성한다.

Parameters:
input - 문자열을 읽어들일 BufferedReader
fieldKeys - ValueObject 작성시 사용되는 필드명 리스트
flength - 컬럼별 길이
Returns:
ValueObject
Throws:
LiveException - 해당파일이 없을 경우("live.error.07002"), 파일을 읽을때 에러가 발생한경우("live.error.07001")

buildFromCSV

public static ValueObject buildFromCSV(byte[] data,
                                       String[] fieldKeys,
                                       boolean headerRow)
                                throws LiveException

CSV 포멧의 데이터를 담고 있는 byte[]로부터 문자열을 읽어들여(시스템의 default encoding을 사용) ValueObject 객체를 생성한다. 필드 구분자와 ValueObject을 작성할 때 사용하는 Key는 파라메터로 입력된다. CSV의 필드 수가 파라메터로 전달된 필드명 수보다 많을 경우 남는 필드 데이터는 무시된다. 반대로 필드명의 수가 많을 경우 모자라는 필드 값들은 공백 문자열로 처리된다.

Parameters:
data - CSV 포멧의 문자열을 읽어들일 byte[]
fieldKeys - ValueObject 작성시 사용되는 필드명 리스트
headerRow - 첫줄이 헤더인 경우 true로 설정하여 헤더 줄을 무시하고, 그렇지 않은 경우에는 false로 설정하여 첫줄도 ValueObject에 담겨지도록 한다.
Returns:
생성된 ValueObject 객체
Throws:
LiveException - 파일을 읽을때 에러가 발생한경우("live.error.07001")

buildFromCSV

public static ValueObject buildFromCSV(byte[] data,
                                       String[] fieldKeys,
                                       boolean headerRow,
                                       int max)
                                throws LiveException

CSV 포멧의 데이터를 담고 있는 byte[]로부터 문자열을 읽어들여(시스템의 default encoding을 사용) ValueObject 객체를 생성한다. 필드 구분자와 ValueObject을 작성할 때 사용하는 Key는 파라메터로 입력된다. CSV의 필드 수가 파라메터로 전달된 필드명 수보다 많을 경우 남는 필드 데이터는 무시된다. 반대로 필드명의 수가 많을 경우 모자라는 필드 값들은 공백 문자열로 처리된다.

Parameters:
data - CSV 포멧의 문자열을 읽어들일 byte[]
fieldKeys - ValueObject 작성시 사용되는 필드명 리스트
headerRow - 첫줄이 헤더인 경우 true로 설정하여 헤더 줄을 무시하고, 그렇지 않은 경우에는 false로 설정하여 첫줄도 ValueObject에 담겨지도록 한다.
max - 작성되는 최대 Row 수 제한 값, 0 이면 파일 끝까지 처리
Returns:
생성된 ValueObject 객체
Throws:
LiveException - 파일을 읽을때 에러가 발생한경우("live.error.07001")

buildFromCSV

public static ValueObject buildFromCSV(InputStream is,
                                       String[] fieldKeys,
                                       boolean headerRow)
                                throws LiveException

CSV 포멧의 데이터를 입력으로 받는 InputStream에서 문자열을 읽어들여(시스템의 default encoding을 사용) ValueObject 객체를 생성한다. 필드 구분자와 ValueObject을 작성할 때 사용하는 Key는 파라메터로 입력된다. CSV의 필드 수가 파라메터로 전달된 필드명 수보다 많을 경우 남는 필드 데이터는 무시된다. 반대로 필드명의 수가 많을 경우 모자라는 필드 값들은 공백 문자열로 처리된다.

Parameters:
is - CSV 포멧의 문자열을 읽어들일 InputStream
fieldKeys - ValueObject 작성시 사용되는 필드명 리스트
headerRow - 첫줄이 헤더인 경우 true로 설정하여 헤더 줄을 무시하고, 그렇지 않은 경우에는 false로 설정하여 첫줄도 ValueObject에 담겨지도록 한다.
Returns:
ValueObject
Throws:
LiveException - 파일을 읽을때 에러가 발생한경우("live.error.07001")

buildFromCSV

public static ValueObject buildFromCSV(InputStream is,
                                       String[] fieldKeys,
                                       boolean headerRow,
                                       int max)
                                throws LiveException

CSV 포멧의 데이터를 입력으로 받는 InputStream에서 문자열을 읽어들여(시스템의 default encoding을 사용) ValueObject 객체를 생성한다. 필드 구분자와 ValueObject을 작성할 때 사용하는 Key는 파라메터로 입력된다. CSV의 필드 수가 파라메터로 전달된 필드명 수보다 많을 경우 남는 필드 데이터는 무시된다. 반대로 필드명의 수가 많을 경우 모자라는 필드 값들은 공백 문자열로 처리된다.

Parameters:
is - CSV 포멧의 문자열을 읽어들일 InputStream
fieldKeys - ValueObject 작성시 사용되는 필드명 리스트
headerRow - 첫줄이 헤더인 경우 true로 설정하여 헤더 줄을 무시하고, 그렇지 않은 경우에는 false로 설정하여 첫줄도 ValueObject에 담겨지도록 한다.
max - 작성되는 최대 Row 수 제한 값, 0 이면 파일 끝까지 처리
Returns:
ValueObject
Throws:
LiveException - 파일을 읽을때 에러가 발생한경우("live.error.07001")

buildFromCSV

public static ValueObject buildFromCSV(Reader input,
                                       String[] fieldKeys,
                                       boolean headerRow,
                                       int max)
                                throws LiveException

CSV 포멧의 데이터를 입력으로 받는 Reader에서 문자열을 읽어 들여 ValueObject 객체를 생성한다. 필드 구분자와 ValueObject을 작성할 때 사용하는 Key는 파라메터로 입력된다. CSV의 필드 수가 파라메터로 전달된 필드명 수보다 많을 경우 남는 필드 데이터는 무시된다. 반대로 필드명의 수가 많을 경우 모자라는 필드 값들은 공백 문자열로 처리된다.

Parameters:
input - CSV 포멧의 문자열을 읽어들일 Reader
fieldKeys - ValueObject 작성시 사용되는 필드명 리스트
headerRow - 첫줄이 헤더인 경우 true로 설정하여 헤더 줄을 무시하고, 그렇지 않은 경우에는 false로 설정하여 첫줄도 ValueObject에 담겨지도록 한다.
max - 작성되는 최대 Row 수 제한 값, 0 이면 파일 끝까지 처리
Returns:
ValueObject
Throws:
LiveException - 파일을 읽을때 에러가 발생한경우("live.error.07001")

buildFromCSV

public static ValueObject buildFromCSV(Reader input,
                                       String[] fieldKeys,
                                       boolean headerRow)
                                throws LiveException

CSV 포멧의 데이터를 입력으로 받는 Reader에서 문자열을 읽어 들여 ValueObject 객체를 생성한다. 필드 구분자와 ValueObject을 작성할 때 사용하는 Key는 파라메터로 입력된다. CSV의 필드 수가 파라메터로 전달된 필드명 수보다 많을 경우 남는 필드 데이터는 무시된다. 반대로 필드명의 수가 많을 경우 모자라는 필드 값들은 공백 문자열로 처리된다.

Parameters:
input - CSV 포멧의 문자열을 읽어들일 Reader
fieldKeys - ValueObject 작성시 사용되는 필드명 리스트
headerRow - 첫줄이 헤더인 경우 true로 설정하여 헤더 줄을 무시하고, 그렇지 않은 경우에는 false로 설정하여 첫줄도 ValueObject에 담겨지도록 한다.
Returns:
ValueObject
Throws:
LiveException - 파일을 읽을때 에러가 발생한경우("live.error.07001")

buildFromXLS

public static ValueObject buildFromXLS(InputStream is,
                                       String[] fieldKeys,
                                       int sheetNum,
                                       int startRow,
                                       int max)
                                throws LiveException

Microsoft의 Excel 포멧의 데이터를 입력으로 받는 InputStream으로부터 ValueObject 객체를 생성한다. 필드 구분자와 ValueObject을 작성할 때 사용하는 Key는 파라메터로 입력된다. Excel의 필드 수가 파라메터로 전달된 필드명 수보다 많을 경우 남는 필드 데이터는 무시된다. 반대로 필드명의 수가 많을 경우 모자라는 필드 값들은 공백 문자열로 처리된다. Excel의 셀이 날짜형인 경우에는 java.util.Date 객체로 들어간다.

Parameters:
input - Excel 데이터 Inputstream
fieldKeys - ValueObject 작성시 사용되는 필드명 리스트
sheetNum - 사용할 sheet 번호
headerRow - 첫줄이 헤더인 경우 true로 설정하여 헤더 줄을 무시하고, 그렇지 않은 경우에는 false로 설정하여 첫줄도 ValueObject에 담겨지도록 한다.
max - 작성되는 최대 Row 수 제한 값, 0 이면 파일 끝까지 처리
Returns:
ValueObject
Throws:
LiveException - 파일을 읽을때 에러가 발생한경우("live.error.07001")

buildFromXLS

public static ValueObject buildFromXLS(InputStream is,
                                       String[] fieldKeys,
                                       boolean headerRow)
                                throws LiveException

Microsoft의 Excel 포멧의 데이터를 입력으로 받는 InputStream으로부터 ValueObject 객체를 생성한다. 필드 구분자와 ValueObject을 작성할 때 사용하는 Key는 파라메터로 입력된다. Excel의 필드 수가 파라메터로 전달된 필드명 수보다 많을 경우 남는 필드 데이터는 무시된다. 반대로 필드명의 수가 많을 경우 모자라는 필드 값들은 공백 문자열로 처리된다.

Parameters:
input - Excel 데이터 Inputstream
fieldKeys - ValueObject 작성시 사용되는 필드명 리스트
headerRow - 첫줄이 헤더인 경우 true로 설정하여 헤더 줄을 무시하고, 그렇지 않은 경우에는 false로 설정하여 첫줄도 ValueObject에 담겨지도록 한다.
Returns:
ValueObject
Throws:
LiveException - 파일을 읽을때 에러가 발생한경우("live.error.07001")

buildFromXLS

public static ValueObject buildFromXLS(byte[] data,
                                       String[] fieldKeys,
                                       boolean headerRow,
                                       int max)
                                throws LiveException

Microsoft의 Excel 포멧의 데이터를 byte[]로 받아서 ValueObject 객체를 생성한다. 필드 구분자와 ValueObject을 작성할 때 사용하는 Key는 파라메터로 입력된다. Excel의 필드 수가 파라메터로 전달된 필드명 수보다 많을 경우 남는 필드 데이터는 무시된다. 반대로 필드명의 수가 많을 경우 모자라는 필드 값들은 공백 문자열로 처리된다.

Parameters:
data - Excel 데이터가 담긴 byte[]
fieldKeys - ValueObject 작성시 사용되는 필드명 리스트
headerRow - 첫줄이 헤더인 경우 true로 설정하여 헤더 줄을 무시하고, 그렇지 않은 경우에는 false로 설정하여 첫줄도 ValueObject에 담겨지도록 한다.
max - 작성되는 최대 Row 수 제한 값, 0 이면 파일 끝까지 처리
Returns:
ValueObject
Throws:
LiveException - 파일을 읽을때 에러가 발생한경우("live.error.07001")

buildFromXLS

public static ValueObject buildFromXLS(byte[] data,
                                       String[] fieldKeys,
                                       boolean headerRow)
                                throws LiveException

Microsoft의 Excel 포멧의 데이터를 byte[]로 받아서 ValueObject 객체를 생성한다. 필드 구분자와 ValueObject을 작성할 때 사용하는 Key는 파라메터로 입력된다. Excel의 필드 수가 파라메터로 전달된 필드명 수보다 많을 경우 남는 필드 데이터는 무시된다. 반대로 필드명의 수가 많을 경우 모자라는 필드 값들은 공백 문자열로 처리된다.

Parameters:
data - Excel 데이터가 담긴 byte[]
fieldKeys - ValueObject 작성시 사용되는 필드명 리스트
headerRow - 첫줄이 헤더인 경우 true로 설정하여 헤더 줄을 무시하고, 그렇지 않은 경우에는 false로 설정하여 첫줄도 ValueObject에 담겨지도록 한다.
Returns:
ValueObject
Throws:
LiveException - 파일을 읽을때 에러가 발생한경우("live.error.07001")

buildFromXLS

public static ValueObject buildFromXLS(File file,
                                       String[] fieldKeys,
                                       int sheetNum,
                                       int startRow,
                                       int max)
                                throws LiveException

Microsoft의 Excel 파일로부터 ValueObject 객체를 생성한다. 필드 구분자와 ValueObject을 작성할 때 사용하는 Key는 파라메터로 입력된다. Excel의 필드 수가 파라메터로 전달된 필드명 수보다 많을 경우 남는 필드 데이터는 무시된다. 반대로 필드명의 수가 많을 경우 모자라는 필드 값들은 공백 문자열로 처리된다.

Parameters:
file - Excel 파일
fieldKeys - ValueObject 작성시 사용되는 필드명 리스트
headerRow - 첫줄이 헤더인 경우 true로 설정하여 헤더 줄을 무시하고, 그렇지 않은 경우에는 false로 설정하여 첫줄도 ValueObject에 담겨지도록 한다.
max - 작성되는 최대 Row 수 제한 값, 0 이면 파일 끝까지 처리
Returns:
ValueObject
Throws:
LiveException - 파일을 읽을때 에러가 발생한경우("live.error.07001")

buildFromXLS

public static ValueObject buildFromXLS(File file,
                                       String[] fieldKeys,
                                       boolean headerRow,
                                       int max)
                                throws LiveException

Microsoft의 Excel 파일로부터 ValueObject 객체를 생성한다. 필드 구분자와 ValueObject을 작성할 때 사용하는 Key는 파라메터로 입력된다. Excel의 필드 수가 파라메터로 전달된 필드명 수보다 많을 경우 남는 필드 데이터는 무시된다. 반대로 필드명의 수가 많을 경우 모자라는 필드 값들은 공백 문자열로 처리된다.

Parameters:
file - Excel 파일
fieldKeys - ValueObject 작성시 사용되는 필드명 리스트
headerRow - 첫줄이 헤더인 경우 true로 설정하여 헤더 줄을 무시하고, 그렇지 않은 경우에는 false로 설정하여 첫줄도 ValueObject에 담겨지도록 한다.
max - 작성되는 최대 Row 수 제한 값, 0 이면 파일 끝까지 처리
Returns:
ValueObject
Throws:
LiveException - 파일을 읽을때 에러가 발생한경우("live.error.07001")

buildFromXLS

public static ValueObject buildFromXLS(File file,
                                       String[] fieldKeys,
                                       boolean headerRow)
                                throws LiveException

Microsoft의 Excel 파일로부터 ValueObject 객체를 생성한다. 필드 구분자와 ValueObject을 작성할 때 사용하는 Key는 파라메터로 입력된다. Excel의 필드 수가 파라메터로 전달된 필드명 수보다 많을 경우 남는 필드 데이터는 무시된다. 반대로 필드명의 수가 많을 경우 모자라는 필드 값들은 공백 문자열로 처리된다.

Parameters:
file - Excel 파일
fieldKeys - ValueObject 작성시 사용되는 필드명 리스트
headerRow - 첫줄이 헤더인 경우 true로 설정하여 헤더 줄을 무시하고, 그렇지 않은 경우에는 false로 설정하여 첫줄도 ValueObject에 담겨지도록 한다.
Returns:
ValueObject
Throws:
LiveException - 파일을 읽을때 에러가 발생한경우("live.error.07001")

buildFromArgs

public static ValueObject buildFromArgs(String[] args)
key[,index]:value 형태의 문자열 배열로부터 ValueObject 객체를 생성한다. 이러한 형태가 아닌 문자열은 무시한다.

Parameters:
args -
Returns:

build

public static ValueObject build(String reqStr,
                                String colSep,
                                String rowSep)

"status▦aa▦bb▦cc▩I▦1▦2▦3▩I▦7▦8▦9▩" 와 같은 형태의 문자열을 받아서 ValueObject를 생성한다. 여기서 ▦는 행구분자이며 ▩는 열구분자이다. 문자열의 첫번재 열 구분자까지는 컬럼명을 담고 있으며 그 이후부터는 실제 데이터가 담기는 구조이다. 이 문자열을 열구분자로 분리하고 다시 각각을 행구분자로 분리하여 ValueObject를 생성한다.

ValueObject를 생성할 때 실제 컬럼 데이터가 컬럼 명의 개수보다 많으면 그 데이터는 무시되며 실제 컬럼 데이터가 컬럼 명의 개수보다 적으면 모자라는 컬럼 데이터는 "null" 로 채워진다.

아래는 실제 사용 예이며 그림과 같이 ValueObject 객체가 만들어진다.

 String str = "status▦aa▦bb▦cc▩I▦1▦2▦3▩I▦7▦8▦9▩";
 ValueObject getVO = ValueObjectUtil.build(str,"▦","▩");
  
         status aa  bb  cc 
row=0 I 1 2 3
row=1 I 7 8 9

Parameters:
reqStr - 문자열
colSep - 행 구분자
rowSep - 열 구분자
Returns:

select

public static ValueObject select(ValueObject pVO,
                                 String colName,
                                 String pattern,
                                 boolean exact,
                                 boolean reverse)
ValueObject에서 colName으로 주어진 컬럼들의 값을 pattern으로 매칭하여 해당되는 row 들만 ValueObject에 담아서 반환한다.

Parameters:
pVO - 검색하고자 하는 ValueObject
colName - 검색하고자 하는 컬럼명
pattern - 검색 pattern
exact - pattern과 똑같은 경우에만 select되는 경우는 true, 그렇지 않은 경우 pattern 문자가 *str*, *str 또는 str* 형태로 가정하고 like 검색함.
reverse - pattern과 일치하지 않는 것을 검색하는 여부
Returns:
해당되는 row들만 담은 ValueObject 객체를 반환한다. 해당되는 row가 없은 경우에는 빈 ValueObject 객체를 반환한다.

select

public static ValueObject select(ValueObject pVO,
                                 String colName,
                                 String pattern,
                                 boolean exact)

select

public static ValueObject select(ValueObject pVO,
                                 String colName,
                                 String pattern)

addColumn

public static void addColumn(ValueObject pVO,
                             String key,
                             Object value)
ValueObject의 모든 row에 컬럼을 추가한다.

Parameters:
pVO - 컬럼을 추가할 VO 객체
key - 컬럼 명
value - 컬럼 값

compact

public static ValueObject compact(ValueObject srcVO,
                                  String keyName,
                                  String[] cols,
                                  boolean keepOthers)
keyName으로 지정된 컬럼 값이 같은 것끼리 모아서 cols로 지정된 컬럼들의 값을 위로 올려 붙인다. 예를 들어 아래와 같은 testVO가 있을 경우
ValueObject comVO = ValueObjectUtil.compact(testVO,"key1", new String[]{"key2", "key3","key4"});
를 호출하면 key1을 기준 컬럼으로 하여 "key2", "key3","key4"를 최대한 위로 올려서 row 수를 줄여 새로운 VO에 담아 리턴한다.
  
  key1 key2 key3 key4
row1 A 1    
row2 A   3  
row3 A     2
row4 A   4  
row5 B 1    
row6 B 2    
  key1 key2 key3 key4
row1 A 1 3 2
row2 A   4  
row3 B 1    
row4 B 2    

Parameters:
srcVO -
keyName -
cols -
keepOthers - VO에 있던 다름 컬럼들을 그대로 유지할 지 여부를 설정한다. 사용되는 값은 key별로 첫번째 row에 담긴 값이다.
Returns:

addColumn

public static void addColumn(ValueObject pVO,
                             Map<String,Object> columns)
ValueObject의 모든 row에 Map 객체에 담긴 값들을 컬럼으로 추가한다.

Parameters:
pVO - 컬럼을 추가할 VO 객체
columns - 추가할 컬럼 값들이 담긴 Map 객체

sort

public static void sort(ValueObject pVO,
                        String sortField)
주어진 ValueObject를 오름차순으로 정렬한다. 정렬할 때 기준으로 사용할 컬럼명을 두번째 파라메터로 전달한다.

Parameters:
pVO -
sortField - 정렬 기준 컬럼 명

sort

public static void sort(ValueObject pVO,
                        String sortField,
                        boolean asc)
주어진 ValueObject를 오름차순 또는 내림차순으로 정렬한다. 정렬할 때 기준으로 사용할 컬럼명을 두번째 파라메터로 전달한다.

Parameters:
pVO -
sortField - 정렬 기준 컬럼 명
asc - true면 오름차순, false면 내림차순으로 정렬

sort

public static void sort(ValueObject pVO,
                        String sortField1,
                        String sortField2)
주어진 ValueObject를 오름차순으로 정렬한다. 정렬할 때 기준으로 사용할 컬럼명을 두번째와 세번째 파라메터로 전달한다.

Parameters:
pVO -
sortField1 - 첫번째 정렬 기준 컬럼 명
sortField2 - 두번째 정렬 기준 컬럼 명
Throws:
ClassCastException - 비교 대상이 되는 값들의 클래스가 서로 변환이 불가능한경우

sort

public static void sort(ValueObject pVO,
                        String sortField1,
                        String sortField2,
                        boolean asc)
주어진 ValueObject를 오름차순 또는 내림차순으로 정렬한다. 정렬할 때 기준으로 사용할 컬럼명을 두번째와 세번째 파라메터로 전달한다.

Parameters:
pVO -
sortField1 - 첫번째 정렬 기준 컬럼 명
sortField2 - 두번째 정렬 기준 컬럼 명
asc - true면 오름차순, false면 내림차순으로 정렬
Throws:
ClassCastException - 비교 대상이 되는 값들의 클래스가 서로 변환이 불가능한경우

search

public static int search(ValueObject pVO,
                         String searchField,
                         Object searchValue)
주어진 ValueObject의 searchField 컬럼에 searchValue 값이 존재하는지 검색한다. 해당 값이 존재하는 경우 존재하는 row의 인덱스를 반환하며, 존재하지 않는 경우에는 -1을 반환한다.

Parameters:
pVO - 검색 대상이 되는 ValueObject 객체
searchField - 검색하고자하는 컬럼명
searchValue - 검색하고자하는 객체값
Returns:
해당 값이 존재하는 첫번째 row의 인덱스, 존재하지 않는 경우는 -1
Throws:
ClassCastException - 비교 대상이 되는 값들의 클래스가 서로 변환이 불가능한경우

search

public static int search(ValueObject pVO,
                         String searchField,
                         Object searchValue,
                         int startidx)
주어진 ValueObject의 searchField 컬럼에 searchValue 값이 존재하는지 검색한다. 해당 값이 존재하는 경우 존재하는 row의 인덱스를 반환하며, 존재하지 않는 경우에는 -1을 반환한다.

Parameters:
pVO - 검색 대상이 되는 ValueObject 객체
searchField - 검색하고자하는 컬럼명
searchValue - 검색하고자하는 객체값
startidx - 검색 시작할 ValueObject의 row index
Returns:
해당 값이 존재하는 첫번째 row의 인덱스, 존재하지 않는 경우는 -1
Throws:
ClassCastException - 비교 대상이 되는 값들의 클래스가 서로 변환이 불가능한경우


Copyright © 2014. All Rights Reserved.