Класс 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(DescriptorSupport inDescr) Конструктор дескриптора, принимающий дескриптор в качестве параметра. |
DescriptorSupport(int initNumFields) Конструктор дескриптора. |
DescriptorSupport(String... fields) Конструктор, принимающий поля в формате имяПоля=значениеПоля. |
DescriptorSupport(String inStr) Конструктор дескриптора, принимающий строку XML. |
DescriptorSupport(String[] fieldNames,
Object[] fieldValues) Конструктор, принимающий имена полей и значения полей. |
Методы
| Модификатор и тип | Метод и описание |
|---|---|
Object |
clone() Возвращает новый дескриптор, являющийся дубликатом дескриптора. |
boolean |
equals(Object o) Сравнивает этот дескриптор с заданным объектом. |
String[] |
getFieldNames() Возвращает все имена полей в дескрипторе. |
String[] |
getFields() Возвращает все поля, содержащиеся в этом дескрипторе, в виде массива строк. |
Object |
getFieldValue(String fieldName) Возвращает значение для определенного имени поля или null, если для этого имени нет значения. |
Object[] |
getFieldValues(String... fieldNames) Возвращает все значения полей в дескрипторе в виде массива объектов. |
int |
hashCode() Возвращает значение хэш-кода для этого дескриптора. |
boolean |
isValid() Возвращает true, если все поля имеют допустимые значения, учитывая их имена. |
void |
removeField(String fieldName) Удаляет поле из дескриптора. |
void |
setField(String fieldName,
Object fieldValue) Устанавливает значение для определенного имени поля. |
void |
setFields(String[] fieldNames,
Object[] fieldValues) Устанавливает все поля в массиве имен полей в новое значение с тем же индексом в массиве значений полей. |
String |
toString() Возвращает удобочитаемую строку, представляющую дескриптор. |
String |
toXMLString() Возвращает строку XML, представляющую дескриптор. |
Методы, унаследованные от класса java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait Конструкторы
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. Если создание описателя терпит неудачу по какой-либо причине, будет выброшено это исключение.
Методы
getFieldValue
public Object getFieldValue(String fieldName)
throws RuntimeOperationsException Описание скопировано из интерфейса: Descriptor
Возвращает значение для конкретного имени поля или null, если для этого имени нет значения.
- Задано в:
-
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, то значение поля в возвращаемом массиве будет пустым. Если описатель пустой, возвращается пустой массив. - См. также:
Descriptor.setFields(java.lang.String[], java.lang.Object[])
getFieldNames
public String[] getFieldNames()
Описание скопировано из интерфейса: Descriptor
Возвращает все имена полей в описателе.
- Задано в:
-
getFieldNamesв интерфейсеDescriptor - Возвращает:
- Массив строк имён полей. Если описатель пустой, возвращается пустой массив.
getFieldValues
public Object[] getFieldValues(String... fieldNames)
Описание скопировано из интерфейса: Descriptor
Возвращает все значения полей в описателе в виде массива объектов. Возвращаемые значения находятся в том же порядке, что и в массиве строк fieldNames.
- Задано в:
-
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если описатель неизменяем, и вызов должен изменить его содержимое. - См. также:
Descriptor.getFields()
clone
public Object clone()
throws RuntimeOperationsException Возвращает новый описатель, являющийся дубликатом описателя.
- Задано в:
-
cloneв интерфейсеDescriptor - Переопределяет:
-
cloneв классеObject - Возвращает:
- клонированный экземпляр.
- Исключения:
-
RuntimeOperationsException- для недопустимого значения для имён полей или значений полей. Если создание описателя терпит неудачу по какой-либо причине, будет выброшено это исключение. - См. также:
Cloneable
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в противном случае. - См. также:
-
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, пустые или не являются строками
- поля 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". Эти строковые значения должны быть регистронезависимыми.
- Указано:
-
isValidв интерфейсеDescriptor - Возвращает:
- true, если значения корректны.
- Выбрасывает:
-
RuntimeOperationsException- Если проверка валидности завершается неудачно по какой-либо причине, это исключение будет выброшено.
toXMLString
public String toXMLString()
Возвращает строку XML, представляющую дескриптор.
Формат не определен, но реализация должна гарантировать, что строка, возвращаемая этим методом, может быть использована для построения эквивалентного дескриптора при создании экземпляра с использованием конструктора DescriptorSupport(String inStr).
Для полей, которые не являются строками, вызывается метод toString(), чтобы создать значение. Значение будет заключено в скобки. Не гарантируется, что вы сможете восстановить эти объекты, если только они не были специально настроены для поддержки toString() в осмысленном формате и имеют соответствующий конструктор, принимающий строку в том же формате.
Если дескриптор пуст, возвращается следующая строка: <Descriptor></Descriptor>
- Возвращает:
- строку XML.
- Выбрасывает:
-
RuntimeOperationsException- для некорректного значения для имен полей или значений полей. Если построение строки в формате XML завершается неудачно по какой-либо причине, это исключение будет выброшено.
toString
public String toString()
Возвращает удобочитаемую строку, представляющую дескриптор. Строка будет в формате "fieldName=fieldValue,fieldName2=fieldValue2,...".
Если в дескрипторе нет полей, возвращается пустая строка.
Если fieldValue является объектом, то вызывается метод toString() на нем, и возвращаемое им значение используется в качестве значения поля, заключенного в скобки.
- Переопределяет:
-
toStringв классеObject - Возвращает:
- строковое представление объекта.
- Выбрасывает:
-
RuntimeOperationsException- для некорректного значения для имен полей или значений полей. Если построение строки дескриптора завершается неудачно по какой-либо причине, это исключение будет выброшено.
© 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.