package org.jentrata.validation;
import hk.hku.cecid.piazza.commons.Sys;
import hk.hku.cecid.piazza.commons.module.ModuleException;
import hk.hku.cecid.piazza.commons.module.ModuleGroup;
import hk.hku.cecid.piazza.commons.module.SystemModule;
import hk.hku.cecid.piazza.commons.spa.Plugin;
import hk.hku.cecid.piazza.commons.spa.PluginException;
import hk.hku.cecid.piazza.commons.spa.PluginHandler;
public class ValidationProcessor implements PluginHandler {
public static final String PLUGIN_ID = "org.jentrata.validation";
private static ModuleGroup moduleGroup;
public static SystemModule core;
private static ValidationProcessor processor;
public static ValidationProcessor getInstance() {
if (processor == null)
throw new ModuleException("ValidationProcessor not initialized");
return processor;
}
public void processActivation(Plugin plugin) throws PluginException {
Sys.main.log.debug("ValidationProcessor activation");
processor = this;
String mgDescriptor = plugin.getParameters().getProperty("module-group-descriptor");
moduleGroup = new ModuleGroup(mgDescriptor, plugin.getClassLoader());
Sys.getModuleGroup().addChild(moduleGroup);
core = moduleGroup.getSystemModule();
moduleGroup.startActiveModules();
if (core == null) {
throw new PluginException("Validation system module not found");
}
}
public void processDeactivation(Plugin plugin) throws PluginException {
moduleGroup.stopActiveModules();
}
}