/*
* Copyright (c) 1997, 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.pfl.tf.spi.annotation;
import java.lang.annotation.Annotation;
import java.lang.annotation.Target ;
import java.lang.annotation.Documented ;
import java.lang.annotation.ElementType ;
import java.lang.annotation.Retention ;
import java.lang.annotation.RetentionPolicy ;
Meta-annotation used to define annotations that define groups of related
classes whose methods should be traced. MethodMonitorGroups may be nested,
and MethodMonitorFactory instances that apply to a group apply to all
subgroups as well (following the transitive closure of the subgroups).
Author: ken
/** Meta-annotation used to define annotations that define groups of related
* classes whose methods should be traced. MethodMonitorGroups may be nested,
* and MethodMonitorFactory instances that apply to a group apply to all
* subgroups as well (following the transitive closure of the subgroups).
*
* @author ken
*/
@Documented
@Target(ElementType.ANNOTATION_TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface MethodMonitorGroup {
List of MethodMonitorGroups that are subgrops of this one.
Because annotations don't support circularity, the type
can't be MethodMonitorGroup[], so we require that all classes
in subgroups be annotations which are annotated with
MethodMonitorGroup.
Returns: List of MethodMonitorGroups that are subgroups of
this one.
/** List of MethodMonitorGroups that are subgrops of this one.
* Because annotations don't support circularity, the type
* can't be MethodMonitorGroup[], so we require that all classes
* in subgroups be annotations which are annotated with
* MethodMonitorGroup.
*
* @return List of MethodMonitorGroups that are subgroups of
* this one.
*/
Class<? extends Annotation>[] value() default {} ;
String description() default "" ;
}