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 Details

  • Constructor Details

    • GlueAbstractFixedLengthMessageLayout

      public GlueAbstractFixedLengthMessageLayout()
  • Method Details

    • 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 InitializingBean
      Throws:
      Exception
    • destroy

      public void destroy() throws Exception
      Specified by:
      destroy in interface DisposableBean
      Throws:
      Exception