package hep.aida.ref.plotter.style.registry; import hep.aida.IPlotterStyle; /** * This interface can be implemented as "In-Memory" copy of persistent * facility, or as keeping live connections and committing any change * immediately. */ public interface IStyleStore { // Key for AIDA type of object that the Style is going to be used with public static String STYLE_PREVIEW_TYPE = "STYLE_PREVIEW_TYPE"; // Key for Style name public static String STYLE_STORE_NAME = "STYLE_STORE_NAME"; String getStoreName(); String getStoreType(); boolean isReadOnly(); // Manage Styles boolean hasStyle(String styleName); void addStyle(String styleName, IPlotterStyle style); void addStyle(String styleName, IPlotterStyle style, IStyleRule rule); IPlotterStyle getStyle(String styleName); void moveUp(String styleName); void moveDown(String styleName); /** * Remove Style and Rule associated with it from the Store */ IPlotterStyle removeStyle(String styleName); String[] getAllStyleNames(); // Create new Rule for this Store - Store acts as a Rule Factory IStyleRule createRule(); // Manage Rules - only one rule per style is allowed IStyleRule getRuleForStyle(String styleName); void setRuleForStyle(String styleName, IStyleRule rule); void removeRuleForStyle(String styleName); /** * Write all information from Store to the undelying persistent * facility: XML file, database, etc. */ void commit(); /** * Close all connections and free all resources. * Store is not usable after this method is executed. */ void close(); }