Класс 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

Spec-Zone .ru
спецификации, руководства, описания, API