git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@271267 13f79535-47bb-0310-9956-ffa450edef68master
| @@ -5,7 +5,7 @@ | |||||
| * version 1.1, a copy of which has been included with this distribution in | * version 1.1, a copy of which has been included with this distribution in | ||||
| * the LICENSE.txt file. | * the LICENSE.txt file. | ||||
| */ | */ | ||||
| package org.apache.tools.ant.types;// java io classes | |||||
| package org.apache.tools.ant.types; | |||||
| import java.io.File; | import java.io.File; | ||||
| import java.io.FileInputStream; | import java.io.FileInputStream; | ||||
| @@ -81,7 +81,7 @@ public class FilterSet | |||||
| * | * | ||||
| * @param filter The feature to be added to the Filter attribute | * @param filter The feature to be added to the Filter attribute | ||||
| */ | */ | ||||
| public void addFilter( Filter filter ) | |||||
| public void addFilter( final Filter filter ) | |||||
| { | { | ||||
| m_filters.add( filter ); | m_filters.add( filter ); | ||||
| } | } | ||||
| @@ -121,17 +121,6 @@ public class FilterSet | |||||
| return new FiltersFile(); | return new FiltersFile(); | ||||
| }*/ | }*/ | ||||
| /** | |||||
| * Test to see if this filter set it empty. | |||||
| * | |||||
| * @return Return true if there are filter in this set otherwise false. | |||||
| */ | |||||
| public boolean hasFilters() | |||||
| throws TaskException | |||||
| { | |||||
| return m_filters.size() > 0; | |||||
| } | |||||
| /** | /** | ||||
| * Read the filters from the given file. | * Read the filters from the given file. | ||||
| * | * | ||||
| @@ -7,14 +7,10 @@ | |||||
| */ | */ | ||||
| package org.apache.tools.ant.types;// java io classes | package org.apache.tools.ant.types;// java io classes | ||||
| // java util classes | |||||
| import java.util.ArrayList; | import java.util.ArrayList; | ||||
| import java.util.Iterator; | import java.util.Iterator; | ||||
| import org.apache.myrmidon.api.TaskException; | import org.apache.myrmidon.api.TaskException; | ||||
| // ant classes | |||||
| /** | /** | ||||
| * A FilterSetCollection is a collection of filtersets each of which may have a | * A FilterSetCollection is a collection of filtersets each of which may have a | ||||
| * different start/end token settings. | * different start/end token settings. | ||||
| @@ -23,40 +19,11 @@ import org.apache.myrmidon.api.TaskException; | |||||
| */ | */ | ||||
| public class FilterSetCollection | public class FilterSetCollection | ||||
| { | { | ||||
| private ArrayList m_filterSets = new ArrayList(); | |||||
| private ArrayList filterSets = new ArrayList(); | |||||
| public FilterSetCollection() | |||||
| { | |||||
| } | |||||
| public FilterSetCollection( FilterSet filterSet ) | |||||
| public void addFilterSet( final FilterSet filterSet ) | |||||
| { | { | ||||
| addFilterSet( filterSet ); | |||||
| } | |||||
| public void addFilterSet( FilterSet filterSet ) | |||||
| { | |||||
| filterSets.add( filterSet ); | |||||
| } | |||||
| /** | |||||
| * Test to see if this filter set it empty. | |||||
| * | |||||
| * @return Return true if there are filter in this set otherwise false. | |||||
| */ | |||||
| public boolean hasFilters() | |||||
| throws TaskException | |||||
| { | |||||
| for( Iterator e = filterSets.iterator(); e.hasNext(); ) | |||||
| { | |||||
| FilterSet filterSet = (FilterSet)e.next(); | |||||
| if( filterSet.hasFilters() ) | |||||
| { | |||||
| return true; | |||||
| } | |||||
| } | |||||
| return false; | |||||
| m_filterSets.add( filterSet ); | |||||
| } | } | ||||
| /** | /** | ||||
| @@ -70,9 +37,11 @@ public class FilterSetCollection | |||||
| throws TaskException | throws TaskException | ||||
| { | { | ||||
| String replacedLine = line; | String replacedLine = line; | ||||
| for( Iterator e = filterSets.iterator(); e.hasNext(); ) | |||||
| final Iterator filterSets = m_filterSets.iterator(); | |||||
| while( filterSets.hasNext() ) | |||||
| { | { | ||||
| FilterSet filterSet = (FilterSet)e.next(); | |||||
| final FilterSet filterSet = (FilterSet)filterSets.next(); | |||||
| replacedLine = filterSet.replaceTokens( replacedLine ); | replacedLine = filterSet.replaceTokens( replacedLine ); | ||||
| } | } | ||||
| return replacedLine; | return replacedLine; | ||||
| @@ -52,70 +52,6 @@ public class FileUtils | |||||
| return (String[])result.toArray( new String[ result.size() ] ); | return (String[])result.toArray( new String[ result.size() ] ); | ||||
| } | } | ||||
| /** | |||||
| * Convienence method to copy a file from a source to a destination | |||||
| * specifying if token filtering must be used, if source files may overwrite | |||||
| * newer destination files and the last modified time of <code>destFile</code> | |||||
| * file should be made equal to the last modified time of <code>sourceFile</code> | |||||
| * . | |||||
| */ | |||||
| public static void copyFile( final File sourceFile, | |||||
| final File destFile, | |||||
| final FilterSetCollection filters ) | |||||
| throws IOException, TaskException | |||||
| { | |||||
| if( !destFile.exists() || | |||||
| destFile.lastModified() < sourceFile.lastModified() ) | |||||
| { | |||||
| if( destFile.exists() && destFile.isFile() ) | |||||
| { | |||||
| destFile.delete(); | |||||
| } | |||||
| // ensure that parent dir of dest file exists! | |||||
| // not using getParentFile method to stay 1.1 compat | |||||
| File parent = destFile.getParentFile(); | |||||
| if( !parent.exists() ) | |||||
| { | |||||
| parent.mkdirs(); | |||||
| } | |||||
| if( filters != null && filters.hasFilters() ) | |||||
| { | |||||
| BufferedReader in = new BufferedReader( new FileReader( sourceFile ) ); | |||||
| BufferedWriter out = new BufferedWriter( new FileWriter( destFile ) ); | |||||
| String newline = null; | |||||
| String line = in.readLine(); | |||||
| while( line != null ) | |||||
| { | |||||
| if( line.length() == 0 ) | |||||
| { | |||||
| out.newLine(); | |||||
| } | |||||
| else | |||||
| { | |||||
| newline = filters.replaceTokens( line ); | |||||
| out.write( newline ); | |||||
| out.newLine(); | |||||
| } | |||||
| line = in.readLine(); | |||||
| } | |||||
| IOUtil.shutdownReader( in ); | |||||
| IOUtil.shutdownWriter( out ); | |||||
| } | |||||
| else | |||||
| { | |||||
| final FileInputStream in = new FileInputStream( sourceFile ); | |||||
| final FileOutputStream out = new FileOutputStream( destFile ); | |||||
| IOUtil.copy( in, out ); | |||||
| IOUtil.shutdownStream( in ); | |||||
| IOUtil.shutdownStream( out ); | |||||
| } | |||||
| } | |||||
| } | |||||
| /** | /** | ||||
| * "normalize" the given absolute path. <p> | * "normalize" the given absolute path. <p> | ||||
| * | * | ||||
| @@ -5,7 +5,7 @@ | |||||
| * version 1.1, a copy of which has been included with this distribution in | * version 1.1, a copy of which has been included with this distribution in | ||||
| * the LICENSE.txt file. | * the LICENSE.txt file. | ||||
| */ | */ | ||||
| package org.apache.tools.ant.types;// java io classes | |||||
| package org.apache.tools.ant.types; | |||||
| import java.io.File; | import java.io.File; | ||||
| import java.io.FileInputStream; | import java.io.FileInputStream; | ||||
| @@ -81,7 +81,7 @@ public class FilterSet | |||||
| * | * | ||||
| * @param filter The feature to be added to the Filter attribute | * @param filter The feature to be added to the Filter attribute | ||||
| */ | */ | ||||
| public void addFilter( Filter filter ) | |||||
| public void addFilter( final Filter filter ) | |||||
| { | { | ||||
| m_filters.add( filter ); | m_filters.add( filter ); | ||||
| } | } | ||||
| @@ -121,17 +121,6 @@ public class FilterSet | |||||
| return new FiltersFile(); | return new FiltersFile(); | ||||
| }*/ | }*/ | ||||
| /** | |||||
| * Test to see if this filter set it empty. | |||||
| * | |||||
| * @return Return true if there are filter in this set otherwise false. | |||||
| */ | |||||
| public boolean hasFilters() | |||||
| throws TaskException | |||||
| { | |||||
| return m_filters.size() > 0; | |||||
| } | |||||
| /** | /** | ||||
| * Read the filters from the given file. | * Read the filters from the given file. | ||||
| * | * | ||||
| @@ -7,14 +7,10 @@ | |||||
| */ | */ | ||||
| package org.apache.tools.ant.types;// java io classes | package org.apache.tools.ant.types;// java io classes | ||||
| // java util classes | |||||
| import java.util.ArrayList; | import java.util.ArrayList; | ||||
| import java.util.Iterator; | import java.util.Iterator; | ||||
| import org.apache.myrmidon.api.TaskException; | import org.apache.myrmidon.api.TaskException; | ||||
| // ant classes | |||||
| /** | /** | ||||
| * A FilterSetCollection is a collection of filtersets each of which may have a | * A FilterSetCollection is a collection of filtersets each of which may have a | ||||
| * different start/end token settings. | * different start/end token settings. | ||||
| @@ -23,40 +19,11 @@ import org.apache.myrmidon.api.TaskException; | |||||
| */ | */ | ||||
| public class FilterSetCollection | public class FilterSetCollection | ||||
| { | { | ||||
| private ArrayList m_filterSets = new ArrayList(); | |||||
| private ArrayList filterSets = new ArrayList(); | |||||
| public FilterSetCollection() | |||||
| { | |||||
| } | |||||
| public FilterSetCollection( FilterSet filterSet ) | |||||
| public void addFilterSet( final FilterSet filterSet ) | |||||
| { | { | ||||
| addFilterSet( filterSet ); | |||||
| } | |||||
| public void addFilterSet( FilterSet filterSet ) | |||||
| { | |||||
| filterSets.add( filterSet ); | |||||
| } | |||||
| /** | |||||
| * Test to see if this filter set it empty. | |||||
| * | |||||
| * @return Return true if there are filter in this set otherwise false. | |||||
| */ | |||||
| public boolean hasFilters() | |||||
| throws TaskException | |||||
| { | |||||
| for( Iterator e = filterSets.iterator(); e.hasNext(); ) | |||||
| { | |||||
| FilterSet filterSet = (FilterSet)e.next(); | |||||
| if( filterSet.hasFilters() ) | |||||
| { | |||||
| return true; | |||||
| } | |||||
| } | |||||
| return false; | |||||
| m_filterSets.add( filterSet ); | |||||
| } | } | ||||
| /** | /** | ||||
| @@ -70,9 +37,11 @@ public class FilterSetCollection | |||||
| throws TaskException | throws TaskException | ||||
| { | { | ||||
| String replacedLine = line; | String replacedLine = line; | ||||
| for( Iterator e = filterSets.iterator(); e.hasNext(); ) | |||||
| final Iterator filterSets = m_filterSets.iterator(); | |||||
| while( filterSets.hasNext() ) | |||||
| { | { | ||||
| FilterSet filterSet = (FilterSet)e.next(); | |||||
| final FilterSet filterSet = (FilterSet)filterSets.next(); | |||||
| replacedLine = filterSet.replaceTokens( replacedLine ); | replacedLine = filterSet.replaceTokens( replacedLine ); | ||||
| } | } | ||||
| return replacedLine; | return replacedLine; | ||||
| @@ -52,70 +52,6 @@ public class FileUtils | |||||
| return (String[])result.toArray( new String[ result.size() ] ); | return (String[])result.toArray( new String[ result.size() ] ); | ||||
| } | } | ||||
| /** | |||||
| * Convienence method to copy a file from a source to a destination | |||||
| * specifying if token filtering must be used, if source files may overwrite | |||||
| * newer destination files and the last modified time of <code>destFile</code> | |||||
| * file should be made equal to the last modified time of <code>sourceFile</code> | |||||
| * . | |||||
| */ | |||||
| public static void copyFile( final File sourceFile, | |||||
| final File destFile, | |||||
| final FilterSetCollection filters ) | |||||
| throws IOException, TaskException | |||||
| { | |||||
| if( !destFile.exists() || | |||||
| destFile.lastModified() < sourceFile.lastModified() ) | |||||
| { | |||||
| if( destFile.exists() && destFile.isFile() ) | |||||
| { | |||||
| destFile.delete(); | |||||
| } | |||||
| // ensure that parent dir of dest file exists! | |||||
| // not using getParentFile method to stay 1.1 compat | |||||
| File parent = destFile.getParentFile(); | |||||
| if( !parent.exists() ) | |||||
| { | |||||
| parent.mkdirs(); | |||||
| } | |||||
| if( filters != null && filters.hasFilters() ) | |||||
| { | |||||
| BufferedReader in = new BufferedReader( new FileReader( sourceFile ) ); | |||||
| BufferedWriter out = new BufferedWriter( new FileWriter( destFile ) ); | |||||
| String newline = null; | |||||
| String line = in.readLine(); | |||||
| while( line != null ) | |||||
| { | |||||
| if( line.length() == 0 ) | |||||
| { | |||||
| out.newLine(); | |||||
| } | |||||
| else | |||||
| { | |||||
| newline = filters.replaceTokens( line ); | |||||
| out.write( newline ); | |||||
| out.newLine(); | |||||
| } | |||||
| line = in.readLine(); | |||||
| } | |||||
| IOUtil.shutdownReader( in ); | |||||
| IOUtil.shutdownWriter( out ); | |||||
| } | |||||
| else | |||||
| { | |||||
| final FileInputStream in = new FileInputStream( sourceFile ); | |||||
| final FileOutputStream out = new FileOutputStream( destFile ); | |||||
| IOUtil.copy( in, out ); | |||||
| IOUtil.shutdownStream( in ); | |||||
| IOUtil.shutdownStream( out ); | |||||
| } | |||||
| } | |||||
| } | |||||
| /** | /** | ||||
| * "normalize" the given absolute path. <p> | * "normalize" the given absolute path. <p> | ||||
| * | * | ||||