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> | ||||
* | * | ||||