package nxm.sys.inc;

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

/** Defines an array of names by which a field or method may be referenced from the macro language.
 *  This annotation overrides all of the automatic name generation code in {@link nxm.sys.lib.KeyObject}.
 *  A field or method annotated with an empty array CANNOT be accessed from the macro language.
 *  @author  Conrad Clark
 *  @since   NeXtMidas 3.7.1
 */
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD, ElementType.METHOD})
public @interface KeyObjectNames {
  /** Array of names by which this field or method may be referenced from the macro language.
   *  @return Array of names.
   */
  String[] value() default {};
}
