JavaTM Platform
Standard Ed. 6

javax.naming
클래스 CompositeName

java.lang.Object 
  상위를 확장 javax.naming.CompositeName
모든 구현된 인터페이스:
Serializable , Cloneable , Comparable <Object >, Name


public class CompositeName
extends Object
implements Name

이 클래스는, 합성명을 나타냅니다. 합성명이란, 복수의 이름 공간에 걸치는 일련의 컴퍼넌트의 이름입니다. 각 컴퍼넌트는, 네이밍 시스템의 이름 공간에 유래하는 캐릭터 라인명입니다. 컴퍼넌트가 계층 이름 공간으로부터 발생하는 경우, CompoundName 클래스를 사용하는 것으로 그 기본 부분에 구문 분석 할 수가 있습니다.

합성명의 컴퍼넌트에는, 번호를 붙일 수 있습니다. N 컴퍼넌트의 합성명의 인덱스 범위는, 0 으로부터 N 미만의 범위에서 번호를 붙일 수 있습니다. 이 범위는,[0, N] 와 나타내집니다. 무엇보다 중요한 컴퍼넌트는, 인덱스 0 에 있습니다. 빈 상태(empty)의 합성명에는 컴퍼넌트는 없습니다.

JNDI 합성명의 구문

JNDI 에서는, 합성명의 표준 캐릭터 라인 표기가 정의됩니다. 이 표기에서는, 각 컴퍼넌트를 단락짓기 위한 컴퍼넌트 단락 문자 (slash (/))를 사용해, 왼쪽에서 오른쪽으로 합성명의 컴퍼넌트가 연결됩니다. JNDI 구문에서는, 다음의 메타캐라크타가 정의됩니다. 선행하는 인용부호, 메타캐라크타에 선행하는 이스케이프, 컴퍼넌트의 말미의 이스케이프, 또는 인용부호가 없는 컴퍼넌트의 컴퍼넌트 단락 문자에는, 그 컴퍼넌트가 합성 명문자열에 변환될 때, 전에 이스케이프 문자를 붙일 필요가 있습니다. 또는, 이러한 이스케이프 문자를 추가하지 않는 경우는, 단일 인용부호 또는 이중 인용부호를 대로 사용해, 컴퍼넌트 전체를 인용부호로 둘러쌉니다. 이중 인용부호로 둘러싸인 컴퍼넌트의 단일 인용부호는, 메타캐라크타라고는 보이지 못하고, 이스케이프 되는 일도 없습니다. 또 역의 경우도 같습니다.

2 개의 합성명을 비교하는 경우는, 대문자 소문자의 구별이 중요하게 됩니다.

선행하는 컴퍼넌트 단락 문자 (단락 문자로 시작되는 합성명의 캐릭터 라인)는, 선행하는 빈 상태(empty)의 컴퍼넌트 (빈 상태(empty)의 캐릭터 라인으로 구성되는 컴퍼넌트)를 나타냅니다. 말미의 컴퍼넌트 단락 문자 (단락 문자로 끝나는 합성명의 캐릭터 라인)는, 말미의 빈 상태(empty)의 컴퍼넌트를 나타냅니다. 인접하는 복합 단락 문자는, 빈 상태(empty)의 컴퍼넌트를 나타냅니다.

합성명의 예

다음의 겉(표)에, 합성명의 예를 나타냅니다. 각 행은, 합성명의 캐릭터 라인 형식, 및 대응하는 구조 형식 (CompositeName)을 나타내고 있습니다.

캐릭터 라인명 CompositeName
"" {} (빈 상태(empty)의 이름 == 새로운 CompositeName("") == 새로운 CompositeName())
"x" {"x"}
"x/y" {"x", "y"}
"x/" {"x", ""}
"/x" {"", "x"}
"/" {""}
"//" {"", ""}
"/x/" {"", "x", ""}
"x//y" {"x", "", "y"}

변환의 예

변환의 예를 나타냅니다. 우측의 열에 캐릭터 라인의 합성명의 변환을, 좌측의 열에 대응하는 CompositeName 의 변환을 나타냅니다. 2 개의 합성명을 가지는 캐릭터 라인 형식의 변환은, 캐릭터 라인 형식을 연결할 뿐입니다.

