com.poscoict.glueframework.message.layout
Class GlueAbstractFixedLengthMessageLayout

java.lang.Object
  extended by com.poscoict.glueframework.message.layout.GlueAbstractFixedLengthMessageLayout
All Implemented Interfaces:
GlueMessageLayout, org.springframework.beans.factory.DisposableBean, org.springframework.beans.factory.InitializingBean
Direct Known Subclasses:
GlueDBMessageLayout, GlueXmlMessageLayout

public abstract class GlueAbstractFixedLengthMessageLayout
extends Object
implements GlueMessageLayout, org.springframework.beans.factory.InitializingBean, org.springframework.beans.factory.DisposableBean

GlueMessageLayout 의 추상 클래스.


Field Summary
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 Summary
GlueAbstractFixedLengthMessageLayout()
           
 
Method Summary
 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.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

MSG_TYPE_BYTE

public static final String MSG_TYPE_BYTE
See Also:
Constant Field Values

MSG_TYPE_STRING

public static final String MSG_TYPE_STRING
See Also:
Constant Field Values

RULE_NUMBER_NULL_TO_ZERO

public static final String RULE_NUMBER_NULL_TO_ZERO
See Also:
Constant Field Values

RULE_STRING_ZERO_TO_SPACE

public static final String RULE_STRING_ZERO_TO_SPACE
See Also:
Constant Field Values

logger

protected org.slf4j.Logger logger
logger

Constructor Detail

GlueAbstractFixedLengthMessageLayout

public GlueAbstractFixedLengthMessageLayout()
Method Detail

getCacheManager

public GlueCacheManager getCacheManager()

setCacheManager

public void setCacheManager(GlueCacheManager cacheManager)
setter method for DI.

Parameters:
cacheManager -

getMsgParsingType

public String getMsgParsingType()
Message Parsing Type을 가져온다. -현재 두가지 방식 제공 -Byte 파싱은 MES에 Byte 파싱규칙이 적용됨

Returns:
message parsing type : byte, String

setMsgParsingType

public void setMsgParsingType(String msgParsingType)
setter method for DI. Message Parsing Type을 저장한다.

Parameters:
msgParsingType - message Parsing Type, byte or String

getMsgParsingRule

public Set<String> getMsgParsingRule()

setMsgParsingRule

public void setMsgParsingRule(Set<String> msgParsingRule)

getCharset

public Charset getCharset()
Returns:
Charset

setCharset

public void setCharset(Charset charset)
setter method for DI.

Parameters:
charset -

makeMessageString

public String makeMessageString(GlueMessageDefinition messageDefinition,
                                GlueMessage message)
Description copied from interface: GlueMessageLayout
Message Layout에 따라 해당 Message를 생성한다.
 [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만큼 공백 생성
 

Specified by:
makeMessageString in interface GlueMessageLayout
Parameters:
messageDefinition - Message Layout의 Attribute항목 List
message - GlueMessage 객체
Returns:
생성된 Message 문자열

makeMessageParsing

public GlueMessage makeMessageParsing(GlueMessageDefinition messageDefinition,
                                      String tc)
                               throws GlueMessageParserException
Description copied from interface: GlueMessageLayout
Message Layout 항목 정보에 따 Message를 파싱하여 GlueMessage 객체에 담는다.
 [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
 

Specified by:
makeMessageParsing in interface GlueMessageLayout
Parameters:
messageDefinition - Object
tc - Message 문자열
Returns:
GlueMessage
Throws:
GlueMessageParserException

createMessageObject

public abstract GlueMessage createMessageObject(String message)
Returns:
GlueMessage

getAttributes

public GlueMessageDefinition getAttributes(String key)
                                    throws GlueMessageDefinitionException
Description copied from interface: GlueMessageLayout
해당 Msg Layout의 Attribute 정보를 추출하는 Method 처음 호출시 Attribute의 정보를 Cache에 저장하고, 재 호출시 Cache를 통해 정보를 추출하여 제공

Specified by:
getAttributes in interface GlueMessageLayout
Parameters:
key - Message ID
Returns:
GlueMessageDefinition
Throws:
GlueMessageDefinitionException

getAttributesDefinition

public abstract List<GlueMessageAttributeDefinition> getAttributesDefinition(String id)
Parameters:
id -
Returns:
GlueMessageAttributeDefinition List

afterPropertiesSet

public void afterPropertiesSet()
                        throws Exception
Specified by:
afterPropertiesSet in interface org.springframework.beans.factory.InitializingBean
Throws:
Exception

destroy

public void destroy()
             throws Exception
Specified by:
destroy in interface org.springframework.beans.factory.DisposableBean
Throws:
Exception


Copyright © 2013–2017 POSCO ICT. All rights reserved.