package context.apps.demos.imautostatus;
import weka.core.Instance;
import context.arch.discoverer.component.ClassnameElement;
import context.arch.discoverer.component.ConstantAttributeElement;
import context.arch.discoverer.query.ANDQueryItem;
import context.arch.discoverer.query.RuleQueryItem;
import context.arch.enactor.Generator;
import context.arch.storage.AttributeNameValue;
import context.arch.storage.Attributes;
import context.arch.widget.ClassifierWidget;
/**
* Class to populate and update a {@link AutostatusWidget} from a WEKA dataset.
* @author Brian Y. Lim
*
*/
public class AutostatusGenerator extends Generator {
public AutostatusGenerator(String userId) {
super(
// subscription query for specific AutostatusWidget with USER_ID = userId
new ANDQueryItem(
RuleQueryItem.instance(new ClassnameElement(AutostatusWidget.class)),
RuleQueryItem.instance(new ConstantAttributeElement(AttributeNameValue.instance(ResponsivenessWidget.USER_ID, userId)))
),
"Autostatus", // outcome name
userId); // enactor id
start();
}
/**
* Load a scenario instance from the test ARFF file.
* @param instanceIndex index of the scenario index to load
* @return
*/
public void setInstance(Instance instance) {
// Set data values from .arff instance
Attributes data = ClassifierWidget.instanceToAttributes(instance);
// put data into widget
super.updateOutWidget(data);
}
}