Описание интерфейса
- Все суперинтерфейсы:
-
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.
| Name | Type | Used in | Meaning |
|---|---|---|---|
| defaultValue | Object | MBeanAttributeInfo MBeanParameterInfo | Значение по умолчанию для атрибута или параметра. См. javax.management.openmbean. |
| deprecated | String | Any | Указывает, что этот элемент модели информации больше не рекомендуется к использованию. Набор MBeans, определенных приложением, называется моделью информации. Соглашение заключается в том, что значение этого поля содержит строку, представляющую версию модели, в которой элемент был впервые устаревшим, за которой следует пробел и объяснение устаревания, например "1.3 Replaced by the Capacity
attribute". |
| descriptionResource BundleBaseName |
String | Any | Базовое имя для ResourceBundle, в котором можно найти ключ, указанный в поле descriptionResourceKey, например "com.example.myapp.MBeanResources". Значение этого поля определено этим спецификацией, но само API JMX не устанавливает или не использует это поле. |
| descriptionResourceKey | String | Any | Ключ ресурса для описания этого элемента. В сочетании с полем descriptionResourceBundleBaseName, это позволяет найти локализованную версию описания. Значение этого поля определено этой спецификацией, но само API JMX не устанавливает или не использует это поле. |
| enabled | String | MBeanAttributeInfo MBeanNotificationInfo MBeanOperationInfo | Строка "true" или "false", в зависимости от того, включен ли этот элемент. Если атрибут или операция не включены, они существуют, но в настоящее время недоступны. Пользовательский интерфейс может отображать их как серые элементы. Например, атрибут может иметь смысл только после вызова метода start() MBean, а в ином случае он отключен. Аналогично, уведомление может быть отключено, если в настоящее время его нельзя выдать, но это возможно в других обстоятельствах. |
| exceptions | String[] | MBeanAttributeInfo, MBeanConstructorInfo, MBeanOperationInfo | Имена классов исключений, которые могут быть выброшены при вызове конструктора или операции, или при получении атрибута. Значение этого поля определено этим спецификацией, но само API JMX не устанавливает или не использует это поле. Исключения, выбрасываемые при установке атрибута, задаются полем setExceptions. |
| immutableInfo | String | MBeanInfo | Строка "true" или "false", в зависимости от того, является ли MBeanInfo этого MBean неизменяемым. Когда это поле истинно, MBeanInfo для данного MBean гарантированно не изменится в течение всего срока службы MBean. Таким образом, клиент может прочитать его один раз и кэшировать прочитанное значение. Когда это поле ложно или отсутствует, такой гарантии нет, хотя это не означает, что MBeanInfo обязательно изменится. См. также уведомление "jmx.mbean.info.changed". |
| infoTimeout | String Long |
MBeanInfo | Время в миллисекундах, в течение которого можно разумно ожидать, что MBeanInfo не изменится. Значение может быть Long или десятичной строкой. Это предоставляет подсказку от DynamicMBean или любого MBean, который не определяет immutableInfo как true, что MBeanInfo, скорее всего, не изменится в течение этого периода и, следовательно, может быть кэширован. Когда это поле отсутствует или имеет значение ноль, не рекомендуется кэшировать MBeanInfo, если не задан immutableInfo в значение true или в нем есть "jmx.mbean.info.changed" в массиве MBeanNotificationInfo. |
| interfaceClassName | String | MBeanInfo | Имя Java-интерфейса для Standard MBean или MXBean, возвращаемое методом Class.getName(). У Standard MBean или MXBean, зарегистрированных непосредственно в MBean Server или созданных с помощью класса StandardMBean, в описателе MBeanInfo будет это поле. |
| legalValues | Set<?> | MBeanAttributeInfo MBeanParameterInfo | Допустимые значения для атрибута или параметра. См. javax.management.openmbean. |
| locale | String | Any | Локаль описания в этом MBeanInfo, MBeanAttributeInfo и т.д., как возвращается методом Locale.toString(). |
| maxValue | Object | MBeanAttributeInfo MBeanParameterInfo | Максимальное допустимое значение для атрибута или параметра. См. javax.management.openmbean. |
| metricType | String | MBeanAttributeInfo MBeanOperationInfo | Тип метрики, одна из строк "счетчик" или "измеритель". Метрика — это измерение, экспортируемое MBean, обычно атрибут, но иногда результат операции. Метрика, являющаяся счетчиком, имеет значение, которое никогда не уменьшается, за исключением сброса до начального значения. Метрики-счетчики почти всегда являются целыми неотрицательными числами. Примером может служить количество полученных запросов. Метрика, являющаяся измерителем, имеет числовое значение, которое может увеличиваться или уменьшаться. Примерами могут служить количество открытых соединений, коэффициент попадания в кэш или показания температуры. |
| minValue | Object | MBeanAttributeInfo MBeanParameterInfo | Минимальное допустимое значение для атрибута или параметра. См. javax.management.openmbean. |
| mxbean | String | MBeanInfo | Строка "true" или "false", в зависимости от того, является ли этот MBean MXBean. У Standard MBean или MXBean, зарегистрированных непосредственно в MBean Server или созданных с помощью класса StandardMBean, в описателе MBeanInfo будет это поле. |
| openType | OpenType | MBeanAttributeInfo MBeanOperationInfo MBeanParameterInfo |
Открытый тип этого элемента. В случае Это поле может быть установлено для |
| originalType | String | MBeanAttributeInfo MBeanOperationInfo MBeanParameterInfo |
Исходный тип Java этого элемента, как он отображался в методе интерфейса Формат этой строки описан в разделе Имена типов спецификации MXBean. |
| setExceptions | String[] | MBeanAttributeInfo | Имена классов исключений, которые могут быть выброшены при установке атрибута. Значение этого поля определено этим спецификацией, но само API JMX не устанавливает или не использует это поле. Исключения, выбрасываемые при получении атрибута, задаются полем exceptions. |
| severity | String Integer | MBeanNotificationInfo | Уровень серьезности этого уведомления. Он может быть равен 0, что означает неизвестный уровень серьезности, или принимать значения от 1 до 6, представляющие убывающие уровни серьезности. Он может быть представлен как десятичная строка или Integer. |
| since | String | Any | Версия модели информации, в которой этот элемент был представлен. Набор MBeans, определенных приложением, называется моделью информации. Приложение также может определить версии этой модели и использовать поле "since" для записи версии, в которой элемент появился впервые. |
| units | String | MBeanAttributeInfo MBeanParameterInfo MBeanOperationInfo | Единицы измерения атрибута, параметра или значения возврата операции, например "bytes" или
"seconds". |
Дополнительные поля определяются MBeans модели. Смотрите информацию для ModelMBeanInfo, ModelMBeanAttributeInfo, ModelMBeanConstructorInfo, ModelMBeanNotificationInfo и ModelMBeanOperationInfo, а также главу «Model MBeans» в спецификации JMX. В следующей таблице эти поля обобщены. Обратите внимание, что когда Тип в этой таблице — Число, можно также использовать строку, представляющую десятичное представление целого числа.
Ничто не мешает использовать эти поля в MBeans, которые не являются MBeans модели. Например, поля displayName, severity и visibility представляют интерес вне MBeans модели. Но только MBeans модели имеют предварительно определенное поведение для этих полей.
| Имя | Тип | Используется в | Значение |
|---|---|---|---|
| class | String | ModelMBeanOperationInfo | Класс, в котором определен метод (полное имя). |
| currencyTimeLimit | Число | ModelMBeanInfo ModelMBeanAttributeInfo ModelMBeanOperationInfo | Сколько времени кешированное значение является действительным: <0 никогда, =0 всегда, >0 секунд. |
| default | Объект | ModelMBeanAttributeInfo | Значение по умолчанию для атрибута. |
| descriptorType | String | Любой | Тип дескриптора, «mbean», «attribute», «constructor», «operation» или «notification». |
| displayName | String | Любой | Человекопонятное имя этого элемента. |
| export | String | ModelMBeanInfo | Имя, которое будет использоваться для экспорта/раскрытия этого MBean, чтобы его можно было найти другими агентами JMX. |
| getMethod | String | ModelMBeanAttributeInfo | Имя дескриптора операции для метода get. |
| lastUpdatedTimeStamp | Число | 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 | Число | 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 | Число | ModelMBeanNotificationInfo | 0-6, где 0: неизвестно; 1: необратимая ошибка; 2: критическая ошибка, сбой; 3: серьезная ошибка; 4: незначительная ошибка; 5: предупреждение; 6: нормальное, исправлено, информативное. |
| targetObject | Объект | ModelMBeanOperationInfo | Объект, на котором необходимо выполнить этот метод. |
| targetType | String | ModelMBeanOperationInfo | Тип ссылки на объект для targetObject. Может быть: ObjectReference | Handle | EJBHandle | IOR | RMIReference. |
| value | Объект | ModelMBeanAttributeInfo ModelMBeanOperationInfo | Текущее (кешированное) значение для атрибута или операции. |
| visibility | Число | Любой | 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илиfieldValuesравно null, или если массивы имеют разную длину, или если в одном из них есть недопустимое значение. Обернутое исключение -UnsupportedOperationException, если дескриптор неизменяем, и вызов изменит его содержимое. - См. также:
clone
Object clone() throws RuntimeOperationsException
Возвращает дескриптор, равный этому дескриптору. Изменения в возвращаемом дескрипторе не повлияют на этот дескриптор, и наоборот. Если этот дескриптор неизменяем, он может выполнить это условие, вернув себя.
- Возвращает:
- Дескриптор, равный этому дескриптору.
- Изначает исключения:
-
RuntimeOperationsException- для недопустимого значения для имён полей или значений полей. Если создание дескриптора терпит неудачу по какой-либо причине, это исключение будет выброшено.
isValid
boolean isValid() throws RuntimeOperationsException
- Возвращает:
- true, если значения допустимы.
- Изначает исключения:
-
RuntimeOperationsException- Если проверка на корректность терпит неудачу по какой-либо причине, это исключение будет выброшено. Метод возвращает false, если дескриптор некорректен, но выбрасывает это исключение, если попытка определить корректность терпит неудачу.
equals
boolean equals(Object obj)
Сравнивает этот дескриптор с заданным объектом. Объекты равны, если заданный объект также является Descriptor, и если два Descriptor имеют одинаковые имена полей (возможно, различающиеся регистром) и одинаковые связанные значения. Соответствующие значения для поля в двух Descriptor равны, если выполняются следующие условия:
- Если одно значение равно null, то другое также должно быть null.
- Если одно значение является массивом примитивных типов, то другое должно быть массивом примитивных типов того же типа с теми же элементами.
- Если одно значение является массивом объектов, то другое также должно быть массивом, и
Arrays.deepEquals(Object[],Object[])должен вернуть true. - В противном случае
Object.equals(Object)должен вернуть true.
hashCode
int hashCode()
Возвращает значение хэш-кода для этого дескриптора. Хэш-код вычисляется как сумма хэш-кодов каждого поля в дескрипторе. Хэш-код поля с именем n и значением v равен n.toLowerCase().hashCode() ^ h. Здесь h — хэш-код v, вычисляемый следующим образом:
- Если
vравно null, тоhравно 0. - Если
vявляется массивом примитивных типов, тоhвычисляется с использованием соответствующего перегрузкиjava.util.Arrays.hashCode. - Если
vявляется массивом объектов, тоhвычисляется с использованиемArrays.deepHashCode(Object[]). - В противном случае
hравенv.hashCode().
© 1993, 2025, 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://download.java.net/java/early_access/jdk24/docs/api/java.management/javax/management/Descriptor.html