Package: grails.util

## [Java] Class AbstractBuildSettings

- grails.util.AbstractBuildSettings

- Methods optimized to Java for the BuildSettings class.

  Since:
    1.3.4

- - ### Field Summary

    Fields
    Modifiers | Name | Description
    --- | --- | ---
    `protected java.util.Map<java.lang.String, java.lang.Object>` | `cache` | Used to cache results of certain expensive operations
    `protected groovy.util.ConfigObject` | `config` | The settings stored in the project's BuildConfig.groovy file if there is one.
    `protected java.util.Map` | `flatConfig` | Flattened version of the ConfigObject for easy access from Java
    `protected java.io.File` | `globalPluginsDir` | The location where global plugins are installed to.
    `protected boolean` | `globalPluginsDirSet` |
    `protected java.io.File` | `projectPluginsDir` | The location where project-specific plugins are installed to.
    `protected boolean` | `projectPluginsDirSet` |

  - ### Methods Summary

    Methods
    Type | Name and description
    --- | ---
    `void` | `addPluginDirectory(java.io.File location, boolean isInline)` Adds a plugin directory
    `groovy.util.ConfigObject` | `getConfig()`
    `java.io.File` | `getGlobalPluginsDir()`
    `java.util.Collection<java.io.File>` | `getImplicitPluginDirectories()` Returns a list of all plugin directories in both the given path and the global "plugins" directory together.
    `java.util.Collection<java.io.File>` | `getInlinePluginDirectories()` Returns an array of the inplace plugin locations.
    `protected java.util.Collection<java.io.File>` | `getInlinePluginsFromConfiguration(java.util.Map config)` Extracts the inline plugin dirs relative to the base dir of this project.
    `protected java.util.Collection<java.io.File>` | `getInlinePluginsFromConfiguration(java.util.Map config, java.io.File baseDir)` Extracts the inline plugin dirs from the given config, relative to the given baseDir.
    `java.util.Collection<java.lang.String>` | `getPluginBaseDirectories()` Gets a list of all the known plugin base directories (directories where plugins are installed to).
    `java.util.Collection<java.io.File>` | `getPluginDirectories()` Obtains a list of plugin directories for the application
    `java.io.File` | `getProjectPluginsDir()`
    `boolean` | `isInlinePluginLocation(java.io.File pluginLocation)` Returns true if the specified plugin location is an inline location.
    `void` | `setConfig(groovy.util.ConfigObject config)`
    `void` | `setGlobalPluginsDir(java.io.File globalPluginsDir)`
    `void` | `setProjectPluginsDir(java.io.File projectPluginsDir)`

  - ### Inherited Methods Summary

    Inherited Methods
    Methods inherited from class | Name
    --- | ---
    `class java.lang.Object` | `java.lang.Object#wait(long, int), java.lang.Object#wait(long), java.lang.Object#wait(), java.lang.Object#equals(java.lang.Object), java.lang.Object#toString(), java.lang.Object#hashCode(), java.lang.Object#getClass(), java.lang.Object#notify(), java.lang.Object#notifyAll()`

- - ### Field Detail

    - #### protected java.util.Map<java.lang.String, java.lang.Object> cache

      Used to cache results of certain expensive operations

    - #### protected groovy.util.ConfigObject config

      The settings stored in the project's BuildConfig.groovy file if there is one.

    - #### @java.lang.SuppressWarnings("rawtypes") protected java.util.Map flatConfig

      Flattened version of the ConfigObject for easy access from Java

    - #### protected java.io.File globalPluginsDir

      The location where global plugins are installed to.

    - #### protected boolean globalPluginsDirSet

    - #### protected java.io.File projectPluginsDir

      The location where project-specific plugins are installed to.

    - #### protected boolean projectPluginsDirSet

  - ### Method Detail

    - #### public void addPluginDirectory(java.io.File location, boolean isInline)

      Adds a plugin directory

      Parameters:
        `location` - The plugin's locatino

    - #### public groovy.util.ConfigObject getConfig()

    - #### public java.io.File getGlobalPluginsDir()

    - #### public java.util.Collection<java.io.File> getImplicitPluginDirectories()

      Returns a list of all plugin directories in both the given path and the global "plugins" directory together.

      Returns:
        A list of plugin directories as File objects

    - #### @java.lang.SuppressWarnings("unchecked") public java.util.Collection<java.io.File> getInlinePluginDirectories()

      Returns an array of the inplace plugin locations.

    - #### @java.lang.SuppressWarnings({ "rawtypes" }) protected java.util.Collection<java.io.File> getInlinePluginsFromConfiguration(java.util.Map config)

      Extracts the inline plugin dirs relative to the base dir of this project.

      See Also:
        getInlinePluginsFromConfiguration(Map, File)

    - #### @java.lang.SuppressWarnings("rawtypes") protected java.util.Collection<java.io.File> getInlinePluginsFromConfiguration(java.util.Map config, java.io.File baseDir)

      Extracts the inline plugin dirs from the given config, relative to the given baseDir. TODO: consider trowing an error here if an plugin does not exists at the location.

    - #### @java.lang.SuppressWarnings("unchecked") public java.util.Collection<java.lang.String> getPluginBaseDirectories()

      Gets a list of all the known plugin base directories (directories where plugins are installed to).

      Returns:
        Returns the base location where plugins are kept

    - #### @java.lang.SuppressWarnings("unchecked") public java.util.Collection<java.io.File> getPluginDirectories()

      Obtains a list of plugin directories for the application

    - #### public java.io.File getProjectPluginsDir()

    - #### @java.lang.SuppressWarnings("unchecked") public boolean isInlinePluginLocation(java.io.File pluginLocation)

      Returns true if the specified plugin location is an inline location.

    - #### public void setConfig(groovy.util.ConfigObject config)

    - #### public void setGlobalPluginsDir(java.io.File globalPluginsDir)

    - #### public void setProjectPluginsDir(java.io.File projectPluginsDir)