Spec-Zone.ru › OpenJDK 8

Класс ImmutableDescriptor

  • java.lang.Object
    • javax.management.ImmutableDescriptor
Все реализуемые интерфейсы:
Serializable, Cloneable, Descriptor

public class ImmutableDescriptor
extends Object
implements Descriptor

Неизменяемый дескриптор.

С момента:
1.6
См. также:
Сериализованная форма

Поля

Модификатор и тип Поле и описание
static ImmutableDescriptor EMPTY_DESCRIPTOR

Пустой дескриптор.

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

Конструктор и описание
ImmutableDescriptor(Map<String,?> fields)

Создаёт дескриптор, где имена и значения полей — ключи и значения заданного Map.

ImmutableDescriptor(String... fields)

Создаёт дескриптор, содержащий заданные поля.

ImmutableDescriptor(String[] fieldNames, Object[] fieldValues)

Создаёт дескриптор, содержащий заданные поля и значения.

Методы

Модификатор и тип Метод и описание
Descriptor clone()

Возвращает дескриптор, равный данному дескриптору.

boolean equals(Object o)

Сравнивает этот дескриптор с данным объектом.

String[] getFieldNames()

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

String[] getFields()

Возвращает все поля, содержащиеся в этом дескрипторе, в виде массива строк.

Object getFieldValue(String fieldName)

Возвращает значение для определённого имени поля или null, если значение для этого имени отсутствует.

Object[] getFieldValues(String... fieldNames)

Возвращает все значения полей в дескрипторе в виде массива объектов.

int hashCode()

Возвращает значение хэш-кода для данного дескриптора.

boolean isValid()

Возвращает true, если все поля имеют допустимые значения, учитывая их имена.

void removeField(String fieldName)

Удаляет поле из дескриптора.

void setField(String fieldName, Object fieldValue)

Данная операция не поддерживается, так как этот класс неизменяем.

void setFields(String[] fieldNames, Object[] fieldValues)

Данная операция не поддерживается, так как этот класс неизменяем.

String toString()

Возвращает строковое представление объекта.

static ImmutableDescriptor union(Descriptor... descriptors)

Возвращает ImmutableDescriptor, содержимое которого является объединением заданных дескрипторов.

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

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

Поля

EMPTY_DESCRIPTOR

public static final ImmutableDescriptor EMPTY_DESCRIPTOR

Пустой дескриптор.

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

ImmutableDescriptor

public ImmutableDescriptor(String[] fieldNames,
                           Object[] fieldValues)

Создаёт дескриптор, содержащий указанные поля и значения.

Исключения:
IllegalArgumentException - если один из массивов равен null, или массивы имеют разную длину, или имя поля равно null или пустое, или одно и то же имя поля встречается более одного раза.

ImmutableDescriptor

public ImmutableDescriptor(String... fields)

Создаёт дескриптор, содержащий указанные поля. Каждая строка должна иметь вид fieldName=fieldValue. Имя поля заканчивается на первом символе =; например, если строка a=b=c, то имя поля a, а его значение b=c.

Исключения:
IllegalArgumentException - если параметр равен null, или имя поля пустое, или одно и то же имя поля встречается более одного раза, или одна из строк не содержит символ =.

ImmutableDescriptor

public ImmutableDescriptor(Map<String,?> fields)

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

Исключения:
IllegalArgumentException - если параметр равен null, или имя поля равно null или пустое, или одно и то же имя поля встречается более одного раза (что может произойти, потому что имена полей не чувствительны к регистру).

Методы

union

public static ImmutableDescriptor union(Descriptor... descriptors)

Возвращает ImmutableDescriptor с содержимым, являющимся объединением указанных дескрипторов. Каждое имя поля, встречающееся в любом из дескрипторов, будет присутствовать в результате со значением, которое оно имеет в момент вызова метода. Последующие изменения в любом из дескрипторов не влияют на возвращаемый здесь ImmutableDescriptor.

В простейшем случае существует только один дескриптор, и возвращаемый ImmutableDescriptor представляет собой копию его полей на момент вызова этого метода:

Descriptor d = something();
 ImmutableDescriptor copy = ImmutableDescriptor.union(d);
