Search in sources :

Example 1 with Mapper

use of org.apache.tools.ant.types.Mapper in project ant by apache.

the class Copy method buildMap.

/**
 * Create a map of resources to copy.
 *
 * @param fromResources  The source resources.
 * @param toDir   the destination directory.
 * @param mapper  a <code>FileNameMapper</code> value.
 * @return a map of source resource to array of destination files.
 * @since Ant 1.7
 */
protected Map<Resource, String[]> buildMap(final Resource[] fromResources, final File toDir, final FileNameMapper mapper) {
    final Map<Resource, String[]> map = new HashMap<>();
    Resource[] toCopy;
    if (forceOverwrite) {
        final List<Resource> v = new ArrayList<>();
        for (Resource rc : fromResources) {
            if (mapper.mapFileName(rc.getName()) != null) {
                v.add(rc);
            }
        }
        toCopy = v.toArray(new Resource[v.size()]);
    } else {
        toCopy = ResourceUtils.selectOutOfDateSources(this, fromResources, mapper, name -> new FileResource(toDir, name), granularity);
    }
    for (Resource rc : toCopy) {
        final String[] mappedFiles = mapper.mapFileName(rc.getName());
        if (mappedFiles == null || mappedFiles.length == 0) {
            throw new BuildException("Can't copy a resource without a" + " name if the mapper doesn't" + " provide one.");
        }
        if (!enableMultipleMappings) {
            map.put(rc, new String[] { new File(toDir, mappedFiles[0]).getAbsolutePath() });
        } else {
            // reuse the array created by the mapper
            for (int k = 0; k < mappedFiles.length; k++) {
                mappedFiles[k] = new File(toDir, mappedFiles[k]).getAbsolutePath();
            }
            map.put(rc, mappedFiles);
        }
    }
    return map;
}
Also used : Mapper(org.apache.tools.ant.types.Mapper) Task(org.apache.tools.ant.Task) FilterChain(org.apache.tools.ant.types.FilterChain) FilterSetCollection(org.apache.tools.ant.types.FilterSetCollection) HashMap(java.util.HashMap) ResourceCollection(org.apache.tools.ant.types.ResourceCollection) FileNameMapper(org.apache.tools.ant.util.FileNameMapper) FileResource(org.apache.tools.ant.types.resources.FileResource) ArrayList(java.util.ArrayList) HashSet(java.util.HashSet) FilterSet(org.apache.tools.ant.types.FilterSet) SourceFileScanner(org.apache.tools.ant.util.SourceFileScanner) Vector(java.util.Vector) FileSet(org.apache.tools.ant.types.FileSet) Map(java.util.Map) Project(org.apache.tools.ant.Project) Hashtable(java.util.Hashtable) FileUtils(org.apache.tools.ant.util.FileUtils) Resource(org.apache.tools.ant.types.Resource) LinkedHashtable(org.apache.tools.ant.util.LinkedHashtable) Set(java.util.Set) IOException(java.io.IOException) BuildException(org.apache.tools.ant.BuildException) DirectoryScanner(org.apache.tools.ant.DirectoryScanner) FlatFileNameMapper(org.apache.tools.ant.util.FlatFileNameMapper) IdentityMapper(org.apache.tools.ant.util.IdentityMapper) File(java.io.File) List(java.util.List) FileProvider(org.apache.tools.ant.types.resources.FileProvider) ResourceUtils(org.apache.tools.ant.util.ResourceUtils) HashMap(java.util.HashMap) FileResource(org.apache.tools.ant.types.resources.FileResource) Resource(org.apache.tools.ant.types.Resource) ArrayList(java.util.ArrayList) FileResource(org.apache.tools.ant.types.resources.FileResource) BuildException(org.apache.tools.ant.BuildException) File(java.io.File)

Example 2 with Mapper

use of org.apache.tools.ant.types.Mapper in project ant by apache.

the class XSLTProcess method add.

/**
 * Adds a nested filenamemapper.
 * @param fileNameMapper the mapper to add
 * @exception BuildException if more than one mapper is defined
 * @since Ant 1.7.0
 */
public void add(final FileNameMapper fileNameMapper) throws BuildException {
    final Mapper mapper = new Mapper(getProject());
    mapper.add(fileNameMapper);
    addMapper(mapper);
}
Also used : Mapper(org.apache.tools.ant.types.Mapper) FileNameMapper(org.apache.tools.ant.util.FileNameMapper)

Example 3 with Mapper

use of org.apache.tools.ant.types.Mapper in project ant by apache.

the class MappedResourceCollection method createMapper.

/**
 * Define the mapper to map source to destination files.
 * @return a mapper to be configured.
 * @exception BuildException if more than one mapper is defined.
 */
