org.springframework.core.io.support

## Class ResourceArrayPropertyEditor

- java.lang.Object
- - java.beans.PropertyEditorSupport
  - - org.springframework.core.io.support.ResourceArrayPropertyEditor

- All Implemented Interfaces:
    PropertyEditor

      public class ResourceArrayPropertyEditor
      extends PropertyEditorSupport

  Editor for `Resource` arrays, to automatically convert `String` location patterns (e.g. `"file:C:/my*.txt"` or `"classpath*:myfile.txt"`) to `Resource` array properties. Can also translate a collection or array of location patterns into a merged Resource array.

  A path may contain `${...}` placeholders, to be resolved as `Environment` properties: e.g. `${user.dir}`. Unresolvable placeholders are ignored by default.

  Delegates to a `ResourcePatternResolver`, by default using a `PathMatchingResourcePatternResolver`.

  Since:
    1.1.2
  Author:
    Juergen Hoeller, Chris Beams
  See Also:
    `Resource`, `ResourcePatternResolver`, `PathMatchingResourcePatternResolver`

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `ResourceArrayPropertyEditor()` Create a new ResourceArrayPropertyEditor with a default `PathMatchingResourcePatternResolver` and `StandardEnvironment`.
    `ResourceArrayPropertyEditor(ResourcePatternResolver resourcePatternResolver)` Deprecated. as of 3.1 in favor of `ResourceArrayPropertyEditor(ResourcePatternResolver, PropertyResolver)`
    `ResourceArrayPropertyEditor(ResourcePatternResolver resourcePatternResolver, boolean ignoreUnresolvablePlaceholders)` Deprecated. as of 3.1 in favor of `ResourceArrayPropertyEditor(ResourcePatternResolver, PropertyResolver, boolean)`
    `ResourceArrayPropertyEditor(ResourcePatternResolver resourcePatternResolver, PropertyResolver propertyResolver)` Create a new ResourceArrayPropertyEditor with the given `ResourcePatternResolver` and `PropertyResolver` (typically an `Environment`).
    `ResourceArrayPropertyEditor(ResourcePatternResolver resourcePatternResolver, PropertyResolver propertyResolver, boolean ignoreUnresolvablePlaceholders)` Create a new ResourceArrayPropertyEditor with the given `ResourcePatternResolver` and `PropertyResolver` (typically an `Environment`).

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected String` | `resolvePath(String path)` Resolve the given path, replacing placeholders with corresponding system property values if necessary.
    `void` | `setAsText(String text)` Treat the given text as a location pattern and convert it to a Resource array.
    `void` | `setValue(Object value)` Treat the given value as a collection or array and convert it to a Resource array.

    - ### Methods inherited from class java.beans.PropertyEditorSupport

      `addPropertyChangeListener, firePropertyChange, getAsText, getCustomEditor, getJavaInitializationString, getSource, getTags, getValue, isPaintable, paintValue, removePropertyChangeListener, setSource, supportsCustomEditor`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### ResourceArrayPropertyEditor

          public ResourceArrayPropertyEditor()

      Create a new ResourceArrayPropertyEditor with a default `PathMatchingResourcePatternResolver` and `StandardEnvironment`.
      See Also:
        `PathMatchingResourcePatternResolver`, `Environment`

    - #### ResourceArrayPropertyEditor

          @Deprecated
          public ResourceArrayPropertyEditor(ResourcePatternResolver resourcePatternResolver)

      Deprecated. as of 3.1 in favor of `ResourceArrayPropertyEditor(ResourcePatternResolver, PropertyResolver)`
      Create a new ResourceArrayPropertyEditor with the given `ResourcePatternResolver` and a `StandardEnvironment`.
      Parameters:
        `resourcePatternResolver` - the ResourcePatternResolver to use

    - #### ResourceArrayPropertyEditor

          public ResourceArrayPropertyEditor(ResourcePatternResolver resourcePatternResolver,
                                     PropertyResolver propertyResolver)

      Create a new ResourceArrayPropertyEditor with the given `ResourcePatternResolver` and `PropertyResolver` (typically an `Environment`).
      Parameters:
        `resourcePatternResolver` - the ResourcePatternResolver to use
        `propertyResolver` - the PropertyResolver to use

    - #### ResourceArrayPropertyEditor

          @Deprecated
          public ResourceArrayPropertyEditor(ResourcePatternResolver resourcePatternResolver,
                                                boolean ignoreUnresolvablePlaceholders)

      Deprecated. as of 3.1 in favor of `ResourceArrayPropertyEditor(ResourcePatternResolver, PropertyResolver, boolean)`
      Create a new ResourceArrayPropertyEditor with the given `ResourcePatternResolver` and a `StandardEnvironment`.
      Parameters:
        `resourcePatternResolver` - the ResourcePatternResolver to use
        `ignoreUnresolvablePlaceholders` - whether to ignore unresolvable placeholders if no corresponding system property could be found

    - #### ResourceArrayPropertyEditor

          public ResourceArrayPropertyEditor(ResourcePatternResolver resourcePatternResolver,
                                     PropertyResolver propertyResolver,
                                     boolean ignoreUnresolvablePlaceholders)

      Create a new ResourceArrayPropertyEditor with the given `ResourcePatternResolver` and `PropertyResolver` (typically an `Environment`).
      Parameters:
        `resourcePatternResolver` - the ResourcePatternResolver to use
        `propertyResolver` - the PropertyResolver to use
        `ignoreUnresolvablePlaceholders` - whether to ignore unresolvable placeholders if no corresponding system property could be found

  - ### Method Detail

    - #### setAsText

          public void setAsText(String text)

      Treat the given text as a location pattern and convert it to a Resource array.
      Specified by:
        `setAsText` in interface `PropertyEditor`
      Overrides:
        `setAsText` in class `PropertyEditorSupport`

    - #### setValue

          public void setValue(Object value)
                        throws IllegalArgumentException

      Treat the given value as a collection or array and convert it to a Resource array. Considers String elements as location patterns and takes Resource elements as-is.
      Specified by:
        `setValue` in interface `PropertyEditor`
      Overrides:
        `setValue` in class `PropertyEditorSupport`
      Throws:
        `IllegalArgumentException`

    - #### resolvePath

          protected String resolvePath(String path)

      Resolve the given path, replacing placeholders with corresponding system property values if necessary.
      Parameters:
        `path` - the original file path
      Returns:
        the resolved file path
      See Also:
        `PropertyResolver.resolvePlaceholders(java.lang.String)`, `PropertyResolver.resolveRequiredPlaceholders(String)`