Класс 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 |
Конструктор, принимающий поля в формате fieldName=fieldValue. |
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).- Параметры:
-
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
- Параметры:
-
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- Определено в:
-
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, то значение поля в возвращаемом массиве будет пустым. Если описатель пуст, вы получите пустой массив. - См. также:
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Устанавливает все поля в массиве имен полей новым значением с тем же индексом в массиве значений полей. Размеры массивов должны совпадать.
Значение поля будет проверено перед установкой. Если оно недействительно, будет выброшено исключение. Если массивы пусты, то никаких изменений не произойдет.
- 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
Это реализация не поддерживает взаимодействие с каталогом или службой поиска. Таким образом, в соответствии со спецификацией, проверка не выполняется для поля «экспорт».
В противном случае эта реализация возвращает 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).
Для полей, которые не являются объектами типа String, будет вызван метод toString(), чтобы создать значение. Значение будет заключено в скобки. Нет гарантии, что вы сможете восстановить эти объекты, если они не были специально настроены для поддержки toString() в осмысленном формате и имеют соответствующий конструктор, принимающий строку в том же формате.
Если описатель пуст, возвращается следующая строка: <Descriptor></Descriptor>
- Returns:
- строка XML.
- Throws:
-
RuntimeOperationsException- для недопустимого значения для полей Имена или Значения полей. Если создание XML-строки не удается по какой-либо причине, будет выброшено это исключение.
toString
public String toString()
Если в описателе нет полей, возвращается пустая строка.
Если fieldValue является объектом, то вызывается метод toString() для него, и его возвращаемое значение используется в качестве значения поля, заключенного в скобки.
- Overrides:
-
toStringв классеObject - Returns:
- строковое представление объекта.
- Throws:
-
RuntimeOperationsException- для недопустимого значения для полей Имена или Значения полей. Если создание строки описателя не удается по какой-либо причине, будет выброшено это исключение.
© 1993, 2021, 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/17/docs/api/java.management/javax/management/modelmbean/DescriptorSupport.html