
public abstract class GlueAbstractFixedLengthMessageLayout extends Object implements GlueMessageLayout, InitializingBean, DisposableBean
| Modifier and Type | Field and Description | 
|---|---|
protected org.slf4j.Logger | 
logger
logger 
 | 
static String | 
MSG_TYPE_BYTE  | 
static String | 
MSG_TYPE_STRING  | 
static String | 
RULE_NUMBER_NULL_TO_ZERO  | 
static String | 
RULE_STRING_ZERO_TO_SPACE  | 
| Constructor and Description | 
|---|
GlueAbstractFixedLengthMessageLayout()  | 
| Modifier and Type | Method and Description | 
|---|---|
void | 
afterPropertiesSet()  | 
abstract GlueMessage | 
createMessageObject(String message)  | 
void | 
destroy()  | 
GlueMessageDefinition | 
getAttributes(String key)
해당 Msg Layout의 Attribute 정보를 추출하는 Method 처음 호출시 Attribute의 정보를 Cache에 저장하고, 재 호출시 Cache를 통해 정보를 추출하여 제공 
 | 
abstract List<GlueMessageAttributeDefinition> | 
getAttributesDefinition(String id)  | 
GlueCacheManager | 
getCacheManager()  | 
Charset | 
getCharset()  | 
Set<String> | 
getMsgParsingRule()  | 
String | 
getMsgParsingType()
Message Parsing Type을 가져온다. 
 | 
GlueMessage | 
makeMessageParsing(GlueMessageDefinition messageDefinition,
                  String tc)
Message Layout 항목 정보에 따 Message를 파싱하여 GlueMessage 객체에 담는다. 
 | 
String | 
makeMessageString(GlueMessageDefinition messageDefinition,
                 GlueMessage message)
Message Layout에 따라 해당 Message를 생성한다. 
 | 
void | 
setCacheManager(GlueCacheManager cacheManager)
setter method for DI. 
 | 
void | 
setCharset(Charset charset)
setter method for DI. 
 | 
void | 
setMsgParsingRule(Set<String> msgParsingRule)  | 
void | 
setMsgParsingType(String msgParsingType)
setter method for DI. 
 | 
public static final String MSG_TYPE_BYTE
public static final String MSG_TYPE_STRING
public static final String RULE_NUMBER_NULL_TO_ZERO
public static final String RULE_STRING_ZERO_TO_SPACE
protected org.slf4j.Logger logger
public GlueAbstractFixedLengthMessageLayout()
public GlueCacheManager getCacheManager()
public void setCacheManager(GlueCacheManager cacheManager)
cacheManager - public String getMsgParsingType()
public void setMsgParsingType(String msgParsingType)
msgParsingType - message Parsing Type, byte or Stringpublic Charset getCharset()
public void setCharset(Charset charset)
charset - public String makeMessageString(GlueMessageDefinition messageDefinition, GlueMessage message)
GlueMessageLayout
 [Message Byte 생성 규칙]
 1. Data Type : String
    DataType : STRING, CHAR, VARCHAR2 모두 동일하게 String으로 간주
    String Data가 Layout의 Length보다 작을때 : Length만큼 오른쪽 공백 추가
    String Data가 Layout의 Length보다 클때 : Length만큼 왼쪽 기준으로 자름
    단, String이 Null, ""(zero Length) 일 경우 : Length만큼 공백 생성
    단, String을 Byte Length 생성시 String 중간절삭일 경우 깨진 String 그대로 처리함.
    예) 123한(Length:4) : 123?
    
 2. Data Type : Number
    1) Truncate처리
    2) 오른쪽 Shift
    3) Cut
       Number Data가 Layout의 Length보다 작을때 : Length만큼 왼쪽으로 '0' 추가
       예) -123(Length:5) : -0123
       Number Data가 Layout의 Length보다 클때 : Length만큼 왼쪽 기준으로 자름
    단, '-', '.'도 1 Byte로 간주한다.
    단, Number가 Null, ""(zero Length) 일 경우 : Length만큼 공백 생성
    
 3. Data Type : Date
    Date객체에서 해당 Length에 맞춰 값을 가져옴.
    [지원하는 Date Type]
      Length(14) : yyyyMMddHHmmss
      Length(12) : yyyyMMddHHmm
      Length(10) : yyyyMMddHH
      Length(8) : yyyyMMdd
      Length(6) : yyyyMM
      Length(4) : yyyy
      단, Date가 Null, ""(zero Length) 일 경우 : Length만큼 공백 생성
 makeMessageString in interface GlueMessageLayoutmessageDefinition - Message Layout의 Attribute항목 Listmessage - GlueMessage 객체public GlueMessage makeMessageParsing(GlueMessageDefinition messageDefinition, String tc) throws GlueMessageParserException
GlueMessageLayout
 [Message Byte 파싱 규칙]
 1. Data Type : String
    -DataType : STRING, CHAR, VARCHAR2 모두 동일하게 String으로 간주
    -String Data를 자른후 Rigth Trim처리하여 Message 객체에 저장
    단, String 파싱시 String 중간 절삭이 될 경우 깨진상태로 생성.
    예) 123한글1 : 앞 String(Length:4) -> 123?
                  뒤 String(Length:4) -> ?글1    
    단, Message 공백시 -> ""(Empty String)
    
 2. Data Type : Number
    1) Cut
       단, '-', '.'도 1 Byte로 간주한다.   
    2) Right Trim
    3) 왼쪽으로 Shift
    4) Number 생성후 Message 객체에 저장
    단, Number일때 잘못된 파싱으로 String 중간 절삭시 Exception처리
    단, Message 공백시 -> null(Default)
    
    Number Message 공백시 처리 Option
    1) Message 값이 Zero -> null
    2) Message 값이 Space -> Zero
    3) 1,2 동시
       Message 값이 Zero -> null
       Message 값이 Space -> Zero
    
 3. Data Type : Date
    1) Length만큼 Cut
    2) Date Type에 맞춰 Date 객체 생성후 Message 객체에 저장
    [지원하는 Date Type]
      Length(14) : yyyyMMddHHmmss
      Length(12) : yyyyMMddHHmm
      Length(10) : yyyyMMddHH
      Length(8) : yyyyMMdd
      Length(6) : yyyyMM
      Length(4) : yyyy
      단, Date일때 잘못된 파싱으로 String 중간 절삭시 Exception처리
      단, Message 공백시 -> null
  makeMessageParsing in interface GlueMessageLayoutmessageDefinition - Objecttc - Message 문자열GlueMessageParserExceptionpublic abstract GlueMessage createMessageObject(String message)
public GlueMessageDefinition getAttributes(String key) throws GlueMessageDefinitionException
GlueMessageLayoutgetAttributes in interface GlueMessageLayoutkey - Message IDGlueMessageDefinitionExceptionpublic abstract List<GlueMessageAttributeDefinition> getAttributesDefinition(String id)
id - public void afterPropertiesSet()
                        throws Exception
afterPropertiesSet in interface InitializingBeanExceptionpublic void destroy()
             throws Exception
destroy in interface DisposableBeanExceptionCopyright © 2013–2021 POSCO ICT. All rights reserved.