Exit Full View

Feather2 / feather2-runtime / src / main / java / uk / co / nickthecoder / feather / runtime / Position.java

package uk.co.nickthecoder.feather.runtime;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * Feather automatically add this annotation to all classes/constructors/fields/methods,
 * when FeatherConfiguration.includeMetaData == true.
 * <p>
 * This can be used in conjunction with JVM's reflection features to find the position of
 * classes/constructors/fields/methods.
 */
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE, ElementType.CONSTRUCTOR, ElementType.FIELD, ElementType.METHOD})
public @interface Position {

    /**
     * The absolute path of the source code.
     */
    String filename() default "";

    /**
     * The row within the script. The first line is row 1. (i.e. this is 1 based, not zero based).
     */
    int row() default 1;

    /**
     * The column within the script. The first column is 1. (i.e. this is 1 based, not zero based).
     */
    int column() default 1;
}