Interface Name
Interface Name
public interface Name
extends Cloneable, Serializable, Comparable<Object>
Name 인터페이스는 일반적인 이름 — 구성 요소의 정렬된 시퀀스 — 를 나타내요. 복합 이름(composite name, 여러 네임스페이스에 걸친 이름)이거나 복합 이름(compound name, 개별 계층적 네이밍 시스템 내에서 사용되는 이름)일 수 있어요. Name에는 서로 다른 구현이 있을 수 있어요. 예를 들어 복합 이름, URL, 또는 네임스페이스별 복합 이름 등이에요. 이름의 구성 요소는 번호가 매겨져요. N개의 구성 요소를 가진 이름의 인덱스는 0부터 N 미만까지의 범위를 가져요. 이 범위는 [0,N)으로 쓸 수 있어요. 가장 중요한 구성 요소는 인덱스 0에 있어요. 빈 이름은 구성 요소가 없어요. 이 인터페이스의 어떤 메서드도 이름이나 이름 구성 요소인 매개변수에 대한 유효한 값으로 null을 받아들이지 않아요. 마찬가지로 이름이나 이름 구성 요소를 반환하는 메서드는 결코 null을 반환하지 않아요. Name의 인스턴스는 그 접근이 읽기 전용이 아니면 동시 다중 스레드 접근에 대해 동기화되지 않을 수 있어요.
serialVersionUID
@Deprecated
static final long serialVersionUID
클래스의 이전 버전과의 직렬화 호환성을 나타내도록 설정된 클래스 지문(fingerprint)이에요.
- See Also: 상수 필드 값(Constant Field Values)
clone
Object clone()
이 이름의 새 복사본을 생성해요. 이 이름의 구성 요소에 대한 이후의 변경은 새 복사본에 영향을 주지 않고 그 반대도 마찬가지예요.
- Returns: 이 이름의 복사본
- See Also: Object.clone()
compareTo
int compareTo(Object obj)
이 이름을 다른 이름과 순서로 비교해요. 이 이름이 주어진 이름보다 작으면 음의 정수, 같으면 0, 크면 양의 정수를 반환해요. Object.equals()와 마찬가지로, 이름의 순서 개념은 이 인터페이스를 구현하는 클래스에 따라 달라요. 예를 들어 순서는 이름 구성 요소의 사전순(lexicographical) 순서에 기반할 수 있어요. 대소문자 처리 방법 같은 이름의 특정 속성이 순서에 영향을 줄 수 있어요. 일반적으로 서로 다른 클래스의 두 이름은 비교될 수 없어요.
- Specified by:
Comparable<Object>인터페이스의compareTo - Parameters: obj - 비교할, null이 아닌 객체
- Returns: 이 이름이 주어진 이름보다 작으면 음의 정수, 같으면 0, 크면 양의 정수
- Throws: ClassCastException - obj가 이 이름과 비교될 수 있는 타입의
Name이 아닐 때 - See Also: Comparable.compareTo(Object)
size
int size()
이 이름의 구성 요소 수를 반환해요.
- Returns: 이 이름의 구성 요소 수
isEmpty
boolean isEmpty()
이 이름이 빈 이름인지 결정해요. 빈 이름은 구성 요소가 0개인 이름이에요.
- Returns: 이 이름이 비어 있으면 true, 그렇지 않으면 false
getAll
Enumeration<String> getAll()
이 이름의 구성 요소를 문자열의 열거로 가져와요. 이 이름에 대한 갱신이 열거에 미치는 영향은 정의되지 않아요. 이름의 구성 요소가 0개이면 빈(null이 아닌) 열거가 반환돼요.
- Returns: 이 이름의 구성 요소들의 열거, 각각 문자열
get
String get(int posn)
이 이름의 구성 요소를 가져와요.
- Parameters: posn - 가져올 구성 요소의 0 기반 인덱스. 범위는 [0, size())여야 해요
- Returns: 인덱스 posn의 구성 요소
- Throws: ArrayIndexOutOfBoundsException - posn이 지정된 범위 밖일 때
getPrefix
Name getPrefix(int posn)
구성 요소가 이 이름의 구성 요소의 접두사로 구성된 이름을 만들어요. 이 이름에 대한 이후의 변경은 반환된 이름에 영향을 주지 않고 그 반대도 마찬가지예요.
- Parameters: posn - 멈출 구성 요소의 0 기반 인덱스. 범위는 [0, size()]여야 해요
- Returns: [0, posn) 범위의 인덱스에 있는 구성 요소들로 구성된 이름
- Throws: ArrayIndexOutOfBoundsException - posn이 지정된 범위 밖일 때
getSuffix
Name getSuffix(int posn)
구성 요소가 이 이름의 구성 요소의 접미사로 구성된 이름을 만들어요. 이 이름에 대한 이후의 변경은 반환된 이름에 영향을 주지 않고 그 반대도 마찬가지예요.
- Parameters: posn - 시작할 구성 요소의 0 기반 인덱스. 범위는 [0, size()]여야 해요
- Returns: [posn, size()) 범위의 인덱스에 있는 구성 요소들로 구성된 이름. posn이 size()와 같으면 빈 이름이 반환돼요
- Throws: ArrayIndexOutOfBoundsException - posn이 지정된 범위 밖일 때
startsWith
boolean startsWith(Name n)
이 이름이 지정된 접두사로 시작하는지 결정해요. n이 getPrefix(n.size())와 같으면 접두사예요.
- Parameters: n - 확인할 이름
- Returns: n이 이 이름의 접두사이면 true, 그렇지 않으면 false
endsWith
boolean endsWith(Name n)
이 이름이 지정된 접미사로 끝나는지 결정해요. n이 getSuffix(size()-n.size())와 같으면 접미사예요.
- Parameters: n - 확인할 이름
- Returns: n이 이 이름의 접미사이면 true, 그렇지 않으면 false
addAll
Name addAll(Name suffix)
throws InvalidNameException
이름의 구성 요소를 — 순서대로 — 이 이름의 끝에 추가해요.
- Parameters: suffix - 추가할 구성 요소들
- Returns: 갱신된 이름(새 것이 아님)
- Throws: InvalidNameException - suffix가 유효한 이름이 아니거나, 구성 요소를 추가하면 이 이름의 구문 규칙을 위반할 때
addAll
Name addAll(int posn,
Name n)
throws InvalidNameException
이름의 구성 요소를 — 순서대로 — 이 이름의 지정된 위치에 추가해요. 새 구성 요소의 첫 번째 인덱스 이상의 이 이름의 구성 요소들은 새 구성 요소를 수용하도록 위로(0에서 멀어지는 방향) 이동해요.
- Parameters: posn - 새 구성 요소를 추가할 이 이름의 인덱스. 범위는 [0, size()]여야 해요
- Returns: 갱신된 이름(새 것이 아님)
- Throws: ArrayIndexOutOfBoundsException - posn이 지정된 범위 밖일 때
add
Name add(String comp)
throws InvalidNameException
이 이름의 끝에 단일 구성 요소를 추가해요.
- Parameters: comp - 추가할 구성 요소
- Returns: 갱신된 이름(새 것이 아님)
- Throws: InvalidNameException - comp를 추가하면 이 이름의 구문 규칙을 위반할 때
add
Name add(int posn,
String comp)
throws InvalidNameException
이 이름의 지정된 위치에 단일 구성 요소를 추가해요. 새 구성 요소의 인덱스 이상의 이 이름의 구성 요소들은 새 구성 요소를 수용하도록 위로 한 칸(인덱스 0에서 멀어지는 방향) 이동해요.
- Parameters: posn - 새 구성 요소를 추가할 인덱스. 범위는 [0, size()]여야 해요
- Returns: 갱신된 이름(새 것이 아님)
- Throws: ArrayIndexOutOfBoundsException - posn이 지정된 범위 밖일 때
remove
Object remove(int posn)
throws InvalidNameException
이 이름에서 구성 요소를 제거해요. 지정된 위치의 이 이름의 구성 요소가 제거돼요. 이 위치보다 큰 인덱스의 구성 요소들은 한 칸 아래로(인덱스 0 쪽으로) 이동해요.
- Parameters: posn - 제거할 구성 요소의 인덱스. 범위는 [0, size())여야 해요
- Returns: 제거된 구성 요소(문자열)
- Throws: ArrayIndexOutOfBoundsException - posn이 지정된 범위 밖일 때