Класс 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 |
Конструктор, принимающий поля в формате 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() |
Возвращает строку, представляющую дескриптор в удобочитаемом виде. |
Методы, объявленные в классе Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
boolean |
equals |
Указывает, равен ли этот объект какому-либо другому объекту. |
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 |
Заставляет текущий поток ожидать пробуждения, обычно посредством вызова notify или interrupt, либо до истечения заданного промежутка реального времени. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно посредством вызова notify или interrupt, либо до истечения заданного промежутка реального времени. |
Подробное описание конструкторов
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
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)
DescriptorСравнивает этот дескриптор с указанным объектом. Объекты равны, если указанный объект также является Descriptor и оба Descriptor имеют одинаковые имена полей (возможно, различающиеся регистром символов) и одинаковые связанные с ними значения. Соответствующие значения поля в двух Descriptor равны, если выполняются следующие условия:
- Если одно значение равно null, то и другое должно быть равно null.
- Если одно значение является массивом примитивных типов, то другое также должно быть массивом примитивных типов того же типа с теми же элементами.
- Если одно значение является массивом объектов, то другое также должно быть массивом объектов, и метод
Arrays.deepEquals(Object[],Object[])должен возвращать true. - В противном случае метод
Object.equals(Object)должен возвращать true.
- Определено в:
-
equalsв интерфейсеDescriptor - Переопределяет:
-
equalsв классеObject - Параметры:
-
o— объект для сравнения. - Возвращает:
-
true, если объекты одинаковы; в противном случае —false. - См. также:
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 - Возвращает:
- Значение хеш-кода этого объекта.
- См. также:
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— это исключение будет выброшено, если проверка допустимости не удастся по какой-либо причине.
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.