Spec-Zone.ru › OpenJDK 8

Класс CompoundName

  • java.lang.Object
    • javax.naming.CompoundName
Все реализованные интерфейсы:
Serializable, Cloneable, Comparable<Object>, Имя

public class CompoundName
extends Object
implements Name

Этот класс представляет составное имя — имя из иерархического пространства имён. Каждый компонент составного имени является атомным именем.

Компоненты составного имени пронумерованы. Индексы составного имени с N компонентами варьируются от 0 до N (не включая N). Наибольший значимый компонент находится с индексом 0. Пустое составное имя не имеет компонентов.

Синтаксис составного имени

Синтаксис составного имени задаётся набором свойств:
jndi.syntax.direction
Направление для разбора ("right_to_left", "left_to_right", "flat"). Если не указано, по умолчанию используется "flat", что означает, что пространство имён является плоским без иерархической структуры.
jndi.syntax.separator
Разделитель между атомными компонентами имени. Требуется, если направление не "flat".
jndi.syntax.ignorecase
Если присутствует, "true" означает игнорировать регистр при сравнении компонентов имени. Если его значение не "true" или свойство отсутствует, регистр учитывается при сравнении компонентов имени.
jndi.syntax.escape
Если присутствует, указывает строку для экранирования, переопределяя разделители, экранирования и кавычки.
jndi.syntax.beginquote
Если присутствует, указывает строку, ограничивающую начало строкового значения в кавычках.
jndi.syntax.endquote
Строка, ограничивающая конец строкового значения в кавычках. Если присутствует, указывает строку, ограничивающую конец строкового значения в кавычках. Если не указано, используется syntax.beginquote в качестве кавычки закрытия.
jndi.syntax.beginquote2
Альтернативный набор открывающих/закрывающих кавычек.
jndi.syntax.endquote2
Альтернативный набор открывающих/закрывающих кавычек.
jndi.syntax.trimblanks
Если присутствует, "true" означает обрезку начальных и конечных пробелов в компоненте имени для целей сравнения. Если его значение не "true" или свойство отсутствует, пробелы имеют значение.
jndi.syntax.separator.ava
Если присутствует, указывает строку, разделяющую утверждения атрибут-значение при указании нескольких пар атрибут/значение (например, "," в age=65,gender=male).
jndi.syntax.separator.typeval
Если присутствует, указывает строку, которая разграничивает атрибут и значение (например, "=" в "age=65").
Эти свойства интерпретируются по следующим правилам:
  1. В строке без кавычек или экранирования любой экземпляр разделителя отделяет два атомных имени. Каждое атомное имя называется компонентом.
  2. Разделитель, кавычка или экранирование экранируется, если непосредственно предшествует (слева) экранирующей строке.
  3. Если есть два набора кавычек, определённая открывающая кавычка должна соответствовать своей закрывающей кавычке.
  4. Открывающая кавычка, которая не экранирована и предшествует компоненту, должна соответствовать не экранированной закрывающей кавычке в конце компонента. Такой заключённый в кавычки компонент называется компонентом в кавычках. Он анализируется путём удаления открывающей и закрывающей кавычек и обработки промежуточных символов как обычных символов, если не применяется ни одно из правил, относящихся к компонентам в кавычках, перечисленных ниже.
  5. Кавычки, вставленные в не заключённые в кавычки компоненты, обрабатываются как обычные строки и не требуют соответствия.
  6. Разделитель, который экранирован или появляется между не экранированными кавычками, обрабатывается как обычная строка и не является разделителем.
  7. Экранирующая строка внутри компонента в кавычках действует как экранирование только при появлении после соответствующей закрывающей кавычки. Это позволяет вставлять экранированные кавычки в компонент в кавычках.
  8. Экранированная экранирующая строка не обрабатывается как экранирующая строка.
  9. Экранирующая строка, которая не предшествует метастроке (кавычки или разделитель) и не находится в конце компонента, обрабатывается как обычная строка.
  10. Разделитель в начале (строка составного имени начинается с разделителя) обозначает ведущий пустой атомный компонент (состоящий из пустой строки). Разделитель в конце (строка составного имени заканчивается разделителем) обозначает конечный пустой атомный компонент. Смежные разделители обозначают пустой атомный компонент.

Строковая форма составного имени следует описанному выше синтаксису. Когда компоненты составного имени преобразуются в их строковое представление, применяются описанные выше правила синтаксиса (например, вставленные разделители экранируются или заключаются в кавычки), так что при разборе той же самой строки получатся те же самые компоненты исходного составного имени.

Доступ в многопоточных средах

Объект типа CompoundName не синхронизирован для доступа в многопоточной среде. Несколько потоков, пытающихся получить доступ и изменить CompoundName, должны заблокировать объект.
С:
1.3
См. также:
Сериализованная форма