캐릭터 라인명 CompositeNames
"x/y" + "/" = x/y/ {"x", "y"} + {""} = {"x", "y", ""}
"" + "x" = "x" {} + {"x"} = {"x"}
"/" + "x" = "/x" {""} + {"x"} = {"", "x"}
"x" + "" + "" = "x" {"x"} + {} + {} = {"x"}

multi-thread 액세스

CompositeName 인스턴스는, 병행 multi-thread 액세스에 대해서는 동기화 되지 않습니다. 복수의 thread로부터 CompositeName 에 액세스 해 변경하는 경우는, 객체를 잠글 필요가 있습니다.

도입된 버젼:
1.3
관련 항목:
직렬화 된 형식

생성자 의 개요
  CompositeName ()
          새로운 빈 상태(empty)의 합성명을 구축합니다.
protected CompositeName (Enumeration <String > comps)
          'comps'로 지정되는 컴퍼넌트를 사용해, 새로운 합성명 인스턴스를 구축합니다.
  CompositeName (String  n)
          합성명의 구문 (왼쪽에서 오른쪽, slash로 단락지어진다)을 사용해, 캐릭터 라인 n 를 구문 분석 하는 것으로, 새로운 합성명 인스턴스를 구축합니다.
 
메소드의 개요
 Name add (int posn, String  comp)
          단일의 컴퍼넌트를, 이 합성명의 지정한 위치에 추가합니다.
 Name add (String  comp)
          단일의 컴퍼넌트를 이 합성명의 마지막에 추가합니다.
 Name addAll (int posn, Name  n)
          합성명의 컴퍼넌트를, 이 합성명의 지정한 위치에 순서에 추가합니다.
 Name addAll (Name  suffix)
          합성명의 컴퍼넌트를, 이 합성명의 말미에 순서에 추가합니다.
 Object clone ()
          이 합성명의 카피를 생성합니다.
 int compareTo (Object  obj)
          CompositeName 와 지정된 Object 의 순서를 비교합니다.
 boolean endsWith (Name  n)
          합성명이 이 합성명의 접미사(suffix)일지가 판정됩니다.
 boolean equals (Object  obj)
          2 개의 합성명이 동일한가를 판정합니다.
 String get (int posn)
          이 합성명의 컴퍼넌트를 가져옵니다.
 Enumeration <String > getAll ()
          이 합성명의 컴퍼넌트를, 캐릭터 라인의 열거로서 가져옵니다.
 Name getPrefix (int posn)
          컴퍼넌트가 이 합성명의 컴퍼넌트의 접두사로 구성되는 합성명을 작성합니다.
 Name getSuffix (int posn)
          컴퍼넌트가 이 합성명의 컴퍼넌트의 접미사(suffix)로 구성되는 합성명을 작성합니다.
 int hashCode ()
          이 합성명의 해시 코드를 계산합니다.
 boolean isEmpty ()
          이 합성명이 빈 상태(empty)인지를 판정합니다.
 Object remove (int posn)
          이 합성명으로부터 컴퍼넌트를 삭제합니다.
 int size ()
          이 합성명의 컴퍼넌트의 수를 가져옵니다.
 boolean startsWith (Name  n)
          합성명이 이 합성명의 접두사일지가 판정됩니다.
 String toString ()
          이 합성명의 캐릭터 라인 표기를 생성합니다.
 
클래스 java.lang. Object 로부터 상속된 메소드
finalize , getClass , notify , notifyAll , wait , wait , wait
 

생성자 의 상세

CompositeName

protected CompositeName(Enumeration <String > comps)
'comps'로 지정되는 컴퍼넌트를 사용해, 새로운 합성명 인스턴스를 구축합니다. 이 protected 메소드는, clone(), getPrefix(), getSuffix()등의 메소드를 오버라이드(override) 할 경우에, CompositeName 의 서브 클래스에서 사용됩니다.

파라미터:
comps - 새로운 합성명의 컴퍼넌트를 포함하는 null 이외의 열거. 각 요소의 클래스는 String 열거는 요소의 추출에 사용된다

CompositeName

public CompositeName(String  n)
              throws InvalidNameException 
합성명의 구문 (왼쪽에서 오른쪽, slash로 단락지어진다)을 사용해, 캐릭터 라인 n 를 구문 분석 하는 것으로, 새로운 합성명 인스턴스를 구축합니다. 합성명의 구문은, 클래스의 설명 때에 자세하게 설명합니다.

파라미터:
n - 구문 분석 하는 null 이외의 캐릭터 라인
예외:
InvalidNameException - n 에 무효인 합성명의 구문이 있는 경우

