Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
public interface IStyleRule {
         // Possible types of Style Rules
        static int CLASS        = 0;  // Class of the object: hep.aida.IHistogram1D
        static int PATH          = 1;  // Position of the object in a Tree
        static int ORDER        = 2;  // Order in the IPlotterRegion: specific number, or cyclical
        static int ATTRIBUTE = 3;  // Arbitrary "key=value" pair, evalyated by the Rule
                                                                  // From AIDA object's annotation any entry with "plotterState." prefix in key
                                                                  // will be stripped of this prefix and put into PlotterState with ATTRIBUTE
                                                                  // type before obtaining Style from the StyleRegistry
        static int ACTION       = 4;   // What is going to happen with the object: plotting, printing
        static int CATEGORY  = 5;   // "experiment=GLAST", "quality=preliminary"
                                                                  // ACTION seems like a sub-type of CATEGORY: "printing=true"
        // Operations that chain rules together
        static int AND = 0;
        static int OR  = 1;
   
         int getType();
   
        /*\*
    *      * Priority determines the order in which corresponding IPlotterStyle
          * should be used when assembling the cumulative IPlotterStyle
     \*/
    int getPriority();
   
    String getDescription();
   
    void addRule(IStyleRule rule, int operation);
   
   
    /*\*
     * Determines if this rule should be used.
     *
     * If type=CATEGORY, same rule as for AIDA options should be applied:
     * have to pass "key=value" pair as value, for only "key" \-> "key=true",
     \*/
    boolean ruleApplies(int type, String value);
   
    /*\*
     * Or maybe it is better to hide this type/"key=value" complexity and do this:
     \*/
     */
      int getPriority();
      String getDescription();      void addRule(IStyleRule rule, int operation);
     boolean ruleApplies(IPlotterState state);
}

...

IPlotterState interface:

code
Code Block
/*\*
 \* This object encapsulates information about relevant
 \ * IPlotterRegion, object, and actions.
 \ * It is used for obtaining implicit IPlotterStyle
  */
public interface IPlotterState {
   
         // IStyleRule types are used here
        String getValueForType(int styleRuleType);
   
}