1 package cz.cuni.amis.pogamut.sposh.executor; 2 3 import java.lang.annotation.ElementType; 4 import java.lang.annotation.Retention; 5 import java.lang.annotation.RetentionPolicy; 6 import java.lang.annotation.Target; 7 8 /** 9 * Optional, use this annotation for the some implementation of {@link ISense} and 10 * {@link IAction}, this annotation specifies the name and description of primitive. 11 * 12 * If not specified, nothing horrible will happen, but it is not user friendly, 13 * because the name of the implementing class will be used. Try to keep it unique, not 14 * required, only better for humans working with editor. 15 * @author Honza 16 */ 17 @Retention(RetentionPolicy.RUNTIME) 18 @Target(ElementType.TYPE) 19 public @interface PrimitiveInfo { 20 /** 21 * Name of the primitive displayed in the editor and debugger. 22 * @return Human readable name of the primitive 23 */ 24 String name(); 25 /** 26 * More precise description of the primitive, should describe what exactly 27 * does it do and what are its parameters. Displayed in the Shed palette. 28 */ 29 String description(); 30 /** 31 * Tags of the primitive (e.g. "movement" for action Turn). Should be used 32 * during searchng, but not currently used. 33 * 34 * @return List of tags of this primitive 35 */ 36 String[] tags() default {}; 37 }