Go to the documentation of this file.
20 package net.sf.gridarta.plugin;
23 import bsh.Interpreter;
25 import java.util.ArrayList;
26 import java.util.Collection;
27 import java.util.Collections;
28 import java.util.Iterator;
29 import java.util.List;
30 import java.util.concurrent.CopyOnWriteArrayList;
41 import nu.xom.Element;
43 import org.apache.log4j.Category;
44 import org.apache.log4j.Logger;
45 import org.jetbrains.annotations.NotNull;
46 import org.jetbrains.annotations.Nullable;
59 private static final Category
LOG = Logger.getLogger(
Plugin.class);
71 private final List<PluginParameter<G, A, R, ?>>
parameters =
new ArrayList<>();
111 private final Collection<PluginListener>
listeners =
new CopyOnWriteArrayList<>();
166 if (this.code.equals(
code)) {
190 if (parameter.getName().equals(parameterName)) {
212 LOG.warn(
"Cannot create parameter: " + ex.getMessage());
253 listener.parametersChanged();
273 final Element parameterXml =
codec.
toXML(parameter);
278 throw new AssertionError(ex);
306 }
catch (
final IndexOutOfBoundsException ex) {
352 if (this.script ==
script) {
364 if (this.filter ==
filter) {
378 final int index =
parameters.indexOf(pluginParameter);
432 public Iterator<PluginParameter<G, A, R, ?>>
iterator() {
433 return Collections.unmodifiableList(
parameters).iterator();
437 final Interpreter runner =
new Interpreter();
441 }
catch (
final EvalError e) {
442 LOG.warn(
"Evaluation error on (auto-run)" +
name, e);
448 final Interpreter runner =
new Interpreter();
452 }
catch (
final EvalError e) {
453 LOG.warn(
"Evaluation error on (filter)" +
name, e);
454 }
catch (
final ClassCastException e) {
455 LOG.warn(
"Plugin did not return a net.sf.gridarta.model.filter.Filter object" +
name, e);
final Collection< PluginListener > listeners
final PluginParameterFactory< G, A, R > pluginParameterFactory
void setFile(@Nullable final File file)
void runPlugin(@NotNull final PluginParameters pluginParameters)
static final Category LOG
Node toXML(@NotNull final PluginParameter< G, A, R, ?> pluginParameter)
void removeParameter(final int index)
void setCode(@NotNull final String code)
void removePluginParameterListener(@NotNull PluginParameterListener listener)
void addPluginParameterListener(@NotNull PluginParameterListener listener)
PluginParameter< G, A, R, ?> getParameter(final int index)
Iterator< PluginParameter< G, A, R, ?> > iterator()
static final String PARAMETER_TYPE
final PluginParameterListener pluginParameterListener
void addPluginListener(@NotNull final PluginListener listener)
void convertType(@NotNull final PluginParameter< G, A, R, ?> pluginParameter, @NotNull final String newType)
void notifyParametersChangedListeners()
Plugin(@NotNull final String name, @NotNull final PluginParameterFactory< G, A, R > pluginParameterFactory)
void setAutoBoot(final boolean autoBoot)
Plugin< G, A, R > clonePlugin()
void removePluginListener(@NotNull final PluginListener listener)
final PluginParameterCodec< G, A, R > codec
Filter<?, ?> getPluginAsFilter(@NotNull final PluginParameters pluginParameters)
final List< PluginParameter< G, A, R, ?> > parameters
PluginParameter< G, A, R, ?> createParameter(@NotNull final Element parameterNode)
void addParameter(@NotNull final PluginParameter< G, A, R, ?> pluginParameter)
int getParameter(@NotNull final String parameterName)
void setFilter(final boolean filter)
void setScript(final boolean script)
final PluginParameterVisitor< G, A, R, Element > toXML