속성 class에 해당하는 클래스를 로드하는 클래스이다.
// 플렛폼에서 익스텐션레지스트리를 얻은 후 해당 플러그인 ID 및
// 익스텐션포인트이름을 이용해 익스텐션 포인트를 획득한다.
// 획득한 익스텐션 포인트를 확장하는 모든 익스텐션을 획득한다.
IExtension[] extensions = Platform.getExtensionRegistry()
.getExtensionPoint(Activator.PLUGIN_ID, EXTENTION_POINT_NAME)
.getExtensions();
for (IExtension extension : extensions) {
// 익스텐션의 설정 정보를 취득한다.
for (IConfigurationElement configurationElement : extension
.getConfigurationElements()) {
// 설정정보에서 속성명이 class인 속성을 취득한다. 여기에서는 그 값은
// 로드하고자하는 어떤 클래스의 "패키지.클래스명"의 문자열이다.
String classAttr = configurationElement.getAttribute("class");
try {
Class clazz = Platform.getBundle(
extension.getContributor().getName()).loadClass(
classAttr);
beanFactoryList.add((BeanFactory) clazz.newInstance());
} catch (Exception e1) {
throw new RuntimeException(e1);
}
}
}
댓글 없음:
댓글 쓰기