All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.glassfish.gmbal.ManagedAttribute Maven / Gradle / Ivy

There is a newer version: 4.0.4
Show newest version
/*
 * 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: *

    *
  1. 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). *
  2. If the method is a getter with a boolean return type, and has a name of * the form isXXX, the derived id is xXX *
  3. If the method is a setter, and has a name of the form setXXX, the * detived id is xXX. *
  4. 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: *

    *
  1. A primitive type (boolean, byte, short, char, int, long, float, double) *
  2. A primitive type wrapper (Boolean, Byte, Short, Character, Integer, * Long, Float, Double) *
  3. A String *
  4. A BigDecimal or BigInteger *
  5. A java.util.Date *
  6. An ObjectName *
  7. 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