/** * */ package org.jentrata.validation.extension; import java.util.Properties; import org.jentrata.validation.ValidationProcessor; import org.jentrata.validation.Validator; import org.jentrata.validation.ValidatorComponent; import hk.hku.cecid.piazza.commons.spa.Extension; import hk.hku.cecid.piazza.commons.spa.ExtensionPointIteratedHandler; import hk.hku.cecid.piazza.commons.spa.PluginException; /** * @author aaronwalker * */ public class PayloadValidationExtensionPointHander extends ExtensionPointIteratedHandler { @SuppressWarnings("unchecked") @Override public void processExtension(Extension extension) throws PluginException { String cpaId = extension.getParameter("cpaId"); String className = extension.getParameter("class"); Properties config = new Properties(); config.putAll(extension.getParameters()); if (className != null && cpaId != null) { Class<? extends Validator> handlerClass = extension.getPlugin().loadClass(className); register(cpaId, handlerClass,config); } else { throw new PluginException("Unable to register payload validator: No class or cpaId defined"); } } private void register(String cpaId, Class<? extends Validator> handlerClass, Properties config) { String contentType = config.getProperty("contentType"); ValidatorComponent vc = getComponent(); if(contentType == null) { vc.registerDefault(cpaId, handlerClass,config); } else { vc.register(cpaId, contentType, handlerClass,config); } } protected ValidatorComponent getComponent() { return (ValidatorComponent) ValidationProcessor.core.getComponent(ValidatorComponent.COMP_ID); } }