public Mapper createMapper() throws BuildException {
    if (isReference()) {
        throw noChildrenAllowed();
    }
    if (mapper != null) {
        throw new BuildException("Cannot define more than one mapper", getLocation());
    }
    setChecked(false);
    mapper = new Mapper(getProject());
    cachedColl = null;
    return mapper;
}
Also used : Mapper(org.apache.tools.ant.types.Mapper) FileNameMapper(org.apache.tools.ant.util.FileNameMapper) IdentityMapper(org.apache.tools.ant.util.IdentityMapper) MergingMapper(org.apache.tools.ant.util.MergingMapper) BuildException(org.apache.tools.ant.BuildException)

Example 4 with Mapper

use of org.apache.tools.ant.types.Mapper in project ant by apache.

the class PresentSelectorTest method testSelectionBehaviour.

/**
 * Tests to make sure that the selector is selecting files correctly.
 */
@Test
public void testSelectionBehaviour() {
    PresentSelector s;
    String results;
    Mapper m;
    Mapper.MapperType identity = new Mapper.MapperType();
    identity.setValue("identity");
    Mapper.MapperType glob = new Mapper.MapperType();
    glob.setValue("glob");
    Mapper.MapperType merge = new Mapper.MapperType();
    merge.setValue("merge");
    Mapper.MapperType flatten = new Mapper.MapperType();
    flatten.setValue("flatten");
    File beddir = selectorRule.getBeddir();
    s = new PresentSelector();
    s.setTargetdir(beddir);
    results = selectorRule.selectionString(s);
    assertEquals("TTTTTTTTTTTT", results);
    s = new PresentSelector();
    s.setTargetdir(beddir);
    m = s.createMapper();
    m.setType(identity);
    results = selectorRule.selectionString(s);
    assertEquals("TTTTTTTTTTTT", results);
    s = new PresentSelector();
    File subdir = new File(System.getProperty("root"), "src/etc/testcases/taskdefs/expected");
    s.setTargetdir(subdir);
    m = s.createMapper();
    m.setType(flatten);
    results = selectorRule.selectionString(s);
    assertEquals("TTTTTTTTTTTF", results);
    s = new PresentSelector();
    s.setTargetdir(beddir);
    m = s.createMapper();
    m.setType(merge);
    m.setTo("asf-logo.gif.gz");
    results = selectorRule.selectionString(s);
    assertEquals("TTTTTTTTTTTT", results);
    s = new PresentSelector();
    subdir = new File(beddir, "tar/bz2");
    s.setTargetdir(subdir);
    m = s.createMapper();
    m.setType(glob);
    m.setFrom("*.bz2");
    m.setTo("*.tar.bz2");
    results = selectorRule.selectionString(s);
    assertEquals("FFTFFFFFFFFF", results);
    s = new PresentSelector();
    subdir = new File(selectorRule.getOutputDir(), "selectortest2");
    s.setTargetdir(subdir);
    results = selectorRule.selectionString(s);
    assertEquals("TTTFFTTTTTTT", results);
    results = selectorRule.selectionString(s);
    assertEquals("TTTFFTTTTTTT", results);
}
Also used : Mapper(org.apache.tools.ant.types.Mapper) File(java.io.File) Test(org.junit.Test)

Example 5 with Mapper

use of org.apache.tools.ant.types.Mapper in project ant by apache.

the class DependSelectorTest method testMergeMapper2.

@Test
public void testMergeMapper2() {
    DependSelector s = new DependSelector();
    s.setTargetdir(selectorRule.getBeddir());
    Mapper.MapperType merge = new Mapper.MapperType();
    merge.setValue("merge");
    Mapper m = s.createMapper();
    m.setType(merge);
    m.setTo("asf-logo.gif.bz2");
    String results = selectorRule.selectionString(s);
    assertEquals("TTFTTTTTTTTT", results);
}
Also used : Mapper(org.apache.tools.ant.types.Mapper) Test(org.junit.Test)

Aggregations

Mapper (org.apache.tools.ant.types.Mapper)14 Test (org.junit.Test)7 File (java.io.File)6 FileNameMapper (org.apache.tools.ant.util.FileNameMapper)6 BuildException (org.apache.tools.ant.BuildException)4 IdentityMapper (org.apache.tools.ant.util.IdentityMapper)4 Project (org.apache.tools.ant.Project)2 Resource (org.apache.tools.ant.types.Resource)2 ResourceCollection (org.apache.tools.ant.types.ResourceCollection)2 MergingMapper (org.apache.tools.ant.util.MergingMapper)2 IOException (java.io.IOException)1 ArrayList (java.util.ArrayList)1 Collection (java.util.Collection)1 HashMap (java.util.HashMap)1 HashSet (java.util.HashSet)1 Hashtable (java.util.Hashtable)1 Iterator (java.util.Iterator)1 List (java.util.List)1 Map (java.util.Map)1 Objects (java.util.Objects)1