Spec-Zone.ru › OpenJDK 17

Класс ImmutableDescriptor

java.lang.Object
javax.management.ImmutableDescriptor
Все реализованные интерфейсы:
Serializable, Cloneable, Descriptor
public class ImmutableDescriptor extends Object implements Descriptor
Неизменяемый дескриптор.
С тех пор:
1.6
См. также:
  • Сериализованная форма

Краткое описание полей

Модификатор и тип Поле Описание
static final ImmutableDescriptor EMPTY_DESCRIPTOR
Пустой дескриптор.

Краткое описание конструкторов

Конструктор Описание
ImmutableDescriptor(String... fields)
Создать дескриптор, содержащий заданные поля.
ImmutableDescriptor(String[] fieldNames, Object[] fieldValues)
Создать дескриптор, содержащий заданные поля и значения.
ImmutableDescriptor(Map<String,?> fields)
Создать дескриптор, где имена и значения полей являются ключами и значениями заданного Map.

Краткое описание методов

Модификатор и тип Метод Описание
Descriptor clone()
Возвращает дескриптор, равный этому дескриптору.
boolean equals(Object o)
Сравнивает этот дескриптор с заданным объектом.
final String[] getFieldNames()
Возвращает все имена полей в дескрипторе.
final String[] getFields()
Возвращает все поля, содержащиеся в этом дескрипторе, в виде массива строк.
final Object getFieldValue(String fieldName)
Возвращает значение для определенного имени поля или null, если для этого имени нет значения.
final Object[] getFieldValues(String... fieldNames)
Возвращает все значения полей в дескрипторе в виде массива объектов.
int hashCode()
Возвращает значение хэш-кода для этого дескриптора.
boolean isValid()
Возвращает true, если все поля имеют допустимые значения с учетом их имен.
final void removeField(String fieldName)
Удаляет поле из дескриптора.
final void setField(String fieldName, Object fieldValue)
Эта операция не поддерживается, так как этот класс неизменяемый.
final void setFields(String[] fieldNames, Object[] fieldValues)
Эта операция не поддерживается, так как этот класс неизменяемый.
static ImmutableDescriptor union(Descriptor... descriptors)
Возвращает ImmutableDescriptor, содержимое которого является объединением заданных дескрипторов.

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

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

Краткое описание полей

EMPTY_DESCRIPTOR

public static final ImmutableDescriptor EMPTY_DESCRIPTOR
Пустой дескриптор.

Краткое описание конструкторов

ImmutableDescriptor

public ImmutableDescriptor(String[] fieldNames, Object[] fieldValues)
Создать дескриптор, содержащий заданные поля и значения.
Параметры:
fieldNames - имена полей
fieldValues - значения полей
Исключения:
IllegalArgumentException - если любой из массивов равен null, или если массивы имеют разные размеры, или если имя поля равно null или пусто, или если одно и то же имя поля встречается более одного раза.

ImmutableDescriptor

public ImmutableDescriptor(String... fields)
Создать дескриптор, содержащий заданные поля. Каждая строка должна иметь вид fieldName=fieldValue. Имя поля заканчивается на первом символе =; например, если строка равна a=b=c, то имя поля - a, а его значение - b=c.
Параметры:
fields - имена полей
Исключения:
IllegalArgumentException - если параметр равен null, или если имя поля пусто, или если одно и то же имя поля встречается более одного раза, или если одна из строк не содержит символа =.

ImmutableDescriptor

public ImmutableDescriptor(Map<String,?> fields)

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

Параметры:
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 - если два Descriptors содержат одно и то же имя поля с разными связанными значениями. Примитивные массивы значений считаются одинаковыми, если они имеют один и тот же тип с одинаковыми элементами. Массивы объектов считаются одинаковыми, если 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
Возвращает:
Массив строк полей в формате fieldName=fieldValue
Если значение поля не является строкой, то его метод 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)
Сравнивает этот дескриптор с заданным объектом. Объекты равны, если заданный объект также является Descriptor, и если два Descriptors имеют одинаковые имена полей (возможно, различающиеся регистром) и одинаковые связанные значения. Соответствующие значения поля в двух Descriptors равны, если выполняются следующие условия:
  • Если одно значение равно 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)

isValid

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

clone

public Descriptor clone()

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

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

Specified by:
clone в интерфейсе Descriptor
Overrides:
clone в классе Object
Returns:
клонированную копию этого экземпляра.
Throws:
RuntimeOperationsException - для недопустимого значения для поля Names или поля Values. Если создание дескриптора завершается неудачно по какой-либо причине, будет выброшено это исключение.
See Also:
  • Cloneable

setFields

public final void setFields(String[] fieldNames, Object[] fieldValues) throws RuntimeOperationsException
Эта операция не поддерживается, поскольку этот класс неизменяемый. Если этот вызов изменил бы изменяемый дескриптор с тем же содержимым, то будет выброшено RuntimeOperationsException, содержащее UnsupportedOperationException. В противном случае поведение будет таким же, как и для изменяемого дескриптора: либо будет выброшено исключение из-за недопустимых параметров, либо никакого эффекта не будет.
Specified by:
setFields в интерфейсе Descriptor
Parameters:
fieldNames - Массив строк имён полей. Массив и элементы массива не могут быть null.
fieldValues - Массив объектов соответствующих значений полей. Массив не может быть null. Элементы массива могут быть null.
Throws:
RuntimeOperationsException - если изменение завершается неудачно по какой-либо причине. Оборачиваемое исключение — IllegalArgumentException, если fieldNames или fieldValues равны null, или если массивы имеют разную длину, или если в одном из них есть недопустимое значение. Оборачиваемое исключение — UnsupportedOperationException, если дескриптор неизменяемый, и вызов изменил бы его содержимое.
See Also:
  • Descriptor.getFields()

setField

public final void setField(String fieldName, Object fieldValue) throws RuntimeOperationsException
Эта операция не поддерживается, поскольку этот класс неизменяемый. Если этот вызов изменил бы изменяемый дескриптор с тем же содержимым, то будет выброшено RuntimeOperationsException, содержащее UnsupportedOperationException. В противном случае поведение будет таким же, как и для изменяемого дескриптора: либо будет выброшено исключение из-за недопустимых параметров, либо никакого эффекта не будет.
Specified by:
setField в интерфейсе Descriptor
Parameters:
fieldName - Имя поля для установки. Не может быть null или пустым.
fieldValue - Значение поля для установки для имени поля. Может быть null, если это допустимое значение для поля.
Throws:
RuntimeOperationsException - если имя поля или значение поля недопустимы (оборачиваемое исключение — IllegalArgumentException); или если дескриптор неизменяемый (оборачиваемое исключение — UnsupportedOperationException).

removeField

public final void removeField(String fieldName)
Удаляет поле из дескриптора.
Specified by:
removeField в интерфейсе Descriptor
Parameters:
fieldName - Строковое имя поля, которое нужно удалить. Если имя поля недопустимо или поле не найдено, исключение не выброшено.
Throws:
RuntimeOperationsException - если поле с заданным именем существует, и дескриптор неизменяемый. Оборачиваемое исключение будет UnsupportedOperationException.

© 1993, 2021, 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.
https://docs.oracle.com/en/java/javase/17/docs/api/java.management/javax/management/ImmutableDescriptor.html

Spec-Zone.ru

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