ObjectName
ObjectName (객체 이름)
MBean의 객체 이름 또는 여러 MBean의 이름과 일치할 수 있는 패턴을 나타내는 클래스예요. 이 클래스의 인스턴스는 불변이에요. Comparable<ObjectName>와 QueryExp를 구현해요.
본문
이 클래스의 인스턴스는 두 가지를 나타내는 데 사용될 수 있어요.
- 객체 이름
- 쿼리 문맥에서의 객체 이름 패턴
구조: 객체 이름은 도메인(domain)과 키 프로퍼티(key properties) 두 부분으로 구성돼요. 도메인은 콜론(:)을 포함하지 않는 문자열이에요. 도메인에 와일드카드(* 또는 ?)가 하나 이상 포함되면 객체 이름은 패턴이 돼요. *는 0개 이상의 문자 시퀀스와 일치하고 ?는 단일 문자와 일치해요.
키 프로퍼티는 키와 연관 값의 순서 없는 집합이에요. 각 키는 비어 있지 않은 문자열이며 콤마(,), 등호(=), 콜론, 별표, 물음표를 포함할 수 없어요. 같은 키는 객체 이름에 두 번 나타날 수 없어요.
각 키와 연관된 값은 따옴표가 없는(quoted) 또는 따옴표가 있는 문자열이에요. 따옴표가 없는 값은 콤마, 등호, 콜론, 따옴표를 포함할 수 없어요. 값에 와일드카드가 포함되면 프로퍼티 값 패턴이 돼요.
따옴표가 있는 값에서 백슬래시(\)는 특별한 의미를 가져요. 백슬래시 다음에는 다른 백슬래시, n(개행), 따옴표, 물음표, 별표가 올 수 있어요.
패턴 종류: ObjectName은 프로퍼티 목록 패턴(property list pattern), 프로퍼티 값 패턴(property value pattern), 프로퍼티 패턴(property pattern), 또는 도메인 패턴(domain pattern)일 수 있어요. 객체 이름의 도메인 부분에 와일드카드가 포함되면 도메인 패턴이에요.
getObjectName 유틸리티: String domain, Hashtable props를 받는 생성자가 있어요. 또한 ObjectName(String name) 생성자는 MalformedObjectNameException을 던질 수 있어요. isPattern(), isDomainPattern(), isPropertyPattern() 등으로 객체 이름이 패턴인지 검사하고, getCanonicalName(), getDomain(), getKeyProperty(String), getKeyPropertyList() 등으로 구성 요소를 반환해요.