![JAR search and dependency download from the Maven repository](/logo.png)
org.glassfish.gmbal.ManagedAttribute Maven / Gradle / Ivy
/*
* Copyright (c) 2007, 2018 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Distribution License v. 1.0, which is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
package org.glassfish.gmbal ;
import java.lang.annotation.Documented ;
import java.lang.annotation.Target ;
import java.lang.annotation.ElementType ;
import java.lang.annotation.Retention ;
import java.lang.annotation.RetentionPolicy ;
/** This annotation defines an attribute in either CompositeData (ManagedData) or
* an open MBean (ManagedObject). An attribute may be read/write (has a setter
* and a getter), read only (only has a getter),
* or write only (only has a setter) depending on the declared methods in the class.
*
* A method defines a getter if it returns a non-void type and takes no argument types.
* Likewise a method defines a setter if it return void and takes exactly one
* argument.
*
An id is derived from a method name as follows:
*
* - If the method is a getter, and has a name of the form getXXX, the derived
* id is xXX (note the initial lower case change).
*
- If the method is a getter with a boolean return type, and has a name of
* the form isXXX, the derived id is xXX
*
- If the method is a setter, and has a name of the form setXXX, the
* detived id is xXX.
*
- Otherwise the derived ID is the method name.
*
*
* In certain cases, a field annotated with @ManagedAttribute
* may also represent a read-only attribute.
* The field must be final, and its type must be one of:
*
* - A primitive type (boolean, byte, short, char, int, long, float, double)
*
- A primitive type wrapper (Boolean, Byte, Short, Character, Integer,
* Long, Float, Double)
*
- A String
*
- A BigDecimal or BigInteger
*
- A java.util.Date
*
- An ObjectName
*
- An enum (which is translated to its ordinal name)
*
* Any such field can be accessed safely by multiple threads, because its value
* cannot change after an instance of the containing class has completed its
* constructor. Note that Date is not truly immutable (it should be!), but it's
* one of the Open MBean simple types, so it is included here.
*/
@Documented
@Target({ElementType.METHOD,ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
public @interface ManagedAttribute {
/** The id of the attribute. Defaults to value derived from method name.
* @return The id (default "").
*/
String id() default "" ;
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy