/** * */ package net.frontlinesms.plugins; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import thinlet.Thinlet; /** * General properties for a {@link PluginController} class. * @author Alex */ @Retention(RetentionPolicy.RUNTIME) public @interface PluginControllerProperties { /** A string marking an unset property. */ public final String NO_VALUE = "_____*****-----surely there is a convention for this?"; /** The human-readable name for this plugin, to be displayed in menus etc. */ String i18nKey(); /** The default name for this plugin */ String name(); /** The path to the icon for this plugin, on the classpath. The icon is loaded with {@link Thinlet#getIcon(String)} */ String iconPath(); /** * <p>Gets the location of the Spring config for this plugin.</p> * <p>If the config is on the classpath, this should be detailed like: * <code>classpath:package1/package2/pluginname-spring-hibernate.xml</code></p> * @return the location of the Spring config for this plugin, or {@link #NO_VALUE} if none is required. */ String springConfigLocation(); /** * <p>Gets the location of the hibernate config for this plugin.</p> * <p>If the config is on the classpath, this should be detailed like: * <code>classpath:package1/package2/pluginname.hibernate.cfg.xml</code></p> * @return the location of the hibernate config for this plugin, or {@link #NO_VALUE} if none is required. */ String hibernateConfigPath(); }