/**
  * Capabilities validation - whether given dataset type is supported
  *
  * @param capability
  * @return
  */
 @Override
 public boolean supportsCapability(OperatorCapability capability) {
   int measureType = DistanceMeasures.MIXED_MEASURES_TYPE;
   // IISDecisionFunction loss = null;
   try {
     measureType = measureHelper.getSelectedMeasureType();
     // loss = ISDecisionFunctionHelper.getConfiguredISDecisionFunction(this); //This is in this
     // kind of block in case it wont be possible to access LoossFunctionHelper
   } catch (Exception e) {
   }
   switch (capability) {
     case BINOMINAL_ATTRIBUTES:
     case POLYNOMINAL_ATTRIBUTES:
       return (measureType == DistanceMeasures.MIXED_MEASURES_TYPE)
           || (measureType == DistanceMeasures.NOMINAL_MEASURES_TYPE);
     case NUMERICAL_ATTRIBUTES:
       return (measureType == DistanceMeasures.MIXED_MEASURES_TYPE)
           || (measureType == DistanceMeasures.DIVERGENCES_TYPE)
           || (measureType == DistanceMeasures.NUMERICAL_MEASURES_TYPE);
     case POLYNOMINAL_LABEL:
     case BINOMINAL_LABEL:
     case NUMERICAL_LABEL:
     case MISSING_VALUES:
       /*
       if (loss != null) {
           if (!loss.supportedLabelTypes(capability)) {
               return false;
           }
       }
        */
       return true;
     default:
       return false;
   }
 }