001/*
002 * Copyright (c) 2012-2018 Institut National des Sciences Appliquées de Lyon (INSA Lyon) and others
003 *
004 * This program and the accompanying materials are made available under the
005 * terms of the Eclipse Public License 2.0 which is available at
006 * http://www.eclipse.org/legal/epl-2.0.
007 *
008 * SPDX-License-Identifier: EPL-2.0
009 */
010package gololang.annotations;
011
012import java.lang.annotation.Documented;
013import java.lang.annotation.ElementType;
014import java.lang.annotation.Retention;
015import java.lang.annotation.RetentionPolicy;
016import java.lang.annotation.Target;
017
018/**
019 * <code>@DecoratedBy</code> is used to define the reference to the decorator on a decorated function.
020 *
021 * Mainly used for internal stuff, this annotation can be useful to create decorated function in Java.
022 */
023@Retention(RetentionPolicy.RUNTIME)
024@Target(ElementType.METHOD)
025@Documented
026public @interface DecoratedBy {
027  /**
028   * This is the reference to the decorator function.
029   *
030   * @return the reference to the decorator function.
031   */
032  String value();
033}