org.crsh.plugin
Class PluginContext

java.lang.Object
  extended by org.crsh.plugin.PluginContext

public final class PluginContext
extends Object

The plugin context.

Version:
$Revision$
Author:
Julien Viet

Field Summary
private  Map<String,?> attributes
          .
private  FS cmdFS
          .
private  FS confFS
          .
private  List<File> dirs
          .
private  ScheduledExecutorService executor
          .
private  ClassLoader loader
          .
private static org.slf4j.Logger log
          .
(package private)  PluginManager manager
          .
private static Pattern p
          .
private  Map<PropertyDescriptor<?>,Property<?>> properties
          .
private  boolean started
          .
private  String version
          .
 
Constructor Summary
PluginContext(PluginDiscovery discovery, Map<String,?> attributes, FS cmdFS, FS confFS, ClassLoader loader)
          Create a new plugin context.
 
Method Summary
 Map<String,?> getAttributes()
           
 ClassLoader getLoader()
          Returns the classloader associated with this context.
 Iterable<CRaSHPlugin<?>> getPlugins()
           
<T> Iterable<T>
getPlugins(Class<T> pluginType)
          Returns the plugins associated with this context.
<T> T
getProperty(PropertyDescriptor<T> desc)
          Returns a context property or null if it cannot be found.
<T> T
getProperty(String propertyName, Class<T> type)
          Returns a context property or null if it cannot be found.
 String getVersion()
           
 List<String> listResourceId(ResourceKind kind)
          List the resources id for a specific resource kind.
 Resource loadResource(String resourceId, ResourceKind resourceKind)
          Load a resource from the context.
 void refresh()
          Refresh the fs system view.
<T> void
setProperty(PropertyDescriptor<T> desc, String value)
          Set a context property to a new value.
<T> void
setProperty(PropertyDescriptor<T> desc, T value)
          Set a context property to a new value.
(package private)  void start()
           
(package private)  void stop()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

p

private static final Pattern p
.


log

private static final org.slf4j.Logger log
.


manager

final PluginManager manager
.


loader

private final ClassLoader loader
.


version

private final String version
.


executor

private ScheduledExecutorService executor
.


dirs

private volatile List<File> dirs
.


properties

private final Map<PropertyDescriptor<?>,Property<?>> properties
.


cmdFS

private final FS cmdFS
.


attributes

private final Map<String,?> attributes
.


confFS

private final FS confFS
.


started

private boolean started
.

Constructor Detail

PluginContext

public PluginContext(PluginDiscovery discovery,
                     Map<String,?> attributes,
                     FS cmdFS,
                     FS confFS,
                     ClassLoader loader)
              throws NullPointerException
Create a new plugin context.

Parameters:
discovery - the plugin discovery
cmdFS - the command file system
attributes - the attributes
confFS - the conf file system
loader - the loader
Throws:
NullPointerException - if any parameter argument is null
Method Detail

getPlugins

public Iterable<CRaSHPlugin<?>> getPlugins()

getVersion

public String getVersion()

getAttributes

public Map<String,?> getAttributes()

getProperty

public <T> T getProperty(PropertyDescriptor<T> desc)
              throws NullPointerException
Returns a context property or null if it cannot be found.

Type Parameters:
T - the property parameter type
Parameters:
desc - the property descriptor
Returns:
the property value
Throws:
NullPointerException - if the descriptor argument is null

getProperty

public <T> T getProperty(String propertyName,
                         Class<T> type)
              throws NullPointerException
Returns a context property or null if it cannot be found.

Type Parameters:
T - the property parameter type
Parameters:
propertyName - the name of the property
type - the property type
Returns:
the property value
Throws:
NullPointerException - if the descriptor argument is null

setProperty

public <T> void setProperty(PropertyDescriptor<T> desc,
                            T value)
                 throws NullPointerException
Set a context property to a new value. If the provided value is null, then the property is removed.

Type Parameters:
T - the property parameter type
Parameters:
desc - the property descriptor
value - the property value
Throws:
NullPointerException - if the descriptor argument is null

setProperty

public <T> void setProperty(PropertyDescriptor<T> desc,
                            String value)
                 throws NullPointerException,
                        IllegalArgumentException
Set a context property to a new value. If the provided value is null, then the property is removed.

Type Parameters:
T - the property parameter type
Parameters:
desc - the property descriptor
value - the property value
Throws:
NullPointerException - if the descriptor argument is null
IllegalArgumentException - if the string value cannot be converted to the property type

loadResource

public Resource loadResource(String resourceId,
                             ResourceKind resourceKind)
Load a resource from the context.

Parameters:
resourceId - the resource id
resourceKind - the resource kind
Returns:
the resource or null if it cannot be found

listResourceId

public List<String> listResourceId(ResourceKind kind)
List the resources id for a specific resource kind.

Parameters:
kind - the resource kind
Returns:
the resource ids

getLoader

public ClassLoader getLoader()
Returns the classloader associated with this context.

Returns:
the class loader

getPlugins

public <T> Iterable<T> getPlugins(Class<T> pluginType)
Returns the plugins associated with this context.

Type Parameters:
T - the plugin generic type
Parameters:
pluginType - the plugin type
Returns:
the plugins

refresh

public void refresh()
Refresh the fs system view. This is normally triggered by the periodic job but it can be manually invoked to trigger explicit refreshes.


start

void start()

stop

void stop()


Copyright © 2012 eXo Platform SAS. All Rights Reserved.