CompositeName

public CompositeName()
새로운 빈 상태(empty)의 합성명을 구축합니다. isEmpty() 가 불려 가면(자), true 를 돌려줍니다.

메소드의 상세

toString

public String  toString()
이 합성명의 캐릭터 라인 표기를 생성합니다. 캐릭터 라인 표기에서는, 합성명의 각 컴퍼넌트가 열거되어 각 컴퍼넌트가 slash 문자로 단락지어집니다. 인용과 이스케이프 문자는, JNDI 구문에 따를 필요가 있는 장소에 적용됩니다. 이것에 대해서는, 클래스의 설명 때에 설명합니다. 빈 상태(empty)의 컴퍼넌트는, 빈 상태(empty)의 캐릭터 라인으로 나타내집니다. 이와 같이 생성된 캐릭터 라인 표기를 CompositeName 생성자 에 인도하면(자), 새로운 같은 합성명을 작성할 수 있습니다.

오버라이드(override):
클래스 Object 내의 toString
반환값:
이 합성명의 null 이외의 캐릭터 라인 표기

equals

public boolean equals(Object  obj)
2 개의 합성명이 동일한가를 판정합니다. obj 가 null 인지, 또는 합성명이 아닌 경우는, false 를 돌려줍니다. 한편의 각 컴퍼넌트가 이제(벌써) 한편의 대응하는 컴퍼넌트와 동일한 경우는, 2 개의 합성명은 동일해집니다. 이것은, 양쪽 모두의 합성명에 같은 수의 컴퍼넌트가 있어, 각 컴퍼넌트의 equals() 테스트로 이제(벌써) 한편의 이름의 대응하는 컴퍼넌트를 조사하면(자) true 가 반환되는 것을 나타내고 있습니다.

오버라이드(override):
클래스 Object 내의 equals
파라미터:
obj - null 의 가능성이 있는 비교 대조 객체
반환값:
obj 가 이 합성명으로 동일한 경우는 true, 그렇지 않은 경우는 false
관련 항목:
hashCode()

hashCode

public int hashCode()
이 합성명의 해시 코드를 계산합니다. 해시 코드란, 이 합성명의 각 컴퍼넌트의 해시 코드의 집합입니다.

오버라이드(override):
클래스 Object 내의 hashCode
반환값:
이 이름의 해시 코드를 나타내는 int
관련 항목:
equals(java.lang.Object)

compareTo

public int compareTo(Object  obj)
CompositeName 와 지정된 Object 의 순서를 비교합니다. 이 Name 가 지정된 Object 보다 작은 경우는 부의 정수, 동일한 경우는 0, 큰 경우는 정의 정수를 각각 돌려줍니다.

obj 가 null, 또는 CompositeName 의 인스턴스가 아닌 경우는, ClassCastException 가 throw 됩니다.

2 개의 합성명이 동일하다고는 어떠한 의미인가에 대해서는, equals()를 참조해 주세요. 2 개의 합성명이 동일한 경우는, 0 을 돌려줍니다.

합성명의 순서부는, 캐릭터 라인 비교의 사전 규칙에 따르고 있습니다. 합성명의 모든 컴퍼넌트에 적용되는 확장 기능도 있습니다. 그 결과, 모든 컴퍼넌트가 지정한 순서로, 2 개의 라인 업에 적용된 사전 규칙에 따라 늘어놓을 수 있던 것처럼 됩니다. 이 합성명이 「사전 규칙에 따르며」obj 보다 작은 경우는, 부의 수가 돌려주어집니다. 이 합성명이 「사전 규칙에 따르며」obj 보다 큰 경우는, 정의 수가 돌려주어집니다.

정의:
인터페이스 Comparable <Object > 내의 compareTo
정의:
인터페이스 Name 내의 compareTo
파라미터:
obj - 비교되는 null 이외의 객체
반환값:
이 Name 가 지정된 Object 보다 작은 경우는 부의 정수, 동일한 경우는 0, 큰 경우는 정의 정수
예외:
ClassCastException - obj 가 CompositeName 가 아닌 경우
관련 항목:
Comparable.compareTo(Object)

clone

public Object  clone()
이 합성명의 카피를 생성합니다. 이 합성명의 컴퍼넌트를 변경해도, 새로운 카피에는 영향을 주지 않습니다. 또 역의 경우도 같습니다.

