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;
}