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