정의:
인터페이스 Name 내의 clone
오버라이드(override):
클래스 Object 내의 clone
반환값:
이 합성명의 null 이외의 카피
관련 항목:
Cloneable

size

public int size()
이 합성명의 컴퍼넌트의 수를 가져옵니다.

정의:
인터페이스 Name 내의 size
반환값:
이 합성명의 컴퍼넌트의 수의 부 이외의 값

isEmpty

public boolean isEmpty()
이 합성명이 빈 상태(empty)인지를 판정합니다. 컴퍼넌트가 제로의 경우, 합성명은 빈 상태(empty)입니다.

정의:
인터페이스 Name 내의 isEmpty
반환값:
이 합성명이 빈 상태(empty)의 경우는 true, 그렇지 않은 경우는 false

getAll

public Enumeration <String > getAll()
이 합성명의 컴퍼넌트를, 캐릭터 라인의 열거로서 가져옵니다. 이 열거로 이 합성명을 갱신하는 영향에 대해서는, 정의되고 있지 않습니다.

정의:
인터페이스 Name 내의 getAll
반환값:
이 합성명의 컴퍼넌트의 null 이외의 열거. 열거된 각 요소의 클래스는 String

get

public String  get(int posn)
이 합성명의 컴퍼넌트를 가져옵니다.

정의:
인터페이스 Name 내의 get
파라미터:
posn - 취득하는 컴퍼넌트의 0 으로부터 시작되는 인덱스 범위는 [0, size()] 가 아니면 안된다
반환값:
인덱스 위치의 null 이외의 컴퍼넌트
예외:
ArrayIndexOutOfBoundsException - 위치가 지정한 범위에 없는 경우

getPrefix

public Name  getPrefix(int posn)
컴퍼넌트가 이 합성명의 컴퍼넌트의 접두사로 구성되는 합성명을 작성합니다. 그 후 이 합성명을 변경해도, 반환되는 이름에는 영향을 주지 않습니다.

정의:
인터페이스 Name 내의 getPrefix
파라미터:
posn - 정지하는 컴퍼넌트의 0 으로부터 시작되는 인덱스 범위는 [0, size()] 가 아니면 안된다
반환값:
범위가 [0, posn] 의 인덱스의 컴퍼넌트로 구성되는 합성명
예외:
ArrayIndexOutOfBoundsException - 위치가 지정한 범위에 없는 경우

getSuffix

public Name  getSuffix(int posn)
컴퍼넌트가 이 합성명의 컴퍼넌트의 접미사(suffix)로 구성되는 합성명을 작성합니다. 그 후 이 합성명을 변경해도, 반환되는 이름에는 영향을 주지 않습니다.

정의:
인터페이스 Name 내의 getSuffix
파라미터:
posn - 개시하는 컴퍼넌트의 0 으로부터 시작되는 인덱스 범위는 [0, size()] 가 아니면 안된다
반환값:
범위가 [posn, size()] 의 인덱스의 컴퍼넌트로 구성되는 합성명 위치가 size()와 동일한 경우는, 빈 상태(empty)의 합성명이 반환된다
예외:
ArrayIndexOutOfBoundsException - 위치가 지정한 범위에 없는 경우

startsWith

public boolean startsWith(Name  n)
합성명이 이 합성명의 접두사일지가 판정됩니다. 합성명 'n'는, getPrefix(n.size())와 동일한 경우에 접두사가 됩니다. 즉, 이 합성명은 'n'로 시작됩니다. 'n'가 null 인지, 또는 합성명이 아닌 경우는, false 가 돌려주어집니다.

정의:
인터페이스 Name 내의 startsWith
파라미터:
n - null 의 가능성이 있는 판정 대상의 이름
반환값:
n 가 CompositeName 로, 이 합성명 의 접두사인 경우는 true, 그렇지 않은 경우는 false

endsWith

public boolean endsWith(Name  n)
합성명이 이 합성명의 접미사(suffix)일지가 판정됩니다. 합성명 'n'는, getSuffix(size() -n.size())와 동일한 경우에 접미사(suffix)이 됩니다. 즉, 이 합성명은 'n'로 종료합니다. n 가 null 인지, 또는 합성명이 아닌 경우는, false 가 돌려주어집니다.

정의:
인터페이스 Name 내의 endsWith
파라미터:
n - null 의 가능성이 있는 판정 대상의 이름
반환값:
n 가 CompositeName 로, 이 합성명 의 접미사(suffix)인 경우는 true, 그렇지 않은 경우는 false

