# Interface ObjectConfigurationAction

public interface ObjectConfigurationAction

An `ObjectConfigurationAction` allows you to apply `Plugin`s and scripts to an object or objects.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `ObjectConfigurationAction`
  `from(Object script)`
  Adds a script to use to configure the target objects.
  `ObjectConfigurationAction`
  `plugin(Class<? extends Plugin> pluginClass)`
  Adds a `Plugin` to use to configure the target objects.
  `ObjectConfigurationAction`
  `plugin(String pluginId)`
  Adds a `Plugin` to use to configure the target objects.
  `ObjectConfigurationAction`
  `to(Object... targets)`
  Specifies some target objects to be configured.
  `ObjectConfigurationAction`
  `type(Class<?> pluginClass)`
  Adds the plugin implemented by the given class to the target.

- ## Method Details

  - ### to

    ObjectConfigurationAction to(Object... targets)

    Specifies some target objects to be configured. Any collections or arrays in the given parameters will be flattened, and the script applied to each object in the result, in the order given. Each call to this method adds some additional target objects.

    Parameters:
      `targets` - The target objects.
    Returns:
      this

  - ### from

    ObjectConfigurationAction from(Object script)
    Adds a script to use to configure the target objects. You can call this method multiple times, to use multiple scripts. Scripts and plugins are applied in the order that they are added.
    Parameters:
      `script` - The script. Evaluated as per `Project.file(Object)`. However, note that a URL can also be used, allowing the script to be fetched using HTTP, for example.
    Returns:
      this

  - ### plugin

    ObjectConfigurationAction plugin(Class<? extends Plugin> pluginClass)
    Adds a `Plugin` to use to configure the target objects. You can call this method multiple times, to use multiple plugins. Scripts and plugins are applied in the order that they are added.
    Parameters:
      `pluginClass` - The plugin to apply.
    Returns:
      this

  - ### type

    ObjectConfigurationAction type(Class<?> pluginClass)
    Adds the plugin implemented by the given class to the target.

    The class is expected to either implement `Plugin`, or extend `RuleSource`. An exception will be thrown if the class is not a valid plugin implementation.

    Parameters:
      `pluginClass` - the plugin to apply
    Returns:
      this

  - ### plugin

    ObjectConfigurationAction plugin(String pluginId)
    Adds a `Plugin` to use to configure the target objects. You can call this method multiple times, to use multiple plugins. Scripts and plugins are applied in the order that they are added.
    Parameters:
      `pluginId` - The id of the plugin to apply.
    Returns:
      this