Класс DescriptorSupport
- Все реализуемые интерфейсы:
Serializable, Cloneable, Descriptor
public class DescriptorSupport extends Object implements Descriptor
Дескриптор состоит из набора полей. Каждое поле имеет формат fieldname=fieldvalue. Имена полей нечувствительны к регистру; регистр символов в значениях полей сохраняется.
Имена и значения полей не являются предопределёнными. Любая программа может определять и добавлять новые поля. Для единообразия реализации и поддержки классами ModelMBeanInfo, ModelMBeanAttributeInfo, ModelMBeanConstructorInfo, ModelMBeanNotificationInfo, ModelMBeanOperationInfo и ModelMBean некоторые поля были предопределены.
serialVersionUID этого класса равен -6292969195866300415L.
- Начиная с версии:
- 1.5
- См. также:
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
DescriptorSupport() |
Конструктор дескриптора по умолчанию. |
DescriptorSupport |
Конструктор дескриптора. |
DescriptorSupport |
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии. Этот конструктор существует по историческим причинам. |
DescriptorSupport |
Конструктор, принимающий поля в формате fieldName=fieldValue. |
DescriptorSupport |
Конструктор, принимающий имена и значения полей. |
DescriptorSupport |
Конструктор дескриптора, принимающий Descriptor в качестве параметра. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
Object |
clone() |
Возвращает новый Descriptor, являющийся копией этого Descriptor. |
boolean |
equals |
Сравнивает этот дескриптор с заданным объектом. |
String[] |
getFieldNames() |
Возвращает все имена полей дескриптора. |
String[] |
getFields() |
Возвращает все поля, содержащиеся в этом дескрипторе, в виде массива строк. |
Object |
getFieldValue |
Возвращает значение для указанного имени поля или null, если для этого имени значение отсутствует. |
Object[] |
getFieldValues |
Возвращает все значения полей дескриптора в виде массива объектов. |
int |
hashCode() |
Возвращает значение хеш-кода этого дескриптора. |
boolean |
isValid() |
Возвращает true, если все поля имеют допустимые значения для своих имён. |
void |
removeField |
Удаляет поле из дескриптора. |
void |
setField |
Задаёт значение для указанного имени поля. |
void |
setFields |
Задаёт всем полям из массива имён полей новые значения с теми же индексами в массиве значений полей. |
String |
toString() |
Возвращает строку, понятную человеку и представляющую дескриптор. |
String |
toXMLString() |
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии. Этот метод существует по историческим причинам. |
Подробное описание конструкторов
DescriptorSupport
public DescriptorSupport()
Обратите внимание, что созданный пустой дескриптор недопустим (метод
isValid возвращает false)DescriptorSupport
public DescriptorSupport(int initNumFields) throws MBeanException, RuntimeOperationsException
Обратите внимание, что созданный пустой дескриптор недопустим (метод
isValid возвращает false).- Параметры:
-
initNumFields— начальная ёмкость Map, в которой хранятся поля дескриптора. - Исключения:
-
RuntimeOperationsException— при недопустимом значении initNumFields (<= 0) -
MBeanException— оборачивает исключение распределённого обмена данными.
DescriptorSupport
public DescriptorSupport(DescriptorSupport inDescr)
- Параметры:
-
inDescr— дескриптор, используемый для инициализации создаваемого дескриптора. Если он равен null или не содержит полей дескриптора, будет создан пустой Descriptor.
DescriptorSupport
@Deprecated(since="25", forRemoval=true) public DescriptorSupport(String inStr) throws MBeanException, RuntimeOperationsException, XMLParseException
Конструктор дескриптора, принимающий строку XML.
Формат строки XML не определён, но реализация должна гарантировать, что строку, возвращённую методом toXMLString() для существующего дескриптора, можно использовать для создания эквивалентного дескриптора с помощью этого конструктора.
В этой реализации все значения полей будут созданы как строки. Если значения полей не являются строками, программисту придётся правильно сбросить или преобразовать эти поля.
- Параметры:
-
inStr— строка в формате XML, используемая для заполнения этого Descriptor. Формат не определён, но любая реализация должна гарантировать, что строку, возвращённую методомtoXMLStringдля существующего дескриптора, можно использовать для создания эквивалентного дескриптора с помощью этого конструктора. - Исключения:
-
RuntimeOperationsException— если переданная в параметре строка inStr равна null -
XMLParseException— проблема разбора XML при обработке входной строки -
MBeanException— оборачивает исключение распределённого обмена данными.
DescriptorSupport
public DescriptorSupport(String[] fieldNames, Object[] fieldValues) throws RuntimeOperationsException
- Параметры:
-
fieldNames— массив строк с именами полей. Ни один элемент этого массива не может быть равен null. -
fieldValues— массив объектов с соответствующими значениями полей. Элементы массива могут быть равны null.fieldValueдолжно быть допустимым дляfieldName(как определено методомisValid)Примечание: размеры массивов параметров должны совпадать. Если оба массива пусты, будет создан пустой дескриптор.
- Исключения:
-
RuntimeOperationsException— при недопустимом значении имён полей или значений полей. Длины массивов должны быть равны. Это исключение будет выброшено, если создание дескриптора не удастся по любой причине.
DescriptorSupport
public DescriptorSupport(String... fields)
- Параметры:
-
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- Определено в:
-
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, значение поля в возвращаемом массиве будет пустым. Если дескриптор пуст, будет возвращён пустой массив. - См. также:
getFieldNames
public String[] getFieldNames()
Descriptor- Определено в:
-
getFieldNamesв интерфейсеDescriptor - Возвращает:
- массив строк с именами полей. Если дескриптор пуст, будет возвращён пустой массив.
getFieldValues
public Object[] getFieldValues(String... fieldNames)
DescriptorfieldNames.- Определено в:
-
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, если дескриптор неизменяемый и вызов изменил бы его содержимое. - См. также:
clone
public Object clone() throws RuntimeOperationsException
- Определено в:
-
cloneв интерфейсеDescriptor - Переопределяет:
-
cloneв классеObject - Возвращает:
- дескриптор, равный этому дескриптору.
- Исключения:
-
RuntimeOperationsException— при недопустимом значении имён полей или значений полей. Это исключение будет выброшено, если создание дескриптора не удастся по любой причине. - См. также:
removeField
public void removeField(String fieldName)
Descriptor- Определено в:
-
removeFieldв интерфейсеDescriptor - Параметры:
-
fieldName— строковое имя удаляемого поля. Если имя поля недопустимо или поле не найдено, исключение не выбрасывается.
equals
public boolean equals(Object o)
- Если одно значение равно null, то и другое также должно быть равно null.
- Если одно значение является массивом примитивов, то другое также должно быть массивом примитивов того же типа с теми же элементами.
- Если одно значение является массивом объектов, то другое также должно быть им, и метод
Arrays.deepEqualsдолжен возвращать true. - В противном случае метод
Object.equals(Object)должен возвращать true.
- Определено в:
-
equalsв интерфейсеDescriptor - Переопределяет:
-
equalsв классеObject - Параметры:
-
o— объект для сравнения. - Возвращает:
-
true, если объекты одинаковы; в противном случае —false. - См. также:
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().
- Определено в:
-
hashCodeв интерфейсеDescriptor - Переопределяет:
-
hashCodeв классеObject - Возвращает:
- значение хеш-кода этого объекта.
- См. также:
isValid
public boolean isValid() throws RuntimeOperationsException
Эта реализация не поддерживает взаимодействие со службой каталогов или службой поиска. Поэтому, согласно спецификации, поле "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— это исключение будет выброшено, если проверка допустимости не удалась по любой причине.
toXMLString
@Deprecated(since="25", forRemoval=true) public String toXMLString()
Возвращает строку XML, представляющую дескриптор.
Формат не определён, но реализация должна гарантировать, что возвращённую этим методом строку можно использовать для создания эквивалентного дескриптора с помощью конструктора DescriptorSupport(String inStr).
Для полей, не являющихся объектами String, будет вызван метод toString(), чтобы создать значение. Значение будет заключено в круглые скобки. Восстановление этих объектов не гарантируется, если только они специально не настроены на осмысленный формат toString() и не имеют соответствующего конструктора, принимающего строку в том же формате.
Если дескриптор пуст, возвращается следующая строка: <Descriptor></Descriptor>
- Возвращает:
- строку XML.
- Исключения:
-
RuntimeOperationsException— при недопустимом значении имён полей или значений полей. Это исключение будет выброшено, если создание строки в формате XML не удастся по любой причине.
toString
public String toString()
Если дескриптор не содержит полей, возвращается пустая строка.
Если fieldValue является объектом, для него вызывается метод toString(), а возвращённое значение используется в качестве значения поля и заключается в круглые скобки.
- Переопределяет:
-
toStringв классеObject - Возвращает:
- строковое представление объекта
- Исключения:
-
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://docs.oracle.com/en/java/javase/25/docs/api/java.management/javax/management/modelmbean/DescriptorSupport.html