001/*
002 * ============================================================================
003 * Copyright © 2002-2022 by Thomas Thrien.
004 * All Rights Reserved.
005 * ============================================================================
006 * Licensed to the public under the agreements of the GNU Lesser General Public
007 * License, version 3.0 (the "License"). You may obtain a copy of the License at
008 *
009 *      http://www.gnu.org/licenses/lgpl.html
010 *
011 * Unless required by applicable law or agreed to in writing, software
012 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
013 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
014 * License for the specific language governing permissions and limitations
015 * under the License.
016 */
017
018package org.tquadrat.foundation.mgmt;
019
020import static org.apiguardian.api.API.Status.STABLE;
021
022import java.lang.annotation.Documented;
023import java.lang.annotation.ElementType;
024import java.lang.annotation.Inherited;
025import java.lang.annotation.Retention;
026import java.lang.annotation.RetentionPolicy;
027import java.lang.annotation.Target;
028
029import org.apiguardian.api.API;
030import org.tquadrat.foundation.annotation.ClassVersion;
031
032/**
033 *  This annotation will be used to mark a method as a setter method for an
034 *  MBean implementation. Special care has to be taken if the attribute is of a
035 *  primitive type.
036 *
037 *  @extauthor Thomas Thrien - thomas.thrien@tquadrat.org
038 *  @version $Id: MBeanSetter.java 995 2022-01-23 01:09:35Z tquadrat $
039 *  @since 0.0.1
040 *
041 *  @UMLGraph.link
042 */
043@ClassVersion( sourceVersion = "$Id: MBeanSetter.java 995 2022-01-23 01:09:35Z tquadrat $" )
044@API( status = STABLE, since = "0.0.1" )
045@Documented
046@Retention( RetentionPolicy.RUNTIME )
047@Target( ElementType.METHOD )
048@Inherited
049public @interface MBeanSetter
050{
051        /*------------*\
052    ====** Attributes **=======================================================
053        \*------------*/
054    /**
055     *  Returns the attribute's name.
056     *
057     *  @return The name of the attribute.
058     */
059    String attribute();
060
061    /**
062     *  Returns the description for the attribute.
063     *
064     *  @return The description.
065     */
066    String description() default "";
067}
068//  @interface MBeanSetter
069
070/*
071 *  End of File
072 */