Spec-Zone.ru › OpenJDK 27

Класс DescriptorSupport

java.lang.Object
javax.management.modelmbean.DescriptorSupport
Все реализуемые интерфейсы:
Serializable, Cloneable, Descriptor
public class DescriptorSupport extends Object implements Descriptor
Этот класс представляет набор метаданных для элемента ModelMBean. Дескриптор является частью ModelMBeanInfo, ModelMBeanNotificationInfo, ModelMBeanAttributeInfo, ModelMBeanConstructorInfo и ModelMBeanParameterInfo.

Дескриптор состоит из набора полей. Каждое поле имеет формат fieldname=fieldvalue. Имена полей не чувствительны к регистру; регистр символов в значениях полей сохраняется.

Имена и значения полей не являются предопределёнными. Любая программа может определять и добавлять новые поля. Некоторые поля были предопределены для обеспечения согласованности реализации и поддержки классами ModelMBeanInfo, ModelMBeanAttributeInfo, ModelMBeanConstructorInfo, ModelMBeanNotificationInfo, ModelMBeanOperationInfo и ModelMBean.

serialVersionUID этого класса — -6292969195866300415L.

Начиная с версии:
1.5
См. также:
  • Сериализованная форма

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

Конструктор Описание
DescriptorSupport()
Конструктор дескриптора по умолчанию.
DescriptorSupport(int initNumFields)
Конструктор дескриптора.
DescriptorSupport(String... fields)
Конструктор, принимающий поля в формате fieldName=fieldValue.
DescriptorSupport(String[] fieldNames, Object[] fieldValues)
Конструктор, принимающий имена и значения полей.
DescriptorSupport(DescriptorSupport inDescr)
Конструктор дескриптора, принимающий Descriptor в качестве параметра.

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

Модификатор и тип Метод Описание
Object clone()
Возвращает новый Descriptor, являющийся копией Descriptor.
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()
Возвращает строку, представляющую дескриптор в удобочитаемом виде.

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

equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Модификатор и тип Метод Описание
boolean equals(Object obj)
Указывает, равен ли этот объект какому-либо другому объекту.
protected void finalize()
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
Метод finalize() устарел и может быть удалён в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает значение хеш-кода этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно посредством вызова notify или interrupt.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно посредством вызова notify или interrupt, либо до истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно посредством вызова notify или interrupt, либо до истечения заданного промежутка реального времени.

Подробное описание конструкторов

DescriptorSupport

public DescriptorSupport()
Конструктор дескриптора по умолчанию. Начальный размер дескриптора по умолчанию равен 20. При необходимости он будет увеличиваться.
Обратите внимание, что созданный пустой дескриптор недопустим (метод isValid возвращает false)

DescriptorSupport

public DescriptorSupport(int initNumFields) throws MBeanException, RuntimeOperationsException
Конструктор дескриптора. В качестве параметра принимает начальную ёмкость Map, в которой хранятся поля дескриптора. При необходимости ёмкость будет увеличиваться.
Обратите внимание, что созданный пустой дескриптор недопустим (метод isValid возвращает false).
Параметры:
initNumFields — начальная ёмкость Map, в которой хранятся поля дескриптора.
Выбрасывает:
RuntimeOperationsException — если значение initNumFields недопустимо (меньше или равно 0)
MBeanException — оборачивает исключение при распределённом обмене данными.

DescriptorSupport

public DescriptorSupport(DescriptorSupport inDescr)
Конструктор дескриптора, принимающий Descriptor в качестве параметра. Создаёт новый дескриптор, инициализированный значениями дескриптора, переданного в параметре.
Параметры:
inDescr — дескриптор, используемый для инициализации создаваемого дескриптора. Если он равен null или не содержит полей дескриптора, будет создан пустой Descriptor.

DescriptorSupport

public DescriptorSupport(String[] fieldNames, Object[] fieldValues) throws RuntimeOperationsException
Конструктор, принимающий имена и значения полей. Ни один из массивов не может быть равен null.
Параметры:
fieldNames — массив строк с именами полей. Ни один элемент этого массива не может быть равен null.
fieldValues — массив объектов с соответствующими значениями полей. Элементы массива могут быть равны null. fieldValue должно быть допустимым для fieldName (как определено в методе isValid)

Примечание: размеры массивов параметров должны совпадать. Если оба массива пусты, создаётся пустой дескриптор.

Выбрасывает:
RuntimeOperationsException — если имена или значения полей недопустимы. Длины массивов должны быть равны. Это исключение будет выброшено, если создание дескриптора не удастся по какой-либо причине.

DescriptorSupport

public DescriptorSupport(String... fields)
Конструктор, принимающий поля в формате fieldName=fieldValue.
Параметры:
fields — массив строк, каждый элемент которого содержит имя и значение поля. Если этот массив равен null или пуст, будет вызван конструктор по умолчанию. Строки null или пустые строки будут проигнорированы.

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

Примечание: каждая строка должна иметь вид fieldName=fieldValue. Имя поля заканчивается на первом символе =; например, если строка равна a=b=c, то имя поля — a, а его значение — b=c.