Поля

Модификатор и тип Поле и описание
protected javax.naming.NameImpl impl

Реализация этого составного имени.

protected Properties mySyntax

Свойства синтаксиса для этого составного имени.

Конструкторы

Модификатор Конструктор и описание
protected CompoundName(Enumeration<String> comps, Properties syntax)

Создаёт новый экземпляр составного имени, используя компоненты, указанные в comps и синтаксисе.

CompoundName(String n, Properties syntax)

Создаёт новый экземпляр составного имени путём разбора строки 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)

Сравнивает это CompoundName с указанным объектом для определения порядка.

boolean endsWith(Name n)

Определяет, является ли составное имя суффиксом этого составного имени.

boolean equals(Object obj)

Определяет, равен ли obj по синтаксису этому составному имени.

String get(int posn)

Возвращает компонент этого составного имени.

Enumeration<String> getAll()

Возвращает компоненты этого составного имени как перечисление строк.

Name getPrefix(int posn)

Создаёт составное имя, компоненты которого представляют собой префикс компонентов в этом составном имени.

Name getSuffix(int posn)

Создаёт составное имя, компоненты которого представляют собой суффикс компонентов в этом составном имени.

int hashCode()

Вычисляет хэш-код этого составного имени.

boolean isEmpty()

Определяет, пусто ли это составное имя.

Object remove(int posn)

Удаляет компонент из этого составного имени.

int size()

Возвращает количество компонентов в этом составном имени.

boolean startsWith(Name n)

Определяет, является ли составное имя префиксом этого составного имени.

String toString()

Генерирует строковое представление этого составного имени, используя правила синтаксиса составного имени.

Методы, унаследованные от класса java.lang.Object

finalize, getClass, notify, notifyAll, wait, wait, wait

Поля

impl

protected transient javax.naming.NameImpl impl

Реализация этого составного имени. Это поле инициализируется конструкторами и не может быть null. Подклассы должны рассматривать его как неизменяемое переменную.

mySyntax

protected transient Properties mySyntax

Свойства синтаксиса для этого составного имени. Это поле инициализируется конструкторами и не может быть null. Подклассы должны рассматривать его как неизменяемое переменную. Любые необходимые изменения в mySyntax должны вноситься внутри конструкторов, а не после того, как составное имя было создано.

Конструкторы

CompoundName

protected CompoundName(Enumeration<String> comps,
                       Properties syntax)

Создаёт новый экземпляр составного имени, используя компоненты, указанные в comps и синтаксисе. Этот защищённый метод предназначен для использования подклассами CompoundName, когда они переопределяют методы, такие как clone(), getPrefix(), getSuffix().

Parameters:
comps - Непустой перечисление компонентов для добавления. Каждый элемент перечисления является объектом класса String. Перечисление будет использовано для извлечения своих элементов.
syntax - Непустые свойства, определяющие синтаксис этого составного имени. Содержимое свойств см. в описании класса.

CompoundName

public CompoundName(String n,
                    Properties syntax)
             throws InvalidNameException

Создаёт новый экземпляр составного имени, анализируя строку n с использованием синтаксиса, определённого свойствами синтаксиса.

Parameters:
n - Непустая строка для анализа.
syntax - Непустой список свойств, определяющих синтаксис этого составного имени. Содержимое свойств см. в описании класса.
Throws:
InvalidNameException - Если 'n' нарушает синтаксис, определённый syntax.

Методы

toString

public String toString()

Генерирует строковое представление этого составного имени, используя правила синтаксиса составного имени. Правила синтаксиса описаны в описании класса. Пустой компонент представляется пустой строкой. Таким образом сгенерированное строковое представление можно передать в конструктор CompoundName с теми же свойствами синтаксиса для создания нового эквивалентного составного имени.

Overrides:
toString в классе Object
Returns:
Непустое строковое представление этого составного имени.

equals

public boolean equals(Object obj)

Определяет, является ли obj синтаксически равным этому составному имени. Если obj равен null или не является CompoundName, возвращается false. Два составных имени равны, если каждый компонент одного равен соответствующему компоненту другого.

Равенство также определяется в терминах синтаксиса этого составного имени. По умолчанию CompoundName использует свойства синтаксиса jndi.syntax.ignorecase и jndi.syntax.trimblanks при сравнении двух компонентов на равенство. Если регистр игнорируется, две строки с одной и той же последовательностью символов, но с разными регистрами, считаются равными. Если пробелы обрезаются, ведущие и хвостовые пробелы игнорируются для целей сравнения.

Оба составных имени должны иметь одинаковое количество компонентов.

Примечание к реализации: В настоящее время свойства синтаксиса двух составных имён не сравниваются на равенство. Это может быть сделано в будущем.

