Spec-Zone.ru › OpenJDK 8

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API