Changeset 6807


Ignore:
Timestamp:
08/18/10 13:01:03 (9 years ago)
Author:
melissa
Message:
  • Fixed bug in StringOption that prevented macro keys from being parsed correctly.
  • Overrode Object.equals(Object) in OptionsList.
  • Added tests for obsolete macro keys. Closes #509.
Location:
trunk/components/loci-plugins
Files:
1 added
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/components/loci-plugins/src/loci/plugins/prefs/OptionsList.java

    r6588 r6807  
    190190  } 
    191191 
     192  // -- Object API methods -- 
     193 
     194  /* @see java.lang.Object#equals(Object) */ 
     195  public boolean equals(Object o) { 
     196    if (o == null || !(o instanceof OptionsList)) return false; 
     197    OptionsList optionsList = (OptionsList) o; 
     198    if (options.size() != optionsList.options.size()) { 
     199      return false; 
     200    } 
     201    for (String key : options.keySet()) { 
     202      Option a = options.get(key); 
     203      Option b = optionsList.options.get(key); 
     204      if ((a != null && b == null) || (a == null && b != null)) { 
     205        return false; 
     206      } 
     207      else if (a == null && b == null) continue; 
     208 
     209      if ((a instanceof BooleanOption) && (b instanceof BooleanOption)) { 
     210        if (((BooleanOption) a).getValue() != ((BooleanOption) b).getValue()) { 
     211          return false; 
     212        } 
     213      } 
     214      else if ((a instanceof StringOption) && (b instanceof StringOption)) { 
     215        String aValue = ((StringOption) a).getValue(); 
     216        String bValue = ((StringOption) b).getValue(); 
     217        if (aValue == null && bValue == null) continue; 
     218        if (aValue == null) { 
     219          return false; 
     220        } 
     221        if (aValue == null || !aValue.equals(bValue)) { 
     222          return false; 
     223        } 
     224      } 
     225      else { 
     226        return false; 
     227      } 
     228    } 
     229    return true; 
     230  } 
     231 
    192232} 
  • trunk/components/loci-plugins/src/loci/plugins/prefs/StringOption.java

    r6588 r6807  
    139139  /* @see Option#parseOption(String arg) */ 
    140140  public void parseOption(String arg) { 
    141     value = Macro.getValue(arg, key, value); 
    142     if (value == null && label != null) { 
     141    String keyValue = Macro.getValue(arg, key, value); 
     142    if ((value == null || keyValue.equals(value)) && label != null) { 
    143143      value = Macro.getValue(arg, label, value); 
    144144    } 
     145    else value = keyValue; 
    145146  } 
    146147 
Note: See TracChangeset for help on using the changeset viewer.