목차 >> Cache Manager +- GlueMessageLayout ----+- Reuse Activity |
이번 장에서는 문자열 Data를 처리하는 Layout Manager를 다룹니다. 고정길이의 문자열이 순서대로 이어진 형태의 문자열을 처리하니다.
다음은 문자열(message)를 해석하기 위한 포맷 정보입니다.
순서 | 항목명 | 길이 | type |
---|---|---|---|
1 | MSG유형 | 8 | string |
2 | 부서번호 | 2 | number, 소수점없음 |
3 | 부서명 | 14 | string |
4 | 부서위치 | 13 | string |
5 | 구분 | 1 | string |
다음은 예제용 message 입니다.
MSGFW00190HumanResource seoul C
MSGFW00190HumanResource pangyo U
MSGFW00190 D
GlueMessageLayout 은 Message 생성 및 파싱 처리를 위한 MessageLayoutManager입니다. GlueMessageLayout 에서 제공하는 메소드는 Java Doc을 참고합니다. (GlueAPI)
그림 : GlueMessageLayout |
그림과 같이 MessageLayoutManager은 2가지 구현체를 제공하고 있습니다. XML 기반인 GlueXmlMessageLayout과 DB기반인 GlueDBMessageLayout입니다.
MessageLayoutManager도 CacheManager처럼 applicationContext.xml에 다음과 같이 정의해서 activity layer에서 사용할 수 있습니디.
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <bean id="serviceManager" class="com.poscoict.glueframework.biz.control.GlueServiceManagerImpl"> <property name="cacheManager" ref="cacheManager" /> <property name="serviceLoader" ref="serviceLoader" /> </bean> <bean id="cacheManager" class="com.poscoict.glueframework.cache.ehcache.GlueEhCacheManager"/> <bean id="serviceLoader" class="com.poscoict.glueframework.biz.control.GlueServiceLoader"/> <bean id="layoutManager" class=" . . ."/> </beans>
다음은 layoutManager(applicationContext.xml에 bean으로 등록)를 이용해 문자열data 를 message 객체로 파싱하는 예제입니다.
public class ParseActivity extends GlueActivity<GlueContext> { @Override public String runActivity( GlueContext ctx ) { String managerBeanId = "layoutManager"; String msgString = "MSGFW00190HumanResource seoul C"; String msgId="MSGFW001"; GlueMessageLayout manager = GlueStaticContext.getBeanFactory().getBeanObject( managerBeanId, GlueMessageLayout.class ); GlueMessage message = manager.makeMessageParsing( manager.getAttributes( msgId ), msgString ); ctx.setMessage( message ); return GlueBizControlConstants.SUCCESS; } }
다음은 layoutManager(applicationContext.xml에 bean으로 등록)를 이용해 message 객체를 문자열data로 변환하는 예제입니다.
public class CreateMessageActivity extends GlueActivity<GlueContext> { @Override public String runActivity( GlueContext ctx ) { String msgId="MSGFW001"; GlueMessage messageObj = new GlueMESMessageImpl(); messageObj.setTCID( msgId ); messageObj.setObject( "MSG_ID", msgId ); messageObj.setObject( "DEPTNO", "90" ); messageObj.setObject( "TYPE", "D" ); String managerBeanId = "layoutManager"; GlueMessageLayout manager = GlueStaticContext.getBeanFactory().getBeanObject( managerBeanId, GlueMessageLayout.class ); String message = manager.makeMessageString(manager.getAttributes( msgId ), messageObj); ctx.put( "result", message ); return GlueBizControlConstants.SUCCESS; } }
MessageLayoutManager를 사용한 reuse Activity는 다음과 같은 것이 제공되고 있습니다.