Interface TunableValidator


public interface TunableValidator
If implemented, this interface is used to apply a test to the modified values of a Tunable.

     Example:
 
     If using this Test class :
     
         public class Test {
             @Tunable(...)
             String name = "John";
         }
 
 Then we can provide a method to check if the new value for this tunable matches with the 
 conditions that we have set :
 
         public class Test implements TunableValidator{
             @Tunable(...)
             String name = new String("John");
 
             ValidationState getValidationState(Appendable message){
                 if (name == null || name.isEmpty()) {
                     message.append("Name not specified!");
                     return INVALID;
                 } else if (name.equals("Johnny")) {
                     message.append("Are you sure you want to use a nickname?");
                     return REQUEST_CONFIRMATION;
                 } else {
                     return OK;
                 }
             }
         }
     

The String message returned by validate() method is displayed to the user.

Cytoscape Backwards Compatibility (SPI Interface): We expect that this interface will be implemented. Therefore to maintain backwards compatibility this interface will only be modified for major version updates.

Module: work-api

To use this in your app, include the following dependency in your POM:

<dependency>
    <groupId>org.cytoscape</groupId>
    <artifactId>work-api</artifactId>
</dependency>
  • Method Details

    • getValidationState

      TunableValidator.ValidationState getValidationState(Appendable errMsg)
      Executes the validation test on the annotated Tunables.
      Parameters:
      errMsg - if the validation failed an explanatory message can be found here and accessed via errMsg.toString()
      Returns:
      OK if the test succeeded and INVALID if it failed and REQUEST_CONFIRMATION if the user has to be asked for confirmation, e.g. if a file would have to be overwritten etc.