Class GlueAbstractFixedLengthMessageLayout
java.lang.Object
com.poscoict.glueframework.message.layout.GlueAbstractFixedLengthMessageLayout
- All Implemented Interfaces:
GlueMessageLayout
,DisposableBean
,InitializingBean
- Direct Known Subclasses:
GlueDBMessageLayout
,GlueXmlMessageLayout
public abstract class GlueAbstractFixedLengthMessageLayout
extends Object
implements GlueMessageLayout, InitializingBean, DisposableBean
GlueMessageLayout 의 추상 클래스.
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
abstract GlueMessage
createMessageObject
(String message) void
destroy()
getAttributes
(String key) 해당 Msg Layout의 Attribute 정보를 추출하는 Method 처음 호출시 Attribute의 정보를 Cache에 저장하고, 재 호출시 Cache를 통해 정보를 추출하여 제공abstract List
<GlueMessageAttributeDefinition> Message Parsing Type을 가져온다.makeMessageParsing
(GlueMessageDefinition messageDefinition, String tc) Message Layout 항목 정보에 따 Message를 파싱하여 GlueMessage 객체에 담는다.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.
-
Field Details
-
MSG_TYPE_BYTE
- See Also:
-
MSG_TYPE_STRING
- See Also:
-
RULE_NUMBER_NULL_TO_ZERO
- See Also:
-
RULE_STRING_ZERO_TO_SPACE
- See Also:
-
logger
protected org.slf4j.Logger loggerlogger
-
-
Constructor Details
-
GlueAbstractFixedLengthMessageLayout
public GlueAbstractFixedLengthMessageLayout()
-
-
Method Details
-
getCacheManager
-
setCacheManager
setter method for DI.- Parameters:
cacheManager
-
-
getMsgParsingType
Message Parsing Type을 가져온다. -현재 두가지 방식 제공 -Byte 파싱은 MES에 Byte 파싱규칙이 적용됨- Returns:
- message parsing type : byte, String
-
setMsgParsingType
setter method for DI. Message Parsing Type을 저장한다.- Parameters:
msgParsingType
- message Parsing Type, byte or String
-
getMsgParsingRule
-
setMsgParsingRule
-
getCharset
- Returns:
- Charset
-
setCharset
setter method for DI.- Parameters:
charset
-
-
makeMessageString
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 interfaceGlueMessageLayout
- Parameters:
messageDefinition
- Message Layout의 Attribute항목 Listmessage
- 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 interfaceGlueMessageLayout
- Parameters:
messageDefinition
- Objecttc
- Message 문자열- Returns:
- GlueMessage
- Throws:
GlueMessageParserException
-
createMessageObject
- Returns:
- GlueMessage
-
getAttributes
Description copied from interface:GlueMessageLayout
해당 Msg Layout의 Attribute 정보를 추출하는 Method 처음 호출시 Attribute의 정보를 Cache에 저장하고, 재 호출시 Cache를 통해 정보를 추출하여 제공- Specified by:
getAttributes
in interfaceGlueMessageLayout
- Parameters:
key
- Message ID- Returns:
- GlueMessageDefinition
- Throws:
GlueMessageDefinitionException
-
getAttributesDefinition
- Parameters:
id
-- Returns:
- GlueMessageAttributeDefinition List
-
afterPropertiesSet
- Specified by:
afterPropertiesSet
in interfaceInitializingBean
- Throws:
Exception
-
destroy
- Specified by:
destroy
in interfaceDisposableBean
- Throws:
Exception
-