than doing so in the default <v-fileset> or <v-path> implementations. * Add test <v-list-files> task. git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@271541 13f79535-47bb-0310-9956-ffa450edef68master
| @@ -0,0 +1,39 @@ | |||||
| /* | |||||
| * Copyright (C) The Apache Software Foundation. All rights reserved. | |||||
| * | |||||
| * This software is published under the terms of the Apache Software License | |||||
| * version 1.1, a copy of which has been included with this distribution in | |||||
| * the LICENSE.txt file. | |||||
| */ | |||||
| package org.apache.antlib.vfile; | |||||
| import org.apache.aut.vfs.FileObject; | |||||
| import org.apache.myrmidon.api.TaskContext; | |||||
| import org.apache.myrmidon.api.TaskException; | |||||
| /** | |||||
| * An adaptor from a {@link FileSet} to a {@link FileList}. | |||||
| * | |||||
| * @author <a href="mailto:adammurdoch@apache.org">Adam Murdoch</a> | |||||
| * @version $Revision$ $Date$ | |||||
| */ | |||||
| public class FileSetAdaptor | |||||
| implements FileList | |||||
| { | |||||
| private final FileSet m_fileset; | |||||
| public FileSetAdaptor( final FileSet fileset ) | |||||
| { | |||||
| m_fileset = fileset; | |||||
| } | |||||
| /** | |||||
| * Returns the files in the list. | |||||
| */ | |||||
| public FileObject[] listFiles( TaskContext context ) | |||||
| throws TaskException | |||||
| { | |||||
| final FileSetResult result = m_fileset.getResult( context ); | |||||
| return result.getFiles(); | |||||
| } | |||||
| } | |||||
| @@ -0,0 +1,42 @@ | |||||
| /* | |||||
| * Copyright (C) The Apache Software Foundation. All rights reserved. | |||||
| * | |||||
| * This software is published under the terms of the Apache Software License | |||||
| * version 1.1, a copy of which has been included with this distribution in | |||||
| * the LICENSE.txt file. | |||||
| */ | |||||
| package org.apache.antlib.vfile; | |||||
| import org.apache.aut.converter.AbstractConverter; | |||||
| import org.apache.aut.converter.ConverterException; | |||||
| import org.apache.myrmidon.api.TaskContext; | |||||
| /** | |||||
| * A converter from {@link FileSet} to {@link FileList}. | |||||
| * | |||||
| * @author <a href="mailto:adammurdoch@apache.org">Adam Murdoch</a> | |||||
| * @version $Revision$ $Date$ | |||||
| * | |||||
| * @ant:converter source="org.apache.antlib.vfile.FileSet" | |||||
| * destination="org.apache.antlib.vfile.FileList" | |||||
| */ | |||||
| public class FileSetToFileListConverter | |||||
| extends AbstractConverter | |||||
| { | |||||
| public FileSetToFileListConverter() | |||||
| { | |||||
| super( FileSet.class, FileList.class ); | |||||
| } | |||||
| /** | |||||
| * Do the conversion. | |||||
| */ | |||||
| protected Object convert( final Object original, final Object context ) | |||||
| throws ConverterException | |||||
| { | |||||
| final TaskContext taskContext = (TaskContext)context; | |||||
| final FileSet src = (FileSet)original; | |||||
| return new FileSetAdaptor( src ); | |||||
| } | |||||
| } | |||||
| @@ -0,0 +1,47 @@ | |||||
| /* | |||||
| * Copyright (C) The Apache Software Foundation. All rights reserved. | |||||
| * | |||||
| * This software is published under the terms of the Apache Software License | |||||
| * version 1.1, a copy of which has been included with this distribution in | |||||
| * the LICENSE.txt file. | |||||
| */ | |||||
| package org.apache.antlib.vfile; | |||||
| import org.apache.aut.vfs.FileObject; | |||||
| import org.apache.myrmidon.api.AbstractTask; | |||||
| import org.apache.myrmidon.api.TaskException; | |||||
| /** | |||||
| * A debug task, which prints out the files in a file list. | |||||
| * | |||||
| * @author <a href="mailto:adammurdoch@apache.org">Adam Murdoch</a> | |||||
| * @version $Revision$ $Date$ | |||||
| * | |||||
| * @ant:task name="v-list-files" | |||||
| */ | |||||
| public class ListFilesTask | |||||
| extends AbstractTask | |||||
| { | |||||
| private final DefaultFileList m_files = new DefaultFileList(); | |||||
| public void add( final FileList files ) | |||||
| { | |||||
| m_files.add( files ); | |||||
| } | |||||
| /** | |||||
| * Execute task. | |||||
| * | |||||
| * @exception TaskException if an error occurs | |||||
| */ | |||||
| public void execute() | |||||
| throws TaskException | |||||
| { | |||||
| final FileObject[] files = m_files.listFiles( getContext() ); | |||||
| for( int i = 0; i < files.length; i++ ) | |||||
| { | |||||
| FileObject file = files[i ]; | |||||
| getLogger().info( file.toString() ); | |||||
| } | |||||
| } | |||||
| } | |||||
| @@ -26,7 +26,7 @@ import org.apache.myrmidon.framework.AbstractFileSet; | |||||
| */ | */ | ||||
| public class PatternFileSet | public class PatternFileSet | ||||
| extends AbstractFileSet | extends AbstractFileSet | ||||
| implements FileList, FileSet | |||||
| implements FileSet | |||||
| { | { | ||||
| private final static Resources REZ = | private final static Resources REZ = | ||||
| ResourceManager.getPackageResources( PatternFileSet.class ); | ResourceManager.getPackageResources( PatternFileSet.class ); | ||||
| @@ -41,27 +41,11 @@ public class PatternFileSet | |||||
| m_dir = dir; | m_dir = dir; | ||||
| } | } | ||||
| /** | |||||
| * Returns the root directory | |||||
| */ | |||||
| public FileObject getDir() | |||||
| { | |||||
| return m_dir; | |||||
| } | |||||
| /** | |||||
| * Returns the list of files, in depthwise order. | |||||
| */ | |||||
| public FileObject[] listFiles( TaskContext context ) throws TaskException | |||||
| { | |||||
| final FileSetResult result = getResult( context ); | |||||
| return result.getFiles(); | |||||
| } | |||||
| /** | /** | ||||
| * Returns the contents of the set. | * Returns the contents of the set. | ||||
| */ | */ | ||||
| public FileSetResult getResult( TaskContext context ) throws TaskException | |||||
| public FileSetResult getResult( final TaskContext context ) | |||||
| throws TaskException | |||||
| { | { | ||||
| if( m_dir == null ) | if( m_dir == null ) | ||||
| { | { | ||||
| @@ -7,14 +7,13 @@ | |||||
| */ | */ | ||||
| package org.apache.antlib.vfile; | package org.apache.antlib.vfile; | ||||
| import org.apache.aut.converter.AbstractConverter; | |||||
| import org.apache.aut.converter.ConverterException; | |||||
| import org.apache.aut.vfs.FileObject; | import org.apache.aut.vfs.FileObject; | ||||
| import org.apache.aut.vfs.FileSystemManager; | import org.apache.aut.vfs.FileSystemManager; | ||||
| import org.apache.avalon.excalibur.i18n.ResourceManager; | import org.apache.avalon.excalibur.i18n.ResourceManager; | ||||
| import org.apache.avalon.excalibur.i18n.Resources; | import org.apache.avalon.excalibur.i18n.Resources; | ||||
| import org.apache.avalon.framework.context.Context; | |||||
| import org.apache.myrmidon.api.TaskContext; | import org.apache.myrmidon.api.TaskContext; | ||||
| import org.apache.aut.converter.AbstractConverter; | |||||
| import org.apache.aut.converter.ConverterException; | |||||
| /** | /** | ||||
| * Converts a String to a {@link FileObject} | * Converts a String to a {@link FileObject} | ||||