Overrides:
equals в классе Object
Parameters:
obj - Возможно null объект для сравнения.
Returns:
true, если obj равен этому составному имени, в противном случае false.
See Also:
compareTo(java.lang.Object obj)

hashCode

public int hashCode()

Вычисляет хэш-код этого составного имени. Хэш-код является суммой хэш-кодов «канонизированных» форм отдельных компонентов этого составного имени. Каждый компонент «канонизируется» в соответствии с синтаксисом составного имени перед вычислением его хэш-кода. Например, для имени, нечувствительного к регистру, верхний регистр имени имеет тот же хэш-код, что и его эквивалент в нижнем регистре.

Overrides:
hashCode в классе Object
Returns:
Целое число, представляющее хэш-код этого имени.
See Also:
Object.equals(java.lang.Object), System.identityHashCode(java.lang.Object)

clone

public Object clone()

Создаёт копию этого составного имени. Изменения компонентов этого составного имени не повлияют на новую копию, и наоборот. Клон и это составное имя используют один и тот же синтаксис.

Specified by:
clone в интерфейсе Name
Overrides:
clone в классе Object
Returns:
Непустая копия этого составного имени.
See Also:
Cloneable

compareTo

public int compareTo(Object obj)

Сравнивает этот CompoundName с заданным объектом для определения порядка. Возвращает отрицательное целое число, ноль или положительное целое число, в зависимости от того, меньше, равен или больше этот объект, чем заданный объект.

Если obj равен null или не является экземпляром CompoundName, выбрасывается ClassCastException.

См. equals(), чтобы узнать, что означают два составных имени для равенства. Если два составных имени равны, возвращается 0.

Порядок составных имён зависит от синтаксиса составного имени. По умолчанию они следуют лексикографическим правилам для сравнения строк с расширением, которое применяется ко всем компонентам составного имени, и сравнение отдельных компонентов зависит от свойств jndi.syntax.ignorecase и jndi.syntax.trimblanks, аналогично тому, как они влияют на equals(). Если это составное имя «лексикографически» меньше obj, возвращается отрицательное число. Если это составное имя «лексикографически» больше obj, возвращается положительное число.

Примечание к реализации: В настоящее время свойства синтаксиса двух составных имён не сравниваются при проверке порядка. Это может быть сделано в будущем.

Specified by:
compareTo в интерфейсе Comparable<Object>
Specified by:
compareTo в интерфейсе Name
Parameters:
obj - Непустой объект для сравнения.
Returns:
отрицательное целое число, ноль или положительное целое число, в зависимости от того, меньше, равен или больше этот объект, чем заданный объект.
Throws:
ClassCastException - если obj не является CompoundName.
See Also:
equals(java.lang.Object)

size

public int size()

Возвращает количество компонентов в этом составном имени.

Specified by:
size в интерфейсе Name
Returns:
Неотрицательное количество компонентов в этом составном имени.

isEmpty

public boolean isEmpty()

Определяет, является ли это составное имя пустым. Составное имя пусто, если у него ноль компонентов.

Specified by:
isEmpty в интерфейсе Name
Returns:
true, если это составное имя пусто, в противном случае false.

getAll

public Enumeration<String> getAll()

Возвращает компоненты этого составного имени как перечисление строк. Эффекты обновлений этого составного имени на это перечисление не определены.

Specified by:
getAll в интерфейсе Name
Returns:
Непустое перечисление компонентов этого составного имени. Каждый элемент перечисления имеет тип String.

get

public String get(int posn)

Возвращает компонент этого составного имени.

Specified by:
get в интерфейсе Name
Parameters:
posn - Индекс компонента для извлечения (от 0 до size() - 1).
Returns:
Компонент по индексу posn.
Throws:
ArrayIndexOutOfBoundsException - если posn находится вне указанного диапазона.

getPrefix

public Name getPrefix(int posn)

Создаёт составное имя, компоненты которого являются префиксом компонентов в этом составном имени. Результат и это составное имя используют один и тот же синтаксис. Последующие изменения в этом составном имени не влияют на возвращаемое имя и наоборот.

Specified by:
getPrefix в интерфейсе Name
Parameters:
posn - Индекс компонента для остановки (от 0 до size()).
Returns:
Составное имя, состоящее из компонентов с индексами в диапазоне [0, posn).
Throws:
ArrayIndexOutOfBoundsException - если posn находится вне указанного диапазона.

getSuffix

public Name getSuffix(int posn)

Создаёт составное имя, компоненты которого являются суффиксом компонентов в этом составном имени. Результат и это составное имя используют один и тот же синтаксис. Последующие изменения в этом составном имени не влияют на возвращаемое имя.

Specified by:
getSuffix в интерфейсе Name
Parameters:
posn - Индекс компонента для начала (от 0 до size()).
Returns:
Составное имя, состоящее из компонентов с индексами в диапазоне [posn, size()). Если posn равно size(), возвращается пустое составное имя.
Throws:
ArrayIndexOutOfBoundsException - если posn находится вне указанного диапазона.