Выбрасывает:
RuntimeOperationsException — если имена или значения полей недопустимы. Поле должно содержать «=». Значения «=fieldValue», «fieldName» и «fieldValue» недопустимы. FieldName не может быть равен null. В случае «fieldName=» значение будет равно null. Это исключение будет выброшено, если создание дескриптора не удастся по какой-либо причине.

Подробное описание методов

getFieldValue

public Object getFieldValue(String fieldName) throws RuntimeOperationsException
Описание скопировано из интерфейса: Descriptor
Возвращает значение для указанного имени поля или null, если для этого имени значение отсутствует.
Определено в:
getFieldValue в интерфейсе Descriptor
Параметры:
fieldName — имя поля.
Возвращает:
соответствующее значение или null, если поле отсутствует.
Выбрасывает:
RuntimeOperationsException — если имя поля недопустимо.

setField

public void setField(String fieldName, Object fieldValue) throws RuntimeOperationsException
Описание скопировано из интерфейса: Descriptor

Задаёт значение для указанного имени поля. При этом существующее поле будет изменено или добавлено новое поле.

Перед установкой значение поля будет проверено. Если оно недопустимо, будет выброшено исключение. Значение допустимости зависит от реализации дескриптора.

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

getFields

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

getFieldNames

public String[] getFieldNames()
Описание скопировано из интерфейса: Descriptor
Возвращает все имена полей дескриптора.
Определено в:
getFieldNames в интерфейсе Descriptor
Возвращает:
Массив строк с именами полей. Если дескриптор пуст, будет возвращён пустой массив.

getFieldValues

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

setFields

public void setFields(String[] fieldNames, Object[] fieldValues) throws RuntimeOperationsException
Описание скопировано из интерфейса: Descriptor

Задаёт всем полям из массива имён полей новые значения с теми же индексами в массиве значений полей. Размеры массивов должны совпадать.

Перед установкой значение поля будет проверено. Если оно недопустимо, будет выброшено исключение. Если массивы пусты, изменений не произойдёт.

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

clone

public Object clone() throws RuntimeOperationsException
Возвращает новый Descriptor, являющийся копией Descriptor.
Определено в:
clone в интерфейсе Descriptor
Переопределяет:
clone в классе Object
Возвращает:
Дескриптор, равный этому дескриптору.
Выбрасывает:
RuntimeOperationsException — если имена или значения полей недопустимы. Это исключение будет выброшено, если создание дескриптора не удастся по какой-либо причине.
См. также:
  • Cloneable

removeField

public void removeField(String fieldName)
Описание скопировано из интерфейса: Descriptor
Удаляет поле из дескриптора.
Определено в:
removeField в интерфейсе Descriptor
Параметры:
fieldName — строковое имя удаляемого поля. Если имя поля недопустимо или поле не найдено, исключение не выбрасывается.

equals

public boolean equals(Object o)
Описание скопировано из интерфейса: Descriptor

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

  • Если одно значение равно 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()
Описание скопировано из интерфейса: Descriptor

Возвращает значение хеш-кода этого дескриптора. Хеш-код вычисляется как сумма хеш-кодов каждого поля дескриптора. Хеш-код поля с именем 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(Object)

isValid

public boolean isValid() throws RuntimeOperationsException
Возвращает true, если все поля имеют допустимые значения с учётом их имён.

Эта реализация не поддерживает взаимодействие со службой каталогов или поиска. Поэтому в соответствии со спецификацией проверка поля "export" не выполняется.

Кроме того, эта реализация возвращает false в следующих случаях:

  • поля name и descriptorType не определены, равны null, пусты или не являются строками
  • поля class, role, getMethod, setMethod, если они определены, равны null или не являются строками
  • поля persistPeriod, currencyTimeLimit, lastUpdatedTimeStamp, lastReturnedTimeStamp, если они определены, равны null, не являются числовыми строками или числовыми значениями >= -1
  • поле log, если оно определено, равно null или не является логическим значением либо строкой со значением "t", "f", "true", "false". Регистр символов в этих строковых значениях не учитывается.
  • поле visibility, если оно определено, равно null или не является числовой строкой либо числовым значением >= 1 и <= 4
  • поле severity, если оно определено, равно null или не является числовой строкой либо числовым значением >= 0 и <= 6
  • поле persistPolicy, если оно определено, равно null или не является одной из следующих строк:
    "OnUpdate", "OnTimer", "NoMoreOftenThan", "OnUnregister", "Always", "Never". Регистр символов в этих строковых значениях не учитывается.
Определено в:
isValid в интерфейсе Descriptor
Возвращает:
true, если значения допустимы.
Выбрасывает:
RuntimeOperationsException — это исключение будет выброшено, если проверка допустимости не удастся по какой-либо причине.

toString

public String toString()
Возвращает строку, представляющую дескриптор в удобочитаемом виде. Строка будет иметь формат "fieldName=fieldValue,fieldName2=fieldValue2,..."
Если в дескрипторе нет полей, возвращается пустая строка.
Если fieldValue является объектом, для него вызывается метод toString(), а возвращённое значение используется как значение поля в скобках.
Переопределяет:
toString в классе Object
Возвращает:
строковое представление объекта
Выбрасывает:
RuntimeOperationsException — если имена или значения полей недопустимы. Это исключение будет выброшено, если формирование строки дескриптора не удастся по какой-либо причине.

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторское право © 1993, 2026, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, 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