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 org.eclipse.golo.runtime;
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>@WithCaller</code> is used to define a function that takes the caller class as first argument.
020 *
021 * <p>The caller will be injected by the runtime, and will not be present in the code using the function. The annotated
022 * function must have a class as first parameter.
023 *
024 * <p>Mainly used for internal stuff.
025 */
026@Retention(RetentionPolicy.RUNTIME)
027@Target(ElementType.METHOD)
028@Documented
029public @interface WithCaller {
030}