startsWith

public boolean startsWith(Name n)

Определяет, является ли составное имя n префиксом этого составного имени. Составное имя n является префиксом, если оно равно getPrefix(n.size()) — другими словами, это составное имя начинается с n. Если n равно null или не является составным именем, возвращается false.

Примечание к реализации: В настоящее время свойства синтаксиса n не используются при сравнении.

Specified by:
startsWith в интерфейсе Name
Parameters:
n - Возможно null составное имя для проверки.
Returns:
true, если n является составным именем и является префиксом этого составного имени, в противном случае false.

endsWith

public boolean endsWith(Name n)

Определяет, является ли составное имя суффиксом этого составного имени. Составное имя 'n' является суффиксом, если оно равно getSuffix(size()-n.size()) — другими словами, это составное имя заканчивается на 'n'. Если n равно null или не является составным именем, возвращается false.

Примечание по реализации: в настоящее время синтаксические свойства n не используются при сравнении. В будущем они могут быть использованы.

Указано в:
endsWith в интерфейсе Name
Параметры:
n - Возможно пустое составное имя для проверки.
Возвращает:
true, если n является CompoundName и является суффиксом этого составного имени, в противном случае false.

addAll

public Name addAll(Name suffix)
            throws InvalidNameException

Добавляет компоненты составного имени — в порядке следования — в конец этого составного имени.

Примечание по реализации: в настоящее время синтаксические свойства суффикса не используются или не проверяются. В будущем они могут быть использованы.

Указано в:
addAll в интерфейсе Name
Параметры:
suffix - Компоненты, которые нужно добавить.
Возвращает:
Обновленное составное имя, а не новое. Не может быть null.
Исключения:
InvalidNameException - Если suffix не является составным именем или добавление компонентов нарушает синтаксис этого составного имени (например, превышает количество компонентов).

addAll

public Name addAll(int posn,
                   Name n)
            throws InvalidNameException

Добавляет компоненты составного имени — в порядке следования — в указанную позицию внутри этого составного имени. Компоненты этого составного имени в позиции или после индекса первого нового компонента сдвигаются вверх (относительно индекса 0), чтобы вместить новые компоненты.

Примечание по реализации: в настоящее время синтаксические свойства суффикса не используются или не проверяются. В будущем они могут быть использованы.

Указано в:
addAll в интерфейсе Name
Параметры:
n - Компоненты, которые нужно добавить.
posn - Индекс в этом имени, в котором нужно добавить новые компоненты. Должен находиться в диапазоне [0, size()].
Возвращает:
Обновленное составное имя, а не новое. Не может быть null.
Исключения:
ArrayIndexOutOfBoundsException - Если posn находится вне заданного диапазона.
InvalidNameException - Если n не является составным именем или добавление компонентов нарушает синтаксис этого составного имени (например, превышает количество компонентов).

add

public Name add(String comp)
         throws InvalidNameException

Добавляет один компонент в конец этого составного имени.

Указано в:
add в интерфейсе Name
Параметры:
comp - Компонент, который нужно добавить.
Возвращает:
Обновленное составное имя, а не новое. Не может быть null.
Исключения:
InvalidNameException - Если добавление comp в конец имени нарушает синтаксис составного имени.

add

public Name add(int posn,
                String comp)
         throws InvalidNameException

Добавляет один компонент в указанную позицию внутри этого составного имени. Компоненты этого составного имени в позиции или после индекса нового компонента сдвигаются вверх на единицу (относительно индекса 0), чтобы вместить новый компонент.

Указано в:
add в интерфейсе Name
Параметры:
comp - Компонент, который нужно добавить.
posn - Индекс, в который нужно добавить новый компонент. Должен находиться в диапазоне [0, size()].
Возвращает:
Обновленное составное имя, а не новое. Не может быть null.
Исключения:
ArrayIndexOutOfBoundsException - Если posn находится вне заданного диапазона.
InvalidNameException - Если добавление comp в указанную позицию нарушит синтаксис составного имени.

remove

public Object remove(int posn)
              throws InvalidNameException

Удаляет компонент из этого составного имени. Компонент этого составного имени в позиции 'posn' удаляется, а компоненты с индексами больше 'posn' сдвигаются вниз (в сторону индекса 0) на единицу.

Указано в:
remove в интерфейсе Name
Параметры:
posn - Индекс компонента, который нужно удалить. Должен находиться в диапазоне [0, size()).
Возвращает:
Удаленный компонент (строка).
Исключения:
ArrayIndexOutOfBoundsException - Если posn находится вне заданного диапазона (включая случай, когда составное имя пустое).
InvalidNameException - Если удаление компонента нарушит синтаксис составного имени.

© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API