WebSphere Enterprise Service Bus, 버전 6.2.0 운영 체제: AIX, HP-UX, i5/OS, Linux, Solaris, Windows


하나의 양방향 언어 형식에서 다른 양방향 언어 형식으로 데이터 오브젝트 변환

외부 EIS(Enterprise Information System)에서 제공되는 데이터의 경우, 서비스 데이터 오브젝트를 지원되는 양방향 언어 형식으로 변환하고 WebSphere® ESB에서 외부 EIS로 보내는 데이터를 특정 EIS에서 사용되는 양방향 형식으로 변환하는 API를 작성할 수 있습니다.

시작하기 전에

양방향 언어 지원에 대한 자세한 정보는 다국어 번역을 참조하십시오. 다국어 번역 테이블을 사용하여 DataObject 유형 데이터를 한 형식에서 다른 형식으로 변환할 때 사용할 입력 문자열 또는 출력 문자열에 대한 올바른 값을 판별하십시오.

데이터 오브젝트의 양방향 언어 형식을 변환하기 위한 API를 작성하려면 다음 단계를 수행하십시오.

프로시저
  1. 양방향 엔진 구현을 포함하는 모든 양방향 클래스를 포함하십시오. 예를 들면, 다음과 같습니다.
    import com.ibm.bidiTools.bdlayout.*;
  2. DataObject 유형 오브젝트를 처리하는 데 필요한 모든 클래스를 포함하십시오. 예를 들면, 다음과 같습니다.
    import commonj.sdo.DataObject;
    import commonj.sdo.Type;
    import commonj.sdo.Property;
  3. DataObject 유형 오브젝트가 포함하는 여러 문자열 유형을 포함하는 문자열 변수를 정의하십시오. 이는 DataObject를 반복적으로 사용하는 동안 type String 속성을 필터링합니다. 예를 들면, 다음과 같습니다.
    String STRING_STR_TYPE = "String"; 
    String NORM_STRING_STR_TYPE = "normalizedString";
    String TOKEN_STR_TYPE = "token"; 
    String LANG_STR_TYPE = "language"; 
    String NAME_STR_TYPE = "Name"; 
    String NMTOKEN_STR_TYPE = "NMTOKEN"; 
    String NCNANE_STR_TYPE = "NCName"; 
    String ID_STR_TYPE = "ID"; 
    String IDREF_STR_TYPE = "IDREF"; 
    String IDREFS_STR_TYPE = "IDREFS"; 
    String ENTITY_STR_TYPE = "ENTITY"; 
    String ENTITIES_STR_TYPE = "ENTITIES";
  4. 특성 유형이 String인지 확인하는 함수를 정의하십시오. 예를 들면, 다음과 같습니다.
    private static boolean isStringFamilyType (Property property) { 
        boolean rc = false; 
        if ((property.getType().getName().equalsIgnoreCase(STRING_STR_TYPE)) ||
        (property.getType().getName().equalsIgnoreCase(NORM_STRING_STR_TYPE)) ||
        (property.getType().getName().equalsIgnoreCase(TOKEN_STR_TYPE)) ||
        (property.getType().getName().equalsIgnoreCase(LANG_STR_TYPE)) ||
        (property.getType().getName().equalsIgnoreCase(NAME_STR_TYPE)) ||
        (property.getType().getName().equalsIgnoreCase(NMTOKEN_STR_TYPE)) ||
        (property.getType().getName().equalsIgnoreCase(NCNANE_STR_TYPE)) ||
        (property.getType().getName().equalsIgnoreCase(ID_STR_TYPE)) ||
        (property.getType().getName().equalsIgnoreCase(IDREF_STR_TYPE)) ||
        (property.getType().getName().equalsIgnoreCase(IDREFS_STR_TYPE)) ||
        (property.getType().getName().equalsIgnoreCase(ENTITY_STR_TYPE)) ||
        (property.getType().getName().equalsIgnoreCase(ENTITIES_STR_TYPE))) 
           rc = true; 
         return rc; 
    }
  5. 전체 DataObject에 양방향 변환을 적용하는 반복 함수를 정의하십시오.
    주: 코드 논리에는 다음 가정이 포함됩니다.
    • 양방향 변환은 문자열 유형의 특성에만 적용됩니다.
    • DataObject에서 문자열 유형의 특성은 하나의 양방향 형식으로 저장됩니다.
    예를 들면, 다음과 같습니다.
    DataObject BiDiDataObjTransformationBO(DataObject boIn, String formatIn, String formatOut){ 
    
       Type type; 
       Property property; 
    
       if (boIn == null) return null; 
    
       type = boIn.getType(); 
       List propertyList = type.getProperties(); 
       for (int propertyNumber = 0; propertyNumber < propertyList.size(); propertyNumber++){ 
             property = (Property) propertyList.get(propertyNumber); 
             String propertyName = property.getName();
    1. 비문자열 특성은 모두 건너뜁니다. 예를 들면, 다음과 같습니다.
             if (!isStringFamilyType(property)) 
                                           continue;
      
             if (property.isContainment()) { 
                  if (property.isMany()) { 
                        List childsList = boIn.getList(property); 
    2. 하위 오브젝트를 처리하는 변환을 반복적으로 호출합니다. 예를 들면, 다음과 같습니다.
       
                        for (int childNumber = 0; childNumber < childsList.size(); 
      		   childNumber++){                   BiDiDataObjTransformationBO(connectionContext, 
      											 ((DataObject)childsList.get(childNumber)),formatIn, formatOut); 
                    } 
                        } else {
    3. 포함된 비즈니스 오브젝트의 하위 오브젝트를 처리하는 변환을 반복적으로 호출합니다. 예를 들면, 다음과 같습니다.
                    BiDiDataObjTransformationBO(connectionContext, 
      			            ((DataObject)boIn.get(property)),formatIn, formatOut); 
               } 
                   } else {
    4. 단순한 문자열 속성을 변환합니다. 예를 들면, 다음과 같습니다.
               String str = BiDiStringTransformation(
                   (boIn.getString(propertyName),formatIn, formatOut); 
               boIn.setString(propertyName, str); 
           } 
         } 
         return boIn; 
      }

task 타스크 주제

이용약관 | 피드백


시간소인 아이콘 마지막 갱신 날짜: 2010년 7월 7일 수요일


http://publib.boulder.ibm.com/infocenter/dmndhelp/v6r2mx/topic//com.ibm.websphere.wesb620.doc/doc/tref_example_bididataobject.html
Copyright IBM Corporation 2005, 2010. All Rights Reserved.
이 Information Center는 Eclipse 기술을 기반으로 합니다(http://www.eclipse.org 웹 사이트 참조).