org.gradle.api.file
Interface ContentFilterable

All Known Subinterfaces:
CopyProcessingSpec, CopySpec, FileCopyDetails
All Known Implementing Classes:
AbstractArchiveTask, AbstractCopyTask, Copy, Sync, Tar, Zip

public interface ContentFilterable

Represents some binary resource whose content can be filtered.


Method Summary
 ContentFilterable expand(Map<String,?> properties)
          Expands property references in each file as it is copied.
 ContentFilterable filter(Class<? extends FilterReader> filterType)
          Adds a content filter to be used during the copy.
 ContentFilterable filter(Closure closure)
          Adds a content filter based on the provided closure.
 ContentFilterable filter(Map<String,?> properties, Class<? extends FilterReader> filterType)
          Adds a content filter to be used during the copy.
 

Method Detail

filter

ContentFilterable filter(Map<String,?> properties,
                         Class<? extends FilterReader> filterType)

Adds a content filter to be used during the copy. Multiple calls to filter, add additional filters to the filter chain. Each filter should implement java.io.FilterReader. Include org.apache.tools.ant.filters.* for access to all the standard Ant filters.

Filter properties may be specified using groovy map syntax.

Examples:

    filter(HeadFilter, lines:25, skip:2)
    filter(ReplaceTokens, tokens:[copyright:'2009', version:'2.3.1'])
 

Parameters:
properties - map of filter properties
filterType - Class of filter to add
Returns:
this

filter

ContentFilterable filter(Class<? extends FilterReader> filterType)

Adds a content filter to be used during the copy. Multiple calls to filter, add additional filters to the filter chain. Each filter should implement java.io.FilterReader. Include org.apache.tools.ant.filters.* for access to all the standard Ant filters.

Examples:

    filter(StripJavaComments)
    filter(com.mycompany.project.CustomFilter)
 

Parameters:
filterType - Class of filter to add
Returns:
this

filter

ContentFilterable filter(Closure closure)
Adds a content filter based on the provided closure. The Closure will be called with each line (stripped of line endings) and should return a String to replace the line.

Parameters:
closure - to implement line based filtering
Returns:
this

expand

ContentFilterable expand(Map<String,?> properties)

Expands property references in each file as it is copied. More specifically, each file is transformed using Groovy's SimpleTemplateEngine. This means you can use simple property references, such as $property or ${property} in the file. You can also include arbitrary Groovy code in the file, such as ${version ?: 'unknown'} or ${classpath*.name.join(' ')}

Parameters:
properties - to implement line based filtering
Returns:
this