Описание интерфейса
- Все суперинтерфейсы:
-
Cloneable,Serializable
- Все известные реализующие классы:
-
DescriptorSupport,ImmutableDescriptor
public interface Descriptor extends Serializable, Cloneable
Дополнительные метаданные для элемента JMX. Descriptor связан с MBeanInfo, MBeanAttributeInfo и т.д. Он состоит из набора полей. Поле состоит из имени и связанного значения.
Имена полей нечувствительны к регистру. Имена descriptorType, descriptortype, и DESCRIPTORTYPE являются эквивалентными. Однако регистр, который использовался при первом задании поля, сохраняется в результате работы методов getFields() и getFieldNames().
Не все имена и значения полей предопределены. Новые поля могут быть определены и добавлены любой программой.
Описание может быть изменяемым или неизменяемым. Неизменяемое описание, после создания, никогда не изменяется. Методы Descriptor, которые могут изменить содержимое описания, вызовут исключение для неизменяемого описания. Неизменяемые описания обычно являются экземплярами ImmutableDescriptor или его подкласса. Изменяемые описания обычно являются экземплярами DescriptorSupport или его подкласса.
Некоторые поля используются реализацией JMX. Это означает, что присутствие поля может изменить поведение API JMX или поле может быть установлено в описаниях, возвращаемых API JMX. Эти поля указаны курсивом в таблице ниже, и каждое из них имеет соответствующую константу в классе JMX. Например, поле defaultValue представлено константой JMX.DEFAULT_VALUE_FIELD.
Некоторые другие поля имеют условные значения, описанные в таблице ниже, но они не обязательны для понимания или установки реализацией JMX.
Имена полей, определенные спецификацией JMX в этом и всех будущих версиях, никогда не будут содержать точку (.). Пользователи могут безопасно создавать свои собственные поля, включая точку в имя, и быть уверены, что эти имена не будут конфликтовать с будущими версиями API JMX. Рекомендуется следовать соглашению об именовании пакетов Java, чтобы избежать конфликтов между именами полей из разных источников. Например, поле, созданное example.com, может иметь имя com.example.interestLevel.
Обратите внимание, что значения в полях defaultValue,
legalValues, maxValue, и minValue должны соответствовать типу, возвращаемому методом getType() для связанного MBeanAttributeInfo или
MBeanParameterInfo. Для MXBeans это означает, что они должны быть типа Java, соответствующего отображению, называемого opendata(J) в правилах сопоставления типов MXBean.
| Имя | Тип | Используется в | Значение |
|---|---|---|---|
| defaultValue | Объект | MBeanAttributeInfo MBeanParameterInfo | Значение по умолчанию для атрибута или параметра. См. javax.management.openmbean. |
| deprecated | Строка | Любой | Указание на то, что этот элемент модели информации больше не рекомендуется к использованию. Набор MBean, определенный приложением, называется моделью информации. Правилом является использование значения этого поля в виде строки, представляющей версию модели, в которой элемент был впервые помечен как устаревший, за которым следует пробел и объяснение устаревания, например "1.3 Replaced by the Capacity
attribute". |
| descriptionResource BundleBaseName |
Строка | Любой | Базовое имя для ResourceBundle, в котором можно найти ключ, указанный в поле descriptionResourceKey, например "com.example.myapp.MBeanResources". Значение этого поля определяется этим спецификацией, но само API JMX поле не устанавливает и не использует. |
| descriptionResourceKey | Строка | Любой | Ключ ресурса для описания этого элемента. В сочетании с descriptionResourceBundleBaseName, это позволяет найти локализованную версию описания. Значение этого поля определяется этим спецификацией, но само API JMX поле не устанавливает и не использует. |
| enabled | Строка | MBeanAttributeInfo MBeanNotificationInfo MBeanOperationInfo | Строка "true" или "false", в зависимости от того, включён ли этот элемент. Когда атрибут или операция отключены, они существуют, но в данный момент недоступны. Пользовательский интерфейс может отображать их как серые элементы. Например, атрибут может быть значимым только после вызова метода start() объекта MBean, в противном случае он отключён. Аналогично, уведомление может быть отключено, если в данный момент оно не может быть отправлено, но может быть отправлено в других условиях. |
| exceptions | Строка[] | MBeanAttributeInfo, MBeanConstructorInfo, MBeanOperationInfo | Имена классов исключений, которые могут быть выброшены при вызове конструктора или операции, или при получении атрибута. Значение этого поля определяется этим спецификацией, но само API JMX поле не устанавливает и не использует. Исключения, выброшенные при установке атрибута, задаются полем setExceptions. |
| immutableInfo | Строка | MBeanInfo | Строка "true" или "false", в зависимости от того, является ли MBeanInfo этого объекта MBean неизменяемым. Если это поле true, MBeanInfo для данного объекта MBean гарантированно не изменится за время существования объекта MBean. Таким образом, клиент может прочитать его один раз и кэшировать прочитанное значение. Если это поле false или отсутствует, такой гарантии нет, хотя это не означает, что MBeanInfo обязательно изменится. См. также уведомление "jmx.mbean.info.changed". |
| infoTimeout | Строка Длинное целое число |
MBeanInfo | Время в миллисекундах, в течение которого можно разумно ожидать, что MBeanInfo останется неизменным. Значение может быть Long или строкой с десятичной точкой. Это подсказка от DynamicMBean или любого объекта MBean, который не определяет immutableInfo как true, что MBeanInfo вряд ли изменится в течение этого периода и, следовательно, может быть помещен в кэш. Если это поле отсутствует или имеет значение ноль, не рекомендуется кешировать MBeanInfo, если у него не установлено immutableInfo в значение true или он не содержит "jmx.mbean.info.changed" в своём массиве MBeanNotificationInfo. |
| interfaceClassName | Строка | MBeanInfo | Имя Java-интерфейса для Standard MBean или MXBean, возвращаемое методом Class.getName(). У Standard MBean или MXBean, зарегистрированных непосредственно в сервере MBean или созданных с использованием класса StandardMBean, это поле будет присутствовать в описателе MBeanInfo. |
| legalValues | Набор<?> | MBeanAttributeInfo MBeanParameterInfo | Допустимые значения для атрибута или параметра. См. javax.management.openmbean. |
| locale | Строка | Любой | Язык описания в этом MBeanInfo, MBeanAttributeInfo, и т.д., как возвращается методом Locale.toString(). |
| maxValue | Объект | MBeanAttributeInfo MBeanParameterInfo | Максимально допустимое значение для атрибута или параметра. См. javax.management.openmbean. |
| metricType | Строка | MBeanAttributeInfo MBeanOperationInfo | Тип метрики, одна из строк "счетчик" или "измеритель". Метрика — это измерение, экспортируемое объектом MBean, обычно атрибутом, но иногда результатом операции. Метрика, которая является счетчиком, имеет значение, которое никогда не уменьшается, кроме как при сбросе до начального значения. Метрики-счетчики почти всегда являются неотрицательными целыми числами. Пример — количество полученных запросов. Метрика, которая является измерителем, имеет числовое значение, которое может увеличиваться или уменьшаться. Примеры — количество открытых соединений, коэффициент попадания в кэш или показания температуры. |
| minValue | Объект | MBeanAttributeInfo MBeanParameterInfo | Минимально допустимое значение для атрибута или параметра. См. javax.management.openmbean. |
| mxbean | Строка | MBeanInfo | Строка "true" или "false", в зависимости от того, является ли этот объект MBean MXBean. У Standard MBean или MXBean, зарегистрированных непосредственно в сервере MBean или созданных с использованием класса StandardMBean, это поле будет присутствовать в описателе MBeanInfo. |
| openType | OpenType | MBeanAttributeInfo MBeanOperationInfo MBeanParameterInfo |
Открытый тип этого элемента. В случае Это поле может быть установлено для |
| originalType | Строка | MBeanAttributeInfo MBeanOperationInfo MBeanParameterInfo |
Исходный Java-тип этого элемента, как он появился в методе интерфейса Формат этой строки описан в разделе Имена типов спецификации MXBean. |
| setExceptions | Строка[] | MBeanAttributeInfo | Имена классов исключений, которые могут быть выброшены при установке атрибута. Значение этого поля определяется этим спецификацией, но само API JMX поле не устанавливает и не использует. Исключения, выброшенные при получении атрибута, задаются полем exceptions. |
| severity | Строка Целое число | MBeanNotificationInfo | Уровень серьезности этого уведомления. Может быть 0, означающее неизвестный уровень серьезности, или значение от 1 до 6, представляющее уменьшение уровней серьезности. Может быть представлено как строка с десятичной точкой или Integer. |
| since | Строка | Любой | Версия модели информации, в которой этот элемент был введён. Набор MBean, определенный приложением, называется моделью информации. Приложение также может определять версии этой модели и использовать поле "since" для записи версии, в которой элемент впервые появился. |
| units | Строка | MBeanAttributeInfo MBeanParameterInfo MBeanOperationInfo | Единицы измерения атрибута, параметра или возвращаемого значения операции, например "bytes" или
"seconds". |
Дополнительные поля определяются MBean модели. См. информацию для ModelMBeanInfo, ModelMBeanAttributeInfo, ModelMBeanConstructorInfo, ModelMBeanNotificationInfo и ModelMBeanOperationInfo, а также главу «Model MBeans» спецификации JMX. Следующая таблица обобщает эти поля. Обратите внимание, что когда тип в этой таблице — Number, можно также использовать строку, являющуюся десятичным представлением Long.
Ничто не препятствует использованию этих полей в MBean, которые не являются MBean модели. Поля displayName, severity и visibility, например, представляют интерес вне MBean модели. Однако только MBean модели имеют предопределенное поведение для этих полей.
| Имя | Тип | Используется в | Значение |
|---|---|---|---|
| class | String | ModelMBeanOperationInfo | Класс, в котором определён метод (полное имя). |
| currencyTimeLimit | Number | ModelMBeanInfo ModelMBeanAttributeInfo ModelMBeanOperationInfo | Срок действия кэшированного значения: <0 — никогда, =0 — всегда, >0 — секунды. |
| default | Object | ModelMBeanAttributeInfo | Значение по умолчанию для атрибута. |
| descriptorType | String | Любой | Тип дескриптора: "mbean", "attribute", "constructor", "operation" или "notification". |
| displayName | String | Любой | Читаемое человеком имя этого элемента. |
| export | String | ModelMBeanInfo | Имя для экспорта/экспонирования этого MBean, чтобы его можно было найти другими агентами JMX. |
| getMethod | String | ModelMBeanAttributeInfo | Имя дескриптора операции для метода get. |
| lastUpdatedTimeStamp | Number | ModelMBeanAttributeInfo ModelMBeanOperationInfo | Время, когда было установлено значение value. |
| log | String | ModelMBeanInfo ModelMBeanNotificationInfo | t или T: регистрировать все уведомления, f или F: не регистрировать уведомления. |
| logFile | String | ModelMBeanInfo ModelMBeanNotificationInfo | Полное имя файла для записи событий. |
| messageID | String | ModelMBeanNotificationInfo | Уникальный ключ для текста сообщения (для перевода, анализа). |
| messageText | String | ModelMBeanNotificationInfo | Текст уведомления. |
| name | String | Любой | Имя этого элемента. |
| persistFile | String | ModelMBeanInfo | Имя файла, в который должен быть сохранён MBean. |
| persistLocation | String | ModelMBeanInfo | Полное имя каталога, в который должен быть сохранён MBean (при необходимости). |
| persistPeriod | Number | ModelMBeanInfo ModelMBeanAttributeInfo | Частота цикла сохранения в секундах. Используется, когда persistPolicy равно "OnTimer" или "NoMoreOftenThan". |
| persistPolicy | String | ModelMBeanInfo ModelMBeanAttributeInfo | Одно из следующих: OnUpdate|OnTimer|NoMoreOftenThan|OnUnregister|Always|Never. См. раздел «Поля дескриптора MBean» в документе спецификации JMX. |
| presentationString | String | Любой | Строка в формате XML для представления данных. |
| protocolMap | Descriptor | ModelMBeanAttributeInfo | См. раздел «Поддержка карты протоколов» в документе спецификации JMX. Сопоставления должны быть подходящими для атрибута, и записи можно обновлять или дополнять во время выполнения. |
| role | String | ModelMBeanConstructorInfo ModelMBeanOperationInfo | Одно из «constructor», «operation», «getter» или «setter». |
| setMethod | String | ModelMBeanAttributeInfo | Имя дескриптора операции для метода set. |
| severity | Number | ModelMBeanNotificationInfo | 0-6, где 0: неизвестно; 1: необратимо; 2: критически; 3: серьёзно; 4: незначительно, ошибка; 5: предупреждение; 6: нормально, исправлено, информативно |
| targetObject | Object | ModelMBeanOperationInfo | Объект, на котором должен быть выполнен этот метод. |
| targetType | String | ModelMBeanOperationInfo | Тип ссылки на объект для targetObject. Может быть: ObjectReference | Handle | EJBHandle | IOR | RMIReference. |
| value | Object | ModelMBeanAttributeInfo ModelMBeanOperationInfo | Текущее (кэшированное) значение для атрибута или операции. |
| visibility | Number | Любой | 1-4, где 1: всегда видимо, 4: редко видимо. |
- Since:
- 1.5
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
Object |
clone() |
Возвращает дескриптор, равный этому дескриптору. |
boolean |
equals |
Сравнивает этот дескриптор с заданным объектом. |
String[] |
getFieldNames() |
Возвращает все имена полей в дескрипторе. |
String[] |
getFields() |
Возвращает все поля, содержащиеся в этом дескрипторе, в виде массива строк. |
Object |
getFieldValue |
Возвращает значение для определённого имени поля или null, если значение для этого имени отсутствует. |
Object[] |
getFieldValues |
Возвращает все значения полей в дескрипторе в виде массива объектов. |
int |
hashCode() |
Возвращает хеш-код для этого дескриптора. |
boolean |
isValid() |
Возвращает true, если все поля имеют корректные значения, учитывая их имена. |
void |
removeField |
Удаляет поле из дескриптора. |
void |
setField |
Устанавливает значение для определённого имени поля. |
void |
setFields |
Устанавливает все поля в массиве имён полей в новое значение, соответствующее индексу в массиве значений полей. |
Подробное описание методов
getFieldValue
Object getFieldValue(String fieldName) throws RuntimeOperationsException
- Параметры:
-
fieldName- имя поля. - Возвращает:
- соответствующее значение или null, если поле отсутствует.
- Исключение:
-
RuntimeOperationsException- если имя поля некорректно.
setField
void setField(String fieldName, Object fieldValue) throws RuntimeOperationsException
Устанавливает значение для указанного имени поля. Это изменит существующее поле или добавит новое.
Значение поля будет проверено перед установкой. Если оно некорректно, будет выброшено исключение. Смысл корректности зависит от реализации описателя.
- Параметры:
-
fieldName- Имя поля, которое нужно установить. Не может быть null или пустым. -
fieldValue- Значение поля, которое нужно установить для имени поля. Может быть null, если это допустимое значение для поля. - Исключение:
-
RuntimeOperationsException- если имя поля или значение поля некорректно (исключение обернуто вIllegalArgumentException); или если описатель неизменяем (исключение обернуто вUnsupportedOperationException).
getFields
String[] getFields()
- Возвращает:
- Массив строк полей в формате имяПоля=значениеПоля
Если значение поля не является строкой, то будет вызван метод toString() на этом значении, и возвращенное значение, заключенное в скобки, будет использовано в качестве значения поля в возвращаемом массиве. Если значение поля равно null, то значение поля в возвращаемом массиве будет пустым. Если описатель пустой, вы получите пустой массив. - См. также:
getFieldNames
String[] getFieldNames()
- Возвращает:
- Массив строк имен полей. Если описатель пустой, вы получите пустой массив.
getFieldValues
Object[] getFieldValues(String... fieldNames)
fieldNames.- Параметры:
-
fieldNames- Массив строк имен полей, для которых должны быть возвращены значения. Если массив пуст, будет возвращен пустой массив. Если массив null, будут возвращены все значения, как если бы параметр был массивом, возвращенным методомgetFieldNames(). Если имя поля в массиве не существует (включая null или пустую строку), для соответствующего элемента массива, который возвращается, возвращается null. - Возвращает:
- Массив объектов значений полей. Если список
fieldNamesпуст, вы получите пустой массив.
removeField
void removeField(String fieldName)
- Параметры:
-
fieldName- Строковое имя поля, которое нужно удалить. Если имя поля некорректно или поле не найдено, исключение не выброшено. - Исключение:
-
RuntimeOperationsException- если поле с данным именем существует и описатель неизменяем. Обернутое исключение будетUnsupportedOperationException.
setFields
void setFields(String[] fieldNames, Object[] fieldValues) throws RuntimeOperationsException
Устанавливает все поля в массиве имен полей с новым значением, имеющим тот же индекс в массиве значений полей. Размеры массивов должны совпадать.
Значение поля будет проверено перед установкой. Если оно некорректно, будет выброшено исключение. Если массивы пустые, изменения не будут внесены.
- Параметры:
-
fieldNames- Массив строк имен полей. Массив и элементы массива не могут быть null. -
fieldValues- Массив объектов соответствующих значений полей. Массив не может быть null. Элементы массива могут быть null. - Исключение:
-
RuntimeOperationsException- если изменение не удалось по какой-либо причине. Обернутое исключениеIllegalArgumentException, еслиfieldNamesилиfieldValuesnull, или если массивы имеют разную длину, или если в одном из них есть недопустимое значение. Обернутое исключениеUnsupportedOperationException, если описатель неизменяем и вызов изменил бы его содержимое. - См. также:
clone
Object clone() throws RuntimeOperationsException
Возвращает описатель, равный этому описателю. Изменения возвращаемого описателя не повлияют на этот описатель, и наоборот. Если этот описатель неизменяем, он может удовлетворить этому условию, вернув себя.
- Возвращает:
- Описание, равное этому описателю.
- Исключение:
-
RuntimeOperationsException- для недопустимого значения для имен полей или значений полей. Если создание описателя завершится неудачей по какой-либо причине, будет выброшено это исключение.
isValid
boolean isValid() throws RuntimeOperationsException
- Возвращает:
- true, если значения допустимы.
- Исключение:
-
RuntimeOperationsException- Если проверка корректности завершилась неудачей по какой-либо причине, будет выброшено это исключение. Метод возвращает false, если описатель некорректен, но выбросит это исключение, если попытка определить корректность завершится неудачей.
equals
boolean equals(Object obj)
Сравнивает этот описатель с заданным объектом. Объекты равны, если заданный объект также является Descriptor, и если у двух Descriptors одинаковые имена полей (возможно, отличающиеся по регистру) и одинаковые связанные значения. Соответствующие значения для поля в двух Descriptors равны, если выполняются следующие условия:
- Если одно значение null, то другое тоже должно быть null.
- Если одно значение является массивом примитивов, то другое должно быть массивом примитивов того же типа с теми же элементами.
- Если одно значение является массивом объектов, то другое тоже должно быть, и
Arrays.deepEquals(Object[],Object[])должно вернуть true. - В противном случае
Object.equals(Object)должно вернуть true.
- Overrides:
-
equalsв классеObject - Параметры:
-
obj- объект для сравнения. - Возвращает:
-
trueесли объекты одинаковы;falseв противном случае. - С момента:
- 1.6
- См. также:
hashCode
int hashCode()
Возвращает значение хэш-кода для этого описателя. Хэш-код вычисляется как сумма хэш-кодов каждого поля в описателе. Хэш-код поля с именем n и значением v равен n.toLowerCase().hashCode() ^ h. Здесь h - это хэш-код v, вычисляемый следующим образом:
- Если
vnull, тоhравно 0. - Если
vмассив примитивов, тоhвычисляется с помощью соответствующего перегрузки методаjava.util.Arrays.hashCode. - Если
vмассив объектов, тоhвычисляется с помощьюArrays.deepHashCode(Object[]). - В противном случае
hравноv.hashCode().
- Overrides:
-
hashCodeв классеObject - Возвращает:
- Значение хэш-кода для этого объекта.
- С момента:
- 1.6
- См. также:
© 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/Descriptor.html