package edu.berkeley.nlp.lm.util; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; public class Annotations { /** * Just a fancy-pants comment. * * @author adampauls * */ public @interface OutputParameter { } @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.FIELD) /** * Fields annotated with this annotation will <b>not</b> have their memory usage counted towards total * memory usage. * @author adampauls * */ public @interface SkipMemoryCount { } /** * Fields annotated with this annotation will have their memory usage added * to the memory usage map returned by countApproximateMemoryUsage. Fields * without this annotation will be counted towards total memory usage but * not printed specifically. * * @author adampauls * */ @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.FIELD) public @interface PrintMemoryCount { } @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.FIELD) /** * Annotation which documents command line options. */ public @interface Option { String name() default ""; String gloss() default ""; boolean required() default false; String[] tags() default {}; // Conditionally required option, e.g. // - "main.operation": required only when main.operation specified // - "main.operation=op1": required only when main.operation takes on value op1 // - "operation=op1": the group of the option is used String condReq() default ""; } }