Класс 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) | Сравнивает этот дескриптор с заданным объектом. |
int | hashCode() | Возвращает хэш-код для этого дескриптора. |
boolean | isValid() | Возвращает true, если все поля имеют допустимые значения, учитывая их имена. |
String | toString() | Возвращает строку, представляющую дескриптор в удобочитаемом формате. |
String | toXMLString() | Возвращает строку XML, представляющую дескриптор. |
Методы, объявленные в классе java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait Методы, объявленные в интерфейсе javax.management.Descriptor
getFieldNames, getFields, getFieldValue, getFieldValues, removeField, setField, setFields Конструкторы
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. Если построение дескриптора терпит неудачу по любой причине, это исключение будет брошено.
Методы
clone
public Object clone()
throws RuntimeOperationsException Возвращает новый Descriptor, являющийся дубликатом Descriptor.
- Указано в:
-
cloneв интерфейсеDescriptor - Переопределяет:
-
cloneв классеObject - Возвращает:
- клонированный экземпляр.
- Исключения:
-
RuntimeOperationsException- для некорректного значения поля Names или поля Values. Если создание дескриптора по каким-либо причинам завершится неудачно, будет выброшено это исключение. - См. также:
Cloneable
equals
public boolean equals(Object o)
Сравнивает этот дескриптор с заданным объектом. Объекты равны, если заданный объект также является Descriptor, и если два Descriptor имеют одинаковые имена полей (возможно, отличающиеся регистром) и одинаковые связанные значения. Соответствующие значения для поля в двух Descriptor равны, если выполняются следующие условия:
- Если одно значение равно null, то другое также должно быть равно null.
- Если одно значение является примитивным массивом, то другое должно быть примитивным массивом того же типа с теми же элементами.
- Если одно значение является массивом объектов, то другое также должно быть массивом объектов, и
Arrays.deepEqualsдолжно возвращать true. - В противном случае
Object.equals(Object)должно возвращать true.
- Указано в:
-
equalsв интерфейсеDescriptor - Переопределяет:
-
equalsв классеObject - Параметры:
-
o- объект для сравнения. - Возвращает:
-
trueесли объекты одинаковы;falseв противном случае. - См. также:
-
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().
- Указано в:
-
hashCodeв интерфейсеDescriptor - Переопределяет:
-
hashCodeв классеObject - Возвращает:
- Значение хэш-кода для этого объекта.
- См. также:
-
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 или не являются числовым String или не являются числовыми значениями >= -1
- поле log fieldName, если определено, равно null, или не является Boolean или не является String со значением "t", "f", "true", "false". Эти значения String не чувствительны к регистру.
- поле visibility fieldName, если определено, равно null, или не является числовым String или не является числовым значением >= 1 и <= 4
- поле severity fieldName, если определено, равно null, или не является числовым String или не является числовым значением >= 0 и <= 6
- поле persistPolicy fieldName, если определено, равно null, или не равно одному из следующих строк:
"OnUpdate", "OnTimer", "NoMoreOftenThan", "OnUnregister", "Always", "Never". Эти значения String не чувствительны к регистру.
- Указано в:
-
isValidв интерфейсеDescriptor - Возвращает:
- true, если значения допустимы.
- Исключения:
-
RuntimeOperationsException- Если проверка валидности завершится неудачно по какой-либо причине, будет выброшено это исключение.
toXMLString
public String toXMLString()
Возвращает строку XML, представляющую дескриптор.
Формат не определен, но реализация должна гарантировать, что строка, возвращаемая этим методом, может быть использована для построения эквивалентного дескриптора при создании с помощью конструктора DescriptorSupport(String inStr).
Для полей, которые не являются объектами String, будет вызван метод toString(), чтобы создать значение. Значение будет заключено в скобки. Не гарантируется, что вы сможете восстановить эти объекты, если они не были специально настроены для поддержки toString() в осмысленном формате и имеют соответствующий конструктор, принимающий String в том же формате.
Если дескриптор пуст, возвращается следующая строка: <Descriptor></Descriptor>
- Возвращает:
- строка XML.
- Исключения:
-
RuntimeOperationsException- для некорректного значения поля Names или поля Values. Если создание строки в формате XML завершится неудачно по какой-либо причине, будет выброшено это исключение.
toString
public String toString()
Возвращает удобочитаемую строку, представляющую дескриптор. Строка будет иметь формат "fieldName=fieldValue,fieldName2=fieldValue2,..."
Если в дескрипторе нет полей, возвращается пустая строка.
Если fieldValue является объектом, то на него вызывается метод toString(), и возвращаемое им значение используется как значение для поля, заключенное в скобки.
- Переопределяет:
-
toStringв классеObject - Возвращает:
- строковое представление объекта.
- Исключения:
-
RuntimeOperationsException- для некорректного значения поля Names или поля Values. Если создание строки для дескриптора завершится неудачно по какой-либо причине, будет выброшено это исключение.
© 1993, 2020, 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/11/docs/api/java.management/javax/management/modelmbean/DescriptorSupport.html