Параметры:
descriptors - объединяемые дескрипторы. Любой из дескрипторов может быть равен null, в этом случае он пропускается.
Возвращает:
ImmutableDescriptor являющийся объединением заданных дескрипторов. Возвращаемый объект может быть идентичен одному из входных дескрипторов, если это ImmutableDescriptor, содержащий все необходимые поля.
Исключения:
IllegalArgumentException - если два дескриптора содержат одно и то же имя поля с разными связанными значениями. Значения массивов примитивных типов считаются одинаковыми, если они одного типа с одними и теми же элементами. Значения массивов объектов считаются одинаковыми, если Arrays.deepEquals(Object[],Object[]) возвращает true.

getFieldValue

public final Object getFieldValue(String fieldName)

Описание скопировано из интерфейса: Descriptor

Возвращает значение для определённого имени поля или null, если для этого имени значения нет.

Унаследовано от:
getFieldValue в интерфейсе Descriptor
Параметры:
fieldName - имя поля.
Возвращает:
соответствующее значение или null, если поле отсутствует.

getFields

public final String[] getFields()

Описание скопировано из интерфейса: Descriptor

Возвращает все поля, содержащиеся в этом дескрипторе, в виде массива строк.

Унаследовано от:
getFields в интерфейсе Descriptor
Возвращает:
Массив строк полей в формате имяПоля=значениеПоля
Если значение поля не является строкой, то будет вызван метод toString() для него, и возвращённое значение, заключённое в скобки, будет использовано как значение поля в возвращаемом массиве. Если значение поля равно null, то значение поля в возвращаемом массиве будет пустым. Если дескриптор пуст, вы получите пустой массив.
См. также:
Descriptor.setFields(java.lang.String[], java.lang.Object[])

getFieldValues

public final Object[] getFieldValues(String... fieldNames)

Описание скопировано из интерфейса: Descriptor

Возвращает все значения полей в дескрипторе в виде массива объектов. Возвращаемые значения расположены в том же порядке, что и в массиве строк fieldNames.

Унаследовано от:
getFieldValues в интерфейсе Descriptor
Параметры:
fieldNames - Массив строк имён полей, для которых должны быть возвращены значения. Если массив пуст, то будет возвращён пустой массив. Если массив равен null, то будут возвращены все значения, как если бы параметром был массив, возвращённый методом Descriptor.getFieldNames(). Если имя поля в массиве не существует, включая случай, когда оно равно null или пустая строка, то для соответствующего элемента массива, возвращаемого в качестве результата, будет возвращено значение null.
Возвращает:
Массив объектов значений полей. Если список fieldNames пуст, вы получите пустой массив.

getFieldNames

public final String[] getFieldNames()

Описание скопировано из интерфейса: Descriptor

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

Унаследовано от:
getFieldNames в интерфейсе Descriptor
Возвращает:
Массив строк имён полей. Если дескриптор пуст, вы получите пустой массив.

equals

public boolean equals(Object o)

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

  • Если одно из значений равно null, то другое также должно быть равно null.
  • Если одно из значений является массивом примитивного типа, то другое также должно быть массивом примитивного типа того же типа с теми же элементами.
  • Если одно из значений является массивом объектов, то другое также должно быть массивом объектов, и Arrays.deepEquals(Object[],Object[]) должно возвращать true.
  • В противном случае Object.equals(Object) должно возвращать true.

Унаследовано от:
equals в интерфейсе Descriptor
Переопределяет:
equals в классе Object
Параметры:
o - объект для сравнения.
Возвращает:
true если объекты одинаковые; false в противном случае.
См. также:
Object.hashCode(), HashMap

hashCode

public int hashCode()

Возвращает значение хэш-кода для этого дескриптора. Хэш-код вычисляется как сумма хэш-кодов каждого поля в дескрипторе. Хэш-код поля с именем n и значением v равен n.toLowerCase().hashCode() ^ h. Здесь h - хэш-код v, вычисляемый следующим образом:

  • Если v равен null, то h равен 0.
  • Если v является массивом примитивных типов, то h вычисляется с использованием соответствующей перегрузки java.util.Arrays.hashCode.
  • Если v является массивом объектов, то h вычисляется с помощью Arrays.deepHashCode(Object[]).
  • В противном случае h равен v.hashCode().
Унаследовано от:
hashCode в интерфейсе Descriptor
Переопределяет:
hashCode в классе Object
Возвращает:
Значение хэш-кода для этого объекта.
См. также:
Object.equals(java.lang.Object), System.identityHashCode(java.lang.Object)

toString

public String toString()

Описание скопировано из класса: Object

