|
JavaTM 2 Platform Std. Ed. v1. 4.0 |
||||||||||
전의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 모든 클래스 | ||||||||||
개요: 상자 | 필드 | constructor | 메소드 | 상세: 필드 | constructor | 메소드 |
java.lang.Object | +--java.beans.Introspector
Introspector 클래스는 툴을 사용해, 타겟 JavaBean 가 서포트하는 프로퍼티, 이벤트, 메소드를 조사하는 표준적인 수법을 제공합니다.
Introspector 는 상기의 3 종류의 정보에 대해, bean 의 클래스와 슈퍼 클래스를 따로 따로 분석해, 명시적 혹은 암시적인 정보를 찾아내, 그 정보를 사용해 타겟의 bean 를 포괄적으로 기술하는 BeanInfo 오브젝트를 구축합니다.
Foo 클래스에 대해서는 정보의 문의시에 null 이외의 값을 제공하는 FooBeanInfo 클래스가 있으면, 명시적인 정보를 취득할 수 있습니다. 우선, 타겟의 bean 클래스의 완전 지정의 패키지명에 「BeanInfo」를 부가해 신규의 클래스명으로 해, BeanInfo 클래스를 검색합니다. 이것에 실패했을 경우는 이 완전 지정의 패키지명의 마지막 클래스명에 해당하는 부분을 사용해, BeanInfo 패키지 검색 패스로 지정된 패키지 마다 해당 클래스를 검색합니다.
이와 같이, 예를 들어 sun.xyz.OurButton 이라고 하는 클래스의 경우, 우선 sun.xyz.OurButtonBeanInfo 라고 하는 BeanInfo 클래스를 검색해, 발견되지 않는 경우는 BeanInfo 검색 패스내의 패키지 마다 OurButtonBeanInfo 클래스를 검색합니다.
클래스가 명시적인 BeanInfo 를 제공하는 경우는 이것을 분석 클래스 및 상속 클래스로부터 취득한 BeanInfo 정보에 추가합니다. 명시적인 정보는 현재의 클래스와 그 base class에 관한 신뢰할 수 있는 정보라고 볼 수 있으므로, 슈퍼 클래스의 연쇄의 검색은 실시하지 않습니다.
클래스의 명시적인 BeanInfo 가 발견되지 않는 경우는 저레벨의 리플렉션을 사용해 클래스의 메소드를 조사해 표준 설계 패턴을 적용해, 프로퍼티의 액세스용 메소드, 이벤트 소스 메소드, public 메소드를 식별합니다. 다음에, 클래스의 슈퍼 클래스를 분석해, 이 정보를 추가합니다. 이 때, 슈퍼 클래스의 연쇄를 거슬러 올라갈 가능성도 있습니다.
인트로스페크션 및 설계 패턴의 상세한 것에 대하여는 「JavaBeans specification」를 참조해 주세요.
필드의 개요 | |
static int |
IGNORE_ALL_BEANINFO
|
static int |
IGNORE_IMMEDIATE_BEANINFO
|
static int |
USE_ALL_BEANINFO
|
메소드의 개요 | |
static String |
decapitalize (String name)
캐릭터 라인을 인수에 취해, 통상의 Java 변수명의 대문자 사용법에 따라 변환하는 유틸리티 메소드입니다. |
static void |
flushCaches ()
Introspector 의 내장형 캐쉬를 모두 플래시 합니다. |
static void |
flushFromCaches (Class clz)
지정의 클래스에 관한 Introspector 의 내장형 캐쉬 정보를 플래시 합니다. |
static BeanInfo |
getBeanInfo (Class beanClass)
Java bean 의 인트로스페크션을 실시해, 모든 프로퍼티, 공개 메소드, 이벤트에 대해 조사합니다. |
static BeanInfo |
getBeanInfo (Class beanClass,
Class stopClass)
Java bean 의 인트로스페크션을 실시해, 지정의 「정지」포인트에 이를 때까지 프로퍼티, 공개된 메소드를 조사합니다. |
static BeanInfo |
getBeanInfo (Class beanClass,
int flags)
몇개의 제어 플래그에 따라, Java bean 의 인트로스페크션을 실시해, 모든 프로퍼티, 공개된 메소드, 이벤트에 대해 조사합니다. |
static String [] |
getBeanInfoSearchPath ()
BeanInfo 클래스의 검색에 사용하는 패키지명의 리스트를 취득합니다. |
static void |
setBeanInfoSearchPath (String [] path)
BeanInfo 클래스의 검색에 사용하는 패키지명의 리스트를 변경합니다. |
클래스 java.lang. Object 에서 상속받은 메소드 |
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait |
필드의 상세 |
public static final int USE_ALL_BEANINFO
public static final int IGNORE_IMMEDIATE_BEANINFO
public static final int IGNORE_ALL_BEANINFO
메소드의 상세 |
public static BeanInfo getBeanInfo(Class beanClass) throws IntrospectionException
이 Java Bean 의 BeanInfo 클래스에 대해서 인트로스페크션을 실행했던 적이 있는 경우, BeanInfo 캐쉬로부터 BeanInfo 클래스를 취득할 수 있습니다.
beanClass
- 분석되는 bean 클래스
IntrospectionException
- 인트로스페크션중에 예외가 발생했을 경우flushCaches()
,
flushFromCaches(java.lang.Class)
public static BeanInfo getBeanInfo(Class beanClass, int flags) throws IntrospectionException
이 Java Bean 의 BeanInfo 클래스에 대해서, 같은 인수를 사용해 인트로스페크션을 실행했던 적이 있는 경우, BeanInfo 캐쉬로부터 BeanInfo 클래스를 취득할 수 있습니다.
beanClass
- 분석되는 bean 클래스flags
- 인트로스페크션을 제어하기 위한 플래그. flags == USE_ALL_BEANINFO 의 경우, 발견된 모든 BeanInfo 클래스를 사용한다. flags == IGNORE_IMMEDIATE_BEANINFO 의 경우, 지정된 beanClass 의 BeanInfo 를 모두 무시한다. flags == IGNORE_ALL_BEANINFO 의 경우, 지정된 beanClass 또는 그 모든 친클래스의 BeanInfo 를 모두 무시한다
IntrospectionException
- 인트로스페크션중에 예외가 발생했을 경우public static BeanInfo getBeanInfo(Class beanClass, Class stopClass) throws IntrospectionException
이 Java Bean 의 BeanInfo 클래스에 대해서, 같은 인수를 사용해 인트로스페크션을 실행했던 적이 있는 경우, BeanInfo 캐쉬로부터 BeanInfo 클래스를 취득할 수 있습니다.
stopClass
- 분석을 정지하는 base class. stopClass 나 그 base class에 포함되는 메소드, 프로퍼티, 이벤트는 분석 처리에서는 모두 무시된다
IntrospectionException
- 인트로스페크션중에 예외가 발생했을 경우public static String decapitalize(String name)
예를 들어, 「FooBah」는 「fooBah」, 「X」는 「x」에 변환됩니다만, 「URL」는 변환되지 않습니다.
name
- 소문자에 변환되는 캐릭터 라인
public static String [] getBeanInfoSearchPath()
초기설정은 {"sun.beans.infos"}
public static void setBeanInfoSearchPath(String [] path)
시큐러티 매니저가 존재하는 경우, 최초로, 시큐러티 매니저의 checkPropertiesAccess
메소드가 불려 갑니다. 이것에 의해, SecurityException 가 슬로우 되는 경우가 있습니다.
path
- 패키지명의 배열
SecurityException
- 시큐러티 매니저가 존재해, 시큐러티 매니저의 checkPropertiesAccess
메소드가 시스템 프로퍼티의 설정을 허가하지 않는 경우SecurityManager.checkPropertiesAccess()
public static void flushCaches()
public static void flushFromCaches(Class clz)
clz
- 플래시 되는 Class 오브젝트
NullPointerException
- Class 오브젝트가 null 의 경우
|
JavaTM 2 Platform Std. Ed. v1. 4.0 |
||||||||||
전의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 모든 클래스 | ||||||||||
개요: 상자 | 필드 | constructor | 메소드 | 상세: 필드 | constructor | 메소드 |
Java, Java 2 D, 및 JDBC 는 미국 및 그 외의 나라에 있어서의 미국 Sun Microsystems, Inc. 의 상표 혹은 등록상표입니다.
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.