Класс 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 |
Конструктор дескриптора, принимающий строку XML. |
DescriptorSupport |
Конструктор, принимающий поля в формате имяПоля=значениеПоля. |
DescriptorSupport |
Конструктор, принимающий имена полей и значения полей. |
DescriptorSupport |
Конструктор дескриптора, принимающий дескриптор в качестве параметра. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
Object |
clone() |
Возвращает новый дескриптор, являющийся дубликатом дескриптора. |
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() |
Возвращает строку XML, представляющую дескриптор. |
Подробное описание конструкторов
DescriptorSupport
public DescriptorSupport()
Обратите внимание, что созданный пустой описатель не является допустимым описателем (метод
isValid возвращает false)DescriptorSupport
public DescriptorSupport(int initNumFields) throws MBeanException, RuntimeOperationsException
Обратите внимание, что созданный пустой описатель не является допустимым описателем (метод
isValid возвращает false).- Parameters:
-
initNumFields- Начальная емкость Map, хранящей поля описателя. - Throws:
-
RuntimeOperationsException- для недопустимого значения для initNumFields (<= 0) -
MBeanException- Оборачивает исключение распределенной коммуникации.
DescriptorSupport
public DescriptorSupport(DescriptorSupport inDescr)
- Parameters:
-
inDescr- описатель, используемый для инициализации созданного описателя. Если он равен null или не содержит полей описателя, будет создан пустой описатель.
DescriptorSupport
public DescriptorSupport(String inStr) throws MBeanException, RuntimeOperationsException, XMLParseException
Конструктор описателя, принимающий XML-строку.
Формат XML-строки не определен, но реализация должна гарантировать, что строка, возвращаемая методом toXMLString() для существующего описателя, может быть использована для создания эквивалентного описателя с помощью этого конструктора.
В этой реализации все значения полей будут созданы как строки. Если значения полей не являются строками, программист должен правильно переустановить или преобразовать эти поля.
- Parameters:
-
inStr- XML-строка в формате, используемая для заполнения этого описателя. Формат не определен, но любая реализация должна гарантировать, что строка, возвращаемая методомtoXMLStringдля существующего описателя, может быть использована для создания эквивалентного описателя с помощью этого конструктора. - Throws:
-
RuntimeOperationsException- Если строка inStr, переданная в качестве параметра, равна null -
XMLParseException- Проблема с разбором XML при разборе входной строки -
MBeanException- Оборачивает исключение распределенной коммуникации.
DescriptorSupport
public DescriptorSupport(String[] fieldNames, Object[] fieldValues) throws RuntimeOperationsException
- Parameters:
-
fieldNames- Массив строк имён полей. Ни один элемент этого массива не может быть null. -
fieldValues- Массив объектов соответствующих значений полей. Элементы массива могут быть null. ЗначенияfieldValueдолжны быть валидными дляfieldName(как определено в методеisValid)Примечание: размеры массивов параметров должны совпадать. Если оба массива пусты, то создаётся пустой описатель.
- Throws:
-
RuntimeOperationsException- для недопустимого значения для имён полей или значений полей. Длины массивов должны быть равны. Если создание описателя по какой-либо причине завершается неудачей, это исключение будет выброшено.
DescriptorSupport
public DescriptorSupport(String... fields)
- Parameters:
-
fields- Массив строк, где каждый элемент содержит имя и значение поля. Если этот массив null или пуст, выполняется конструктор по умолчанию. Нулевые строки или пустые строки будут игнорироваться.Все значения полей должны быть строками. Если значения полей не являются строками, программист должен правильно переустановить или преобразовать эти поля.
Примечание: каждая строка должна иметь вид fieldName=fieldValue. Имя поля заканчивается на первом символе
=; например, если строкаa=b=c, то имя поляa, а его значениеb=c. - Throws:
-
RuntimeOperationsException- для недопустимого значения для имён полей или значений полей. Поле должно содержать символ «=». "=fieldValue", "fieldName" и "fieldValue" являются недопустимыми. Имя поля не может быть null. "fieldName=" приведет к значению null. Если создание описателя по какой-либо причине завершится неудачей, будет выброшено это исключение.
Подробное описание методов
getFieldValue
public Object getFieldValue(String fieldName) throws RuntimeOperationsException
Descriptor- Specified by:
-
getFieldValueв интерфейсеDescriptor - Parameters:
-
fieldName- имя поля. - Returns:
- соответствующее значение или null, если поле отсутствует.
- Throws:
-
RuntimeOperationsException- если имя поля недопустимо.
setField
public void setField(String fieldName, Object fieldValue) throws RuntimeOperationsException
DescriptorУстанавливает значение для определённого имени поля. Это изменит существующее поле или добавит новое.
Значение поля будет проверено перед установкой. Если оно не является допустимым, будет выброшено исключение. Смысл валидности зависит от реализации описателя.
- Specified by:
-
setFieldв интерфейсеDescriptor - Parameters:
-
fieldName- Имя поля, которое нужно установить. Не может быть null или пустым. -
fieldValue- Значение поля, которое нужно установить для имени поля. Может быть null, если это допустимое значение для поля. - Throws:
-
RuntimeOperationsException- если имя поля или значение поля недопустимы (оборачиваемое исключениеIllegalArgumentException); или если описатель неизменяем (оборачиваемое исключениеUnsupportedOperationException).
getFields
public String[] getFields()
Descriptor- Specified by:
-
getFieldsв интерфейсеDescriptor - Returns:
- Массив строк полей в формате fieldName=fieldValue
Если значение поля не является строкой, то вызывается метод toString() для него, и возвращаемое значение, заключенное в скобки, используется в качестве значения поля в возвращаемом массиве. Если значение поля равно null, то значение поля в возвращаемом массиве будет пустым. Если описатель пуст, вы получите пустой массив. - See Also:
getFieldNames
public String[] getFieldNames()
Descriptor- Specified by:
-
getFieldNamesв интерфейсеDescriptor - Returns:
- Массив строк имён полей. Если описатель пуст, вы получите пустой массив.
getFieldValues
public Object[] getFieldValues(String... fieldNames)
DescriptorfieldNames массив строк параметров.- Specified by:
-
getFieldValuesв интерфейсеDescriptor - Parameters:
-
fieldNames- Массив строк имён полей, для которых должны быть возвращены значения. Если массив пуст, возвращается пустой массив. Если массив равен null, возвращаются все значения, как если бы параметром был массив, возвращаемый методомDescriptor.getFieldNames(). Если имя поля в массиве не существует, включая случай, когда оно равно null или пустой строке, для соответствующего элемента возвращаемого массива возвращается null. - Returns:
- Массив объектов значений полей. Если список
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:
clone
public Object clone() throws RuntimeOperationsException
- Specified by:
-
cloneв интерфейсеDescriptor - Overrides:
-
cloneв классеObject - Returns:
- клонированный экземпляр.
- Throws:
-
RuntimeOperationsException- для недопустимого значения для имён полей или значений полей. Если создание дескриптора не удалось по какой-либо причине, это исключение будет выброшено. - See Also:
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:
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:
isValid
public boolean isValid() throws RuntimeOperationsException
Эта реализация не поддерживает взаимодействие с каталогом или службой поиска. Таким образом, в соответствии со спецификацией, проверка не выполняется для поля "export".
В противном случае эта реализация возвращает false, если:
- Поля name и descriptorType fieldNames не определены, или null, или пусты, или не являются строками.
- Поля class, role, getMethod, setMethod fieldNames, если определены, равны null или не являются строками.
- Поля persistPeriod, currencyTimeLimit, lastUpdatedTimeStamp, lastReturnedTimeStamp, если определены, равны null, или не являются числовыми строками, или не являются числовыми значениями >= -1.
- Поле log fieldName, если определено, равно null, или не является булевым, или не является строкой со значением "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).
Для полей, которые не являются строковыми объектами, вызывается метод toString(), чтобы создать значение. Значение будет заключено в скобки. Не гарантируется, что вы сможете восстановить эти объекты, если они не были специально настроены для поддержки метода toString() в осмысленном формате и имеют соответствующий конструктор, принимающий строку в том же формате.
Если дескриптор пустой, возвращается следующая строка: <Descriptor></Descriptor>
- Returns:
- строку XML.
- Throws:
-
RuntimeOperationsException- для недопустимого значения для имён полей или значений полей. Если построение строки в формате XML не удалось по какой-либо причине, это исключение будет выброшено.
toString
public String toString()
- Overrides:
-
toStringв классеObject - Returns:
- строковое представление объекта.
- Throws:
-
RuntimeOperationsException- для недопустимого значения для имён полей или значений полей. Если формирование строкового представления дескриптора не удалось по какой-либо причине, это исключение будет выброшено.
© 1993, 2023, 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/21/docs/api/java.management/javax/management/modelmbean/DescriptorSupport.html