보고서(RPTDESIGN 파일)에 특정 종류의 모델 정보를
추가하려면 먼저 사용자 정의 XPath 함수를 작성하여 대상 모델에서 정보를 추출해야 합니다.
시작하기 전에
전제조건: 이 타스크를 수행하려면 Eclipse Plug-in Development Environment에서
플러그인 개발 및 UML2 API에 익숙해야 합니다.
이 태스크 정보
사용자 정의 XPath 함수를 작성하려면 다음을 수행하십시오.
- 새 플러그인 프로젝트를 작성하십시오.
- 플러그인 개발 Perspective에서 를
클릭하고 플러그인 개발을 펼친 다음 플러그인 프로젝트를 선택하고
다음을 클릭하십시오.
- 플러그인 ID(예: com.ibm.field.birt.xpath_extensions)를 입력한 다음
다음, 완료를 차례로 클릭하십시오. 플러그인이 패키지 탐색기 보기에 추가되며, 플러그인 정보가
개요 페이지의 플러그인 Manifest 편집기 보기에 표시됩니다.
- org.eclipse.jet.xpathFunctions 확장점을 확장하십시오.
- 개요 페이지에서 확장 탭을 클릭한 다음
추가를 클릭하십시오.
- 필수 플러그인의 확장점만 표시 선택란을 지우십시오.
- 확장점 필터 필드에 *.jet를 입력한 다음
확장 목록에서 org.eclipse.jet.xpathFunctions를 두 번 클릭하십시오.
- 플러그인 종속성 목록에 플러그인을 추가함을 확인하려면 예를 클릭하십시오.
- MANIFEST.MF 탭을 클릭하고 Require_Bundle 목록에
org.eclipse.uml2.uml를 추가하여 플러그인이 UML API에 표시되도록 하십시오. 목록에 대한 코드는 다음과 같아야 합니다.
Require_Bundle: org.eclipse.ui,
org.eclipse.core.runtime,
org.eclipse.uml2.uml,
org.eclipse.jet
- plugin.xml 탭을 클릭하고 사용자 정의 함수를 정의하도록
<function> 정의를 수정하십시오. 예를 들어, 이름이 SlotValue이고, 두 개의 인수를 사용하며,
com.ibm.field.birt.xpath_extensions.SlotValue 클래스에 구현되는 함수를 정의하는 경우
코드는 다음과 같습니다.
<function
implementation="com.ibm.field.birt.xpath_extensions.SlotValues"
maxArgs="2"
minArgs="2"
name="slotValue">
</function>
- 을 클릭하십시오.
- 코드 쉘을 작성하고 플러그인에 링크하십시오.
- 패키지 탐색기 보기에서 새 플러그인 프로젝트를 마우스 오른쪽 단추로 클릭한 다음
를 클릭하십시오.
- 패키지 필드에서 플러그인 프로젝트의 이름을 지정하십시오.
- 이름 필드에 클래스 이름을 입력하십시오. 새 함수에 지정한 것과 동일한 이름을 사용하십시오. 예를 들어,
2단계에서 정의한 함수의 이름은 SlotValue입니다.
- 인터페이스를 추가하려면 추가를 클릭하십시오.
- 새 Java 클래스 대화 상자의 인터페이스 선택
필드에 XPathFunction을 입력한 다음 일치하는 항목 목록에서
XPathFunction - org.eclipse.jet.xpath를 선택하고
확인, 완료를 차례로 클릭하십시오.
- XPath 함수용 Java™ 파일에
코드를 추가하여 원하는 타스크를 완성하고 파일을 저장하십시오.
예를 들어, SlotValue 함수가 첫 번째 인수(XPath 표현식)로 인해 생성된 노드를 반복하여
인스턴스 스펙을 발견하면 getStringValue 함수를 호출하여 slotname 인수에
지정된 슬롯의 값을 리턴하도록 하려는 경우, 다음과 같은 코드를 작성하십시오.
package com.ibm.field.birt.xpath_extensions;
import java.util.Iterator;
import java.util.List;
import org.eclipse.jet.xpath.NodeSet;
import org.eclipse.jet.xpath.XPathFunction;
import org.eclipse.uml2.uml.InstanceSpecification;
import org.eclipse.uml2.uml.Slot;
import org.eclipse.uml2.uml.ValueSpecification;
public class SlotValue implements XPathFunction {
public String getStringValue(InstanceSpecification ia, String slotname) {
List slots = ia.getSlots();
for (Iterator iterator = slots.iterator(); iterator.hasNext();) {
Slot slot = (Slot) iterator.next();
String definingFeatureName = slot.getDefiningFeature().getName();
if (definingFeatureName.equals(slotname)) {
List values = slot.getValues();
for (Iterator iterator2 = values.iterator(); iterator2
.hasNext();) {
ValueSpecification value = (ValueSpecification) iterator2.next();
return value.stringValue();
}
}
}
return null;
}
public Object evaluate(List args) {
Object obj = args.get(0);
String slotname = (String) args.get(1);
if (obj instanceof NodeSet) {
NodeSet ns = (NodeSet) obj;
for (Iterator iterator = ns.iterator(); iterator.hasNext();) {
Object item = (Object) iterator.next();
if (item instanceof InstanceSpecification){
InstanceSpecification ispec = (InstanceSpecification) item;
if ((slotname != null)&&(slotname.length()>0))
return getStringValue(ispec,slotname);
}
}
}
return null;
}
}
- 기능 플러그인 프로젝트를 새로 작성하십시오.
- 를
클릭하고 플러그인 개발을 펼친 다음 기능 프로젝트를 선택하고
다음을 클릭하십시오.
- 프로젝트 이름 필드에 프로젝트 이름을 입력하고
다음을 클릭하십시오. 플러그인 이름과 유사한 기능 이름을 지정하는 것이 좋습니다.
따라서 com.ibm.field.birt.xpath_extensions 플러그인의 경우 com.ibm.field.birt.xpath_extensions.feature를
선택할 수 있습니다.
- 플러그인을 기능과 함께 번들로 묶으려면 1단계에서 작성한 플러그인에 대한 선택란을 체크하고
완료를 클릭하십시오. 기능이 패키지 탐색기 보기에 추가되며, 기능 정보가
개요 페이지의 기능 Manifest 편집기 보기에 표시됩니다.
- 개요 페이지의 이름 필드에 기능 이름을
입력하십시오(예: XPath Extensions Feature).
- 개요 페이지에서 내보내기 마법사에 대한 링크를 클릭하십시오.
- 아카이브 파일을 선택하고, 파일의 위치와 이름(예:
xpath_extensions.zip)을 지정한 다음 완료를 클릭하십시오.
주: 이 기능 플러그인은 여러 사용자 정의 XPath 함수 프로젝트에 사용할 수 있습니다.
- 보고서를 디자인하려는 Eclipse 인스턴스로 새 플러그인을 가져오십시오.
- 아카이브 파일을 디렉토리(예: C:/temp/xpath_extensions)로 추출하십시오.
- Eclipse에서 를 클릭하십시오.
- 설치/갱신 마법사에서 설치할 새로운 기능 검색을 클릭하고
다음을 클릭하십시오.
- 새 로컬 사이트를 클릭하고 기능과 플러그인이 포함되어 있는
폴더를 선택한 다음 확인, 완료를 차례로 클릭하십시오.
- 검색 결과 대화 상자에서 기능을 선택하고 다음을 클릭하십시오.
- 라이센스 계약 약관에 동의하면 라이센스 계약 약관에 동의함을 선택하고 다음,
완료를 차례로 클릭하십시오.
- 컴퓨터를 다시 시작하라는 메시지가 표시되면 예를 클릭하십시오.
결과
이제 보고서 디자인에서 새 XPath 확장을 사용할 수 있습니다.
주: 보고서 디자인 사용자는 먼저 새 기능도 가져와야 사용자 정의 XPath 함수에 의존하는
보고서 디자인에서 보고서를 생성할 수 있습니다. "사용자 정의 XPath 함수 가져오기" 주제에서는
일반적인 정보를 제공하지만, RPTDESIGN 파일과 함께 제공되는,
기능을 얻을 수 있는 위치와 기능 사용법에 대해 설명하는 사용자 정의 사용자 문서를 제공할 수도 있습니다.