addAll

public Name  addAll(Name  suffix)
            throws InvalidNameException 
합성명의 컴퍼넌트를, 이 합성명의 말미에 순서에 추가합니다.

정의:
인터페이스 Name 내의 addAll
파라미터:
suffix - 추가하는 null 이외의 컴퍼넌트
반환값:
새로운 CompositeName 는 아니고, 갱신된 CompositeName. null 는 불가
예외:
InvalidNameException - 접미사(suffix)이 합성명이 아닌 경우

addAll

public Name  addAll(int posn,
                   Name  n)
            throws InvalidNameException 
합성명의 컴퍼넌트를, 이 합성명의 지정한 위치에 순서에 추가합니다. 최초의 새로운 컴퍼넌트의 인덱스, 또는 그 뒤에 있는 이 합성명의 컴퍼넌트는, 새로운 컴퍼넌트를 수중에 넣기 위해서(때문에) 위에 이동 (인덱스 0 으로부터 멀어진다)합니다.

정의:
인터페이스 Name 내의 addAll
파라미터:
n - 추가하는 null 이외의 컴퍼넌트
posn - 새로운 컴퍼넌트가 추가되는 이 이름의 인덱스 범위는 [0, size()] 가 아니면 안된다
반환값:
새로운 CompositeName 는 아니고, 갱신된 CompositeName. null 는 불가
예외:
InvalidNameException - n 가 합성명이 아닌 경우
ArrayIndexOutOfBoundsException - 위치가 지정한 범위에 없는 경우

add

public Name  add(String  comp)
         throws InvalidNameException 
단일의 컴퍼넌트를 이 합성명의 마지막에 추가합니다.

정의:
인터페이스 Name 내의 add
파라미터:
comp - 추가하는 null 이외의 컴퍼넌트
반환값:
새로운 CompositeName 는 아니고, 갱신된 CompositeName. null 는 불가
예외:
InvalidNameException - 이름의 마지막에 컴퍼넌트를 추가하면(자), 이름의 구문에 위반하는 경우

add

public Name  add(int posn,
                String  comp)
         throws InvalidNameException 
단일의 컴퍼넌트를, 이 합성명의 지정한 위치에 추가합니다. 새로운 컴퍼넌트의 인덱스, 또는 그 뒤에 있는 이 합성명의 컴퍼넌트는, 새로운 컴퍼넌트를 수중에 넣기 위해서(때문에) 1 개(살)상에 이동 (인덱스 0 으로부터 멀어진다)합니다.

정의:
인터페이스 Name 내의 add
파라미터:
comp - 추가하는 null 이외의 컴퍼넌트
posn - 새로운 컴퍼넌트가 추가되는 인덱스 범위는 [0, size()] 가 아니면 안된다
반환값:
새로운 CompositeName 는 아니고, 갱신된 CompositeName. null 는 불가
예외:
ArrayIndexOutOfBoundsException - 위치가 지정한 범위에 없는 경우
InvalidNameException - 지정한 위치에 컴퍼넌트를 추가하면(자), 이름의 구문에 위반하는 경우

remove

public Object  remove(int posn)
              throws InvalidNameException 
이 합성명으로부터 컴퍼넌트를 삭제합니다. 위치 'posn'에 있는 합성명의 컴퍼넌트가 삭제되어'posn'보다 큰 인덱스의 컴퍼넌트는, 1 개(살)하 (인덱스 0 의 (분)편)로 이동합니다.

정의:
인터페이스 Name 내의 remove
파라미터:
posn - 삭제하는 컴퍼넌트의 인덱스 범위는 [0, size()] 가 아니면 안된다
반환값:
삭제된 컴퍼넌트 (String)
예외:
ArrayIndexOutOfBoundsException - 위치가 지정한 범위에 없는 경우 (합성명이 빈 상태(empty)의 경우를 포함한다)
InvalidNameException - 컴퍼넌트를 삭제하면(자), 이름의 구문에 위반하는 경우

JavaTM Platform
Standard Ed. 6

버그의 보고와 기능의 요청
한층 더 자세한 API 레퍼런스 및 개발자 문서에 대해서는,Java SE 개발자용 문서를 참조해 주세요. 개발자전용의 상세한 해설, 개념의 개요, 용어의 정의, 버그의 회피책, 및 코드 실례가 포함되어 있습니다.

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.