변환이 해당 타스크를 완료하는 대로 진행상태 창에서
진행 표시줄을 갱신하도록 변환을 사용자 정의할 수 있습니다.
이 기능은 변환이 완료한 작업량에 대한 한층 정확한 정보를
변환 사용자에게 제공합니다.
이 태스크 정보
개념적으로, 진행 표시줄은 동일한 부분으로
나눠집니다. 각 부분은 하나의 작업 유닛에 해당됩니다. 기본적으로,
변환 코어는 진행 표시줄에 대해
x+1 작업 유닛을
정의합니다. 여기서
x는 변환이 호출하는 유틸리티 수에
변환 자체에 대한 하나의 작업 유닛을 더한 숫자를 나타냅니다.
다음 예제를 고려하십시오.
- 변환이 유틸리티를 호출하지 않으면 변환 코어는
진행 표시줄에 대해 하나의 작업 유닛을 정의합니다. 진행 표시줄은
변환이 완료한 작업량을 표시합니다.
- 변환이 두 개의 유틸리티를 호출하면 변환 코어는
진행 표시줄에 대해 세 개의 작업 유닛을 정의합니다. 유틸리티가
완료되면 변환 코어는 진행 표시줄의 한 부분을 갱신합니다.
변환이 해당 타스크를 완료하는 대로, 변환은 변환 작성자가
각 타스크에 대해 할당한 작업 유닛 수만큼 진행 표시줄을
갱신합니다.
변환에 할당된 진행 표시줄의
작업 유닛에 대해, 작업 유닛을 몇 개의 더 작은 작업 유닛으로
나눠서 진행 표시줄에 대한 갱신사항을 제어할 수 있습니다. 각각의 작은
작업 유닛은 변환이 완료하는 타스크를 나타냅니다.
일반적으로,
변환은 여러 개의 타스크를 완료합니다. 각 타스크는 규칙, 추출기 또는
변환과 같은 변환 요소별로 완료됩니다.
변환 작성자로서, 변환이 타스크를 완료하는 지점을
식별할 수 있습니다. 이 지점에서, 변환이 해당 타스크를 완료하는 대로
진행 표시줄을 갱신하는 코드를 추가할 수 있습니다.
변환의 구현 세부사항을 이해하면, 다음 방법 중 하나로
진행 표시줄을 갱신하는 코드를 추가할 수 있습니다.
- IProgressMonitor 인터페이스에서 메소드를 호출하십시오. 다음
위치에서 메소드를 호출할 수 있습니다.
변환 소스 구문 분석과 출력(100개의
파일이 될 것으로 예측할 수 있는) 생성의 두 타스크를
완료하는 기본 변환을 고려하십시오. 이 예제의 경우
PROGRESS_MONITOR_WORK_UNITS 특성을
200으로 설정한다고 가정합니다. 다음 방식으로 진행 표시줄 작업 유닛을
할당할 수 있습니다.
- 변환이 소스를 구문 분석한 후, PROGRESS_MONITOR_WORK_UNITS 특성에
지정된 유닛의 반만큼 진행 표시줄을 늘리십시오.
- 변환이 출력을 생성할 때 변환이 생성하는 아티팩트마다
하나의 유닛만큼 진행 표시줄을 늘리십시오.
- com.ibm.xtools.transform.core.UpdateProgressMonitorRule 규칙의 인스턴스를 실행하십시오.
어쩌면 Class
추출기를 호출하여 소스 모델의 클래스를 처리하는 변환이 들어 있는
변환을 고려하십시오. 소스 모델에 따라, 이 변환은
UML 클래스나 코드 클래스를 처리할 수 있습니다.
소스 모델의 클래스마다 Class 변환이 실행됩니다.
변환이 클래스를 처리하면, 변환은
com.ibm.xtools.transform.core.UpdateProgressMonitorRule 규칙의 인스턴스를
실행하여 PROGRESS_MONITOR_INCREMENT 특성에
지정되는 유닛 수만큼 진행 표시줄을 갱신합니다.
3 단계에 있는 표의
코드 단편은 클래스를 처리하고 com.ibm.xtools.transform.core.UpdateProgressMonitorRule 규칙의
인스턴스를 실행하는 변환의 스켈레톤을 보여 줍니다. 코드 단편의 주석은
변환이 완료하는 타스크와 변환이 타스크를 완료하는 순서를
설명합니다.
변환이 실행될 때 진행 표시줄의
정확도를 정제하려면 다음 단계를 완료하십시오.
결과
진행 표시줄에 대한 갱신사항을 테스트하려면 다음 단계를 완료하십시오.
- 런타임 Workbench를 시작하십시오.
- 런타임 Workbench에서, 실행할 변환에 대한 변환 구성을
작성하십시오.
- 변환을 실행하십시오.
변환이 실행될 때 진행 창의
진행 표시줄은 변환 코드가 진행 표시줄을 갱신하지 못한 경우보다
더 정확하게 갱신합니다.