Package org.apache.sling.scripting.sightly.impl.plugin

## Interface Plugin

All Superinterfaces:
  `Comparable<Plugin>`

All Known Implementing Classes:
  `AbstractPlugin`, `AbstractRepeatPlugin`, `AttributePlugin`, `CallPlugin`, `ElementPlugin`, `IncludePlugin`, `ListPlugin`, `RepeatPlugin`, `ResourcePlugin`, `SetPlugin`, `TemplatePlugin`, `TestPlugin`, `TextPlugin`, `UnwrapPlugin`, `UsePlugin`

    public interface Plugin
    extends Comparable<Plugin>

Common interface for plugins

### Method Summary

All Methods Instance Methods Abstract Methods
`PluginInvoke` `invoke​(Expression expression, PluginCallInfo callInfo, CompilerContext compilerContext)` Given the plugin invocation provide an invoke object which will influence the rendering command stream
`String` `name()` The name of the plugin
`int` `priority()` The priority of the plugin

### Methods inherited from interface java.lang.Comparable

`compareTo`

### Method Detail

#### invoke

    PluginInvoke invoke​(Expression expression,
                        PluginCallInfo callInfo,
                        CompilerContext compilerContext)

Given the plugin invocation provide an invoke object which will influence the rendering command stream

Parameters:
  `expression` - the expression used at plugin invocation
  `callInfo` - the parameters given to the plugin
  `compilerContext` - a compiler context providing utility methods to plugins
Returns:
  an invocation
See Also:
  `PluginInvoke`

#### priority

    int priority()

The priority of the plugin

Returns:
  a numeric value which controls when, relative to other plugins, should this plugin be applied

#### name

    String name()

The name of the plugin

Returns:
  the plugin name