Class GlueActivity<C extends GlueContext>

java.lang.Object
com.poscoict.glueframework.biz.activity.GlueActivity<C>
Direct Known Subclasses:
GlueContextClear, GlueDefaultRouter, GlueExcelInfo, GlueFileDelete, GlueFileDown, GlueFileList, GlueFileSave, GlueJdbcDelete, GlueJdbcInsert, GlueJdbcModify, GlueJdbcNativeRun, GlueJdbcSearch, GlueJobCall, GlueMessageCreate, GlueMessageParse, GlueMessageSender, GlueMessageSender, GlueMongoDelete, GlueMongoFind, GlueMongoSave, GlueMybatisDelete, GlueMybatisInsert, GlueMybatisModify, GlueMybatisSearch, GlueNexacroDelete, GlueNexacroInsert, GlueNexacroModify, GlueNexacroSave, GlueNexacroSearch, GlueRedisDelete, GlueRedisGet, GlueRedisSet, GlueResultKeyList, GlueSubService, GlueTextMessageSend, GlueWebPageTag, GlueWSTextDirectSenderActivity

public abstract class GlueActivity<C extends GlueContext> extends Object
GlueActivity Class는 모든 Chain에서 상속받아야 하는 Super Class이다. Activity Class는 Service의 Member로 Service단위로 생성이 되기 때문에 해당 Class의 Member 변수를 생성하여 사용할 경우에는 Thread마다 고유한 값을 가질 수 없고 재사용 된다. 아래는 {xxx}-service.xml 파일의 Activity 정의 이다.
 예제
 
 사용 예# 1
 
 <activity name="InitProcess" class="com.biz.BizLogicActivity">
     <transition name="success" value="EventRouter"/>
     <property name="condition" value="attr1"/>
     <property name="deptno" value="10"/>
 </activity>
 
 {xxx}-service.xml 의 일부 예제에서 'property' 속성을 Member 변수로 가지고 있고 이 값은 Activity Class(BizLogicActivity)에서 호출 하여 사용할 수 있다.
 
  • Field Details

    • logger

      protected org.slf4j.Logger logger
      logger
    • dynamicProperties

      protected Map<String,String> dynamicProperties
      동적으로 관리되는 property
  • Constructor Details

    • GlueActivity

      public GlueActivity()
  • Method Details

    • runActivity

      public abstract String runActivity(C ctx)
      Sub Class에서 반드시 구현하여야 하는 Abstract Method 이며 이 Method는 F/W에서 호출한다. 결과 값은 GlueContext에 담아서 다음 Activity 또는 F/W에 전달하게 된다. 필요한 모든 Data는 GlueContext에서 호출하여 사용하게 된다.
      
       예)
       <transition name="success" value="BizLogic"/>
       <transition name="failure" value="ErrorHandle"/>
       ==> return "success"이면 BizLogic Activity 를 실행함.
       
      Parameters:
      ctx - GlueContext
      Returns:
      String 정상적이면 "success"를 Return 하고 비정상 처리를 원하면 "failure"를 Return 한다.
    • getDao

      public GlueGenericDao getDao(String daoKey)
      applicationContext.xml에 정의된 dao가져오기.
      Parameters:
      daoKey - applicationContext.xml의 bean ID
      Returns:
      GlueGenericDao DAO Class
    • commitTransaction

      public void commitTransaction(C ctx, String transactionMgrKey)
      트랜잭션을 커밋한다.
      Parameters:
      ctx - GlueContext
      transactionMgrKey - ApplicationContext에 정의된 트랜잭션 매니저 빈의 키 값
    • commitTransaction

      public void commitTransaction(String transactionMgrKey)
      트랜잭션을 커밋한다.
      Parameters:
      transactionMgrKey - ApplicationContext에 정의된 트랜잭션 매니저 빈의 키 값
    • rollbackTransaction

      public void rollbackTransaction(C ctx, String transactionMgrKey)
      트랜잭션을 롤백한다.
      Parameters:
      ctx - GlueContext
      transactionMgrKey - ApplicationContext에 정의된 트랜잭션 매니저 빈의 키 값
    • rollbackTransaction

      public void rollbackTransaction(String transactionMgrKey)
      트랜잭션을 롤백한다.
      Parameters:
      transactionMgrKey - ApplicationContext에 정의된 트랜잭션 매니저 빈의 키 값
    • getProperty

      public String getProperty(String key)
      getter method. Activity Property 값을 Return.
      Parameters:
      key - Activity Property 의 key
      Returns:
      key에 해당하는 값
    • getPropertyNames

      public Set<String> getPropertyNames()
      정적 property의 key set. 동적 property는 dynamicProperties 를 사용할 것.
      
       [sample java code]
      
       public class CustomActivity extends GlueActivity{
           public String runActivity( GlueContext ctx )
           {
               Set<String> propertyNames = this.getPropertyNames();
               for ( String name : propertyNames ){
                   String value = this.getProperty( name ); // service.xml에 정의된 정적 property를 가져올수 있음..
               }
               // 동적 property
               dynamicProperties.put(name, value); // 동적 propety를 추가할 수 있음.
               Set<String> dynamicPropertyNames = this.dynamicProperties.keySet();
               for ( String name : dynamicPropertyNames ){
                   String value = dynamicProperties.get( name ); // service.xml에 없는 동적 property를 가져올수 있음..
               }
               return GlueBizControlConstants.SUCCESS;
           }
       }
      
       [sample service.xml]
      
       <service ...>
           <activity name="HelloActivity" class="sample.activity.HelloActivity">
               <transition name="success" value="end"/>
               <property name="p1" value="id"/>
               <property name="p2" value="Test!!!"/>
           </activity>
       </service>
       
      Returns:
      properties keySet
    • setProperty

      public void setProperty(Map<String,String> properties)
      setter method. internal use. 새로운 property 를 설정 한다. 주의 할 점은 XML의 다음과 같은 propety는 모두 제거 되고 새로운 Property가 적용 되어 진다. 또한 setProperty() 호출후 다음 Request부터 같은 Service를 사용하는 Request에 적용되어지기 때문에 주의 하여야 함.
      
       <property name="condition" value="attr1"/>
       <property name="deptno" value="10"/>
       
      Parameters:
      properties - Map the new Property
    • getName

      public String getName()
      getter method.
      Returns:
      activity's name
    • setName

      public void setName(String name)
      setter method.
      Parameters:
      name - activity's name
    • getTransition

      public Map<String,String> getTransition()
      getter method.
      Returns:
      transition
    • setTransition

      public void setTransition(Map<String,String> transition)
      setter method. internal use.
      Parameters:
      transition -
    • getEventList

      public List<String> getEventList()
      getter method.
      Returns:
      event list
    • setEventList

      public void setEventList(List<String> eventList)
      setter method. internal use.
      Parameters:
      eventList -