/*
* JBoss, Home of Professional Open Source
*
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
package org.jboss.seam.wiki.core.plugin.binding;
import org.jboss.seam.wiki.core.plugin.PluginRegistry;
/**
* Abstract plugin binding contract.
* <p>
* Implementations are responsible for reading plugin metadata (XML files,
* annotations, whatever) and registering metamodel data on the registry.
* </p>
* <p>
* Plugins are first bound, then validated. Subclasses must implement the
* binding procedure and can extend the validation procedure.
* </p>
*
* @author Christian Bauer
*/
public abstract class PluginBinder {
public void installPlugins(PluginRegistry registry) {
bindPlugins(registry);
validatePlugins(registry);
}
protected abstract void bindPlugins(PluginRegistry registry);
protected void validatePlugins(PluginRegistry registry) {
// TODO: Validate min/max applicationVersions
}
}