Spec-Zone.ru › OpenJDK 24

Класс DescriptorSupport

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

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

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

serialVersionUID этого класса равен -6292969195866300415L.

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

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

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

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

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

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

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

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

DescriptorSupport

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

DescriptorSupport

public DescriptorSupport(int initNumFields) throws MBeanException, RuntimeOperationsException
Конструктор дескриптора. Принимает в качестве параметра начальную емкость карты, хранящей поля дескриптора. Емкость будет увеличиваться по мере необходимости.
Обратите внимание, что созданный пустой дескриптор не является допустимым дескриптором (метод isValid возвращает false).
Параметры:
initNumFields - Начальная емкость карты, хранящей поля дескриптора.
Исключения:
RuntimeOperationsException - для недопустимого значения initNumFields (<= 0)
MBeanException - Оборачивает исключение распределенного обмена.

DescriptorSupport

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

DescriptorSupport

public DescriptorSupport(String inStr) throws MBeanException, RuntimeOperationsException, XMLParseException

Конструктор дескриптора, принимающий строку XML.

Формат строки XML не определён, но реализация должна гарантировать, что строка, возвращённая методом toXMLString() для существующего дескриптора, может быть использована для создания эквивалентного дескриптора с помощью этого конструктора.

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

Параметры:
inStr - Строка в формате XML, используемая для заполнения этого дескриптора. Формат не определён, но любая реализация должна гарантировать, что строка, возвращаемая методом toXMLString для существующего дескриптора, может быть использована для создания эквивалентного дескриптора с помощью этого конструктора.
Исключения:
RuntimeOperationsException - Если строка inStr, переданная в качестве параметра, равна null
XMLParseException - Проблема при разборе XML при разборе входной строки
MBeanException - Оборачивает исключение распределённой коммуникации.

DescriptorSupport

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

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

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

DescriptorSupport

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

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

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

Исключения:
RuntimeOperationsException - для недопустимого значения для имён полей или значений полей. Поле должно содержать «=». "=значениеПоля", "имяПоля" и "значениеПоля" являются недопустимыми. Имя поля не может быть null. "имяПоля=" приведёт к тому, что значение будет 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
Возвращает:
Массив строк полей в формате имяПоля=значениеПоля
Если значение поля не является строкой, то будет вызван метод toString() на нём, и возвращённое значение, заключённое в скобки, будет использовано как значение поля в возвращаемом массиве. Если значение поля равно null, то значение поля в возвращаемом массиве будет пустым. Если дескриптор пустой, вы получите пустой массив.
См. также:
  • Descriptor.setFields(java.lang.String[], java.lang.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

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

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

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

clone

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

removeField

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

equals

public boolean equals(Object o)
Сравнивает этот дескриптор с заданным объектом. Объекты равны, если заданный объект также является дескриптором и если у двух дескрипторов одинаковые имена полей (возможно, различающиеся по регистру) и одинаковые связанные значения. Соответствующие значения поля в двух дескрипторах равны, если выполняются следующие условия:
  • Если одно значение равно null, то другое тоже должно быть null.
  • Если одно значение является массивом примитивного типа, то другое должно быть массивом примитивного типа того же типа с теми же элементами.
  • Если одно значение является массивом объектов, то другое тоже должно быть массивом объектов и Arrays.deepEquals должно возвращать true.
  • В противном случае Object.equals(Object) должно возвращать true.
Specified by:
equals в интерфейсе Descriptor
Overrides:
equals в классе Object
Parameters:
o - объект для сравнения.
Returns:
true, если объекты одинаковые; false в противном случае.
See Also:
  • 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.
  • В противном случае h равно v.hashCode().
Specified by:
hashCode в интерфейсе Descriptor
Overrides:
hashCode в классе Object
Returns:
Значение хэш-кода для этого объекта.
See Also:
  • Object.equals(java.lang.Object)
  • System.identityHashCode(java.lang.Object)

isValid

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

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

В противном случае эта реализация возвращает false, если:

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

toXMLString

public String toXMLString()

Возвращает строку XML, представляющую дескриптор.

Формат не определён, но реализация должна гарантировать, что строка, возвращаемая этим методом, может быть использована для построения эквивалентного дескриптора при создании с помощью конструктора DescriptorSupport(String inStr).

Для полей, которые не являются объектами String, будет вызван метод toString(), чтобы создать значение. Значение будет заключено в скобки. Не гарантируется, что вы сможете восстановить эти объекты, если они не были специально настроены для поддержки toString() в осмысленном формате и имеют соответствующий конструктор, принимающий строку в том же формате.

Если дескриптор пуст, возвращается следующая строка: <Descriptor></Descriptor>

Returns:
строка XML.
Throws:
RuntimeOperationsException - для недопустимого значения для имён полей или значений полей. Если построение строки в формате XML не удалось по какой-либо причине, это исключение будет брошено.

toString

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

© 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.
https://download.java.net/java/early_access/jdk24/docs/api/java.management/javax/management/modelmbean/DescriptorSupport.html

Spec-Zone.ru

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