package context.arch.discoverer.query.comparison;
//import context.arch.comm.DataObject;
//import context.arch.discoverer.ComponentDescription;
//import context.arch.discoverer.querySystem.ClassifierWrapper;
//import edu.cmu.intelligibility.hmm.HMMSupervised;
/**
* Wrapper class of HMM classifier to minimize redundant calls to classify by multiple
* EnactorReferences of the same Enactor.
*
* EnactorReferences of the same Enactor should use the same instance of this class,
* rather than create multiple instances.
*
* TODO
* Maybe this class just knows how to wrap a classification in a comparison
* It is just a process facilitator, and not a data/model holder.
*
* @author Brian Y. Lim
*
*/
public class HmmComparison
{
//
// public static final String NAME = "HMMComparison";
//
// protected String lastOutcomeValue;
//
// public HMMComparison() {
// super(NAME);
// }
//
// public String getLastOutcomeValue() {
// return lastOutcomeValue;
// }
//
// /**
// * As long as outcomeValue is not null, this means that a classification happened.
// * Actually, as long as classification is valid, it will always return a non-null value.
// * We just pass that along to the EnactorReference's ruleSatisfied, and
// * leave it to that to deal with the consequence of the specific value.
// * @param classifier
// * @param widgetState
// * @return null if classification process failed (e.g. some null value in an attribute)
// */
// @Override
// public Boolean compare(HMMSupervised hmm, ComponentDescription widgetState) {
// lastOutcomeValue = classifier.classify(widgetState);
//
// // lastOutcomeValue != null; // return result, not whether it was null
// if (lastOutcomeValue == null) { return null; }
// else { return true; }
// }
//
// public static HMMComparison fromDataObject(DataObject data) {
// // TODO: does this even get called, or would it be expected in AbstractComparison?
// return null;
// }
}