CompositeName
CompositeName (복합 이름)
여러 네임스페이스에 걸친 컴포넌트 이름들의 시퀀스를 나타내는 클래스입니다.
본문
각 컴포넌트는 어떤 네이밍 시스템의 네임스페이스에서 온 문자열 이름이며, 계층적 네임스페이스에서 온 컴포넌트라면 CompoundName 클래스를 사용해 원자적 부분으로 더 파싱할 수 있습니다. 컴포넌트 인덱스는 N개의 컴포넌트를 가진 복합 이름에서 0부터 N 미만까지이며, 가장 중요한 컴포넌트가 인덱스 0입니다. 빈 복합 이름은 컴포넌트가 없습니다.
JNDI는 복합 이름의 표준 문자열 표현을 정의하는데, 이는 컴포넌트 구분자(슬래시 /)를 사용해 컴포넌트들을 왼쪽에서 오른쪽으로 연결한 것입니다. 이스케이프(백슬래시 \), 따옴표(홑따옴표 '와 쌍따옴표 "), 컴포넌트 구분자(슬래시)가 메타 문자로 정의됩니다.
복합 이름을 비교할 때는 문자의 대소문자가 유의미합니다. 선행하는 컴포넌트 구분자는 선행 빈 컴포넌트를, 후행하는 컴포넌트 구분자는 후행 빈 컴포넌트를, 인접한 컴포넌트 구분자는 빈 컴포넌트를 나타냅니다. 예를 들어 문자열 "x/y"는 구조적으로 {"x", "y"}에 해당합니다.
CompositeName 인스턴스는 동시 다중 스레드 접근에 대해 동기화되지 않으므로, 여러 스레드가 하나의 CompositeName을 접근·수정하려면 객체를 잠가야 합니다.