Возвращает строковое представление объекта. В общем случае метод toString возвращает строку, которая "текстово представляет" этот объект. Результат должен быть кратким, но информативным представлением, удобным для чтения человеком. Рекомендуется всем подклассам переопределить этот метод.

Метод toString для класса Object возвращает строку, состоящую из имени класса, экземпляром которого является объект, символа `@', и беззнакового шестнадцатеричного представления хэш-кода объекта. Другими словами, этот метод возвращает строку, равную значению:

getClass().getName() + '@' + Integer.toHexString(hashCode())
Переопределяет:
toString в классе Object
Возвращает:
строковое представление объекта.

isValid

public boolean isValid()

Возвращает true, если все поля имеют допустимые значения, учитывая их имена. Этот метод всегда возвращает true, но подкласс может переопределить его, чтобы возвращать false, когда это уместно.

Унаследовано от:
isValid в интерфейсе Descriptor
Возвращает:
true, если значения допустимы.
Исключения:
RuntimeOperationsException - если проверка валидности завершилась неудачей. Метод возвращает false, если дескриптор не валиден, но генерирует это исключение, если попытка определить валидность завершается неудачей.

clone

public Descriptor clone()

Возвращает дескриптор, равный этому дескриптору. Изменения в возвращаемом дескрипторе не повлияют на этот дескриптор, и наоборот.

Этот метод возвращает объект, на котором он вызван. Подкласс может переопределить его, чтобы вернуть другой объект при условии соблюдения контракта.

Унаследовано от:
clone в интерфейсе Descriptor
Переопределяет:
clone в классе Object
Возвращает:
клонированную копию этого экземпляра.
Исключения:
RuntimeOperationsException - для недопустимого значения для имён полей или значений полей. Если построение дескриптора завершится неудачей по любой причине, будет сгенерировано это исключение.
См. также:
Cloneable

setFields

public final void setFields(String[] fieldNames,
                            Object[] fieldValues)
                     throws RuntimeOperationsException

Данная операция не поддерживается, так как этот класс неизменяемый. Если этот вызов изменит изменяемый дескриптор с теми же данными, то будет брошено исключение RuntimeOperationsException, обертывающее UnsupportedOperationException. В противном случае поведение будет таким же, как и для изменяемого дескриптора: либо будет брошено исключение из-за некорректных параметров, либо никакого действия не будет.

Указано в:
setFields в интерфейсе Descriptor
Параметры:
fieldNames - Массив строк имён полей. Массив и элементы массива не могут быть null.
fieldValues - Массив объектов соответствующих значений полей. Массив не может быть null. Элементы массива могут быть null.
Исключения:
RuntimeOperationsException - если изменение не удалось по какой-либо причине. Обернутое исключение - IllegalArgumentException, если fieldNames или fieldValues равно null, или если массивы имеют разную длину, или если в одном из них есть некорректное значение. Обернутое исключение - UnsupportedOperationException, если дескриптор неизменяемый, и вызов изменил бы его содержимое.
См. также:
Descriptor.getFields()

setField

public final void setField(String fieldName,
                           Object fieldValue)
                    throws RuntimeOperationsException

Данная операция не поддерживается, так как этот класс неизменяемый. Если этот вызов изменит изменяемый дескриптор с теми же данными, то будет брошено исключение RuntimeOperationsException, обертывающее UnsupportedOperationException. В противном случае поведение будет таким же, как и для изменяемого дескриптора: либо будет брошено исключение из-за некорректных параметров, либо никакого действия не будет.

Указано в:
setField в интерфейсе Descriptor
Параметры:
fieldName - Имя поля, которое нужно установить. Не может быть null или пустым.
fieldValue - Значение поля, которое нужно установить для имени поля. Может быть null, если это допустимое значение для поля.
Исключения:
RuntimeOperationsException - если имя поля или значение поля некорректны (обернутое исключение - IllegalArgumentException); или если дескриптор неизменяемый (обернутое исключение - UnsupportedOperationException).

removeField

public final void removeField(String fieldName)

Удаляет поле из дескриптора.

Указано в:
removeField в интерфейсе Descriptor
Параметры:
fieldName - Строковое имя поля, которое нужно удалить. Если имя поля некорректно или поля не найдено, исключение не бросается.
Исключения:
RuntimeOperationsException - если поле с заданным именем существует и дескриптор неизменяемый. Обернутое исключение будет UnsupportedOperationException.

© 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