Browse Source

Take advantage of JDK 1.4 (and 1.2, actually)

git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@723730 13f79535-47bb-0310-9956-ffa450edef68
master
Stefan Bodewig 16 years ago
parent
commit
fd3ea49030
1 changed files with 22 additions and 20 deletions
  1. +22
    -20
      src/main/org/apache/tools/ant/taskdefs/Replace.java

+ 22
- 20
src/main/org/apache/tools/ant/taskdefs/Replace.java View File

@@ -31,9 +31,9 @@ import java.io.InputStreamReader;
import java.io.OutputStreamWriter; import java.io.OutputStreamWriter;
import java.io.Reader; import java.io.Reader;
import java.io.Writer; import java.io.Writer;
import java.util.ArrayList;
import java.util.Enumeration; import java.util.Enumeration;
import java.util.Properties; import java.util.Properties;
import java.util.Vector;
import org.apache.tools.ant.BuildException; import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.DirectoryScanner; import org.apache.tools.ant.DirectoryScanner;
import org.apache.tools.ant.Project; import org.apache.tools.ant.Project;
@@ -62,7 +62,7 @@ public class Replace extends MatchingTask {
private File propertyFile = null; private File propertyFile = null;
private File replaceFilterFile = null; private File replaceFilterFile = null;
private Properties properties = null; private Properties properties = null;
private Vector replacefilters = new Vector();
private ArrayList replacefilters = new ArrayList();


private File dir = null; private File dir = null;


@@ -271,8 +271,7 @@ public class Replace extends MatchingTask {
*/ */
void flush() { void flush() {
replace(); replace();
// Avoid runtime problem on pre 1.4 when compiling post 1.4
outputBuffer.append(inputBuffer.toString());
outputBuffer.append(inputBuffer);
inputBuffer.delete(0, inputBuffer.length()); inputBuffer.delete(0, inputBuffer.length());
} }


@@ -282,13 +281,14 @@ public class Replace extends MatchingTask {
* replacement. * replacement.
*/ */
private int replace() { private int replace() {
int found = inputBuffer.toString().indexOf(token);
int found = inputBuffer.indexOf(token);
int pos = -1; int pos = -1;
final int tokenLength = token.length();
final int replaceValueLength = replaceValue.length();
while (found >= 0) { while (found >= 0) {
inputBuffer.replace(found, found + token.length(),
replaceValue);
pos = found + replaceValue.length();
found = inputBuffer.toString().indexOf(token, pos);
inputBuffer.replace(found, found + tokenLength, replaceValue);
pos = found + replaceValueLength;
found = inputBuffer.indexOf(token, pos);
++replaceCount; ++replaceCount;
} }
return pos; return pos;
@@ -442,7 +442,7 @@ public class Replace extends MatchingTask {
*/ */
public void execute() throws BuildException { public void execute() throws BuildException {


Vector savedFilters = (Vector) replacefilters.clone();
ArrayList savedFilters = (ArrayList) replacefilters.clone();
Properties savedProperties = Properties savedProperties =
properties == null ? null : (Properties) properties.clone(); properties == null ? null : (Properties) properties.clone();


@@ -546,7 +546,7 @@ public class Replace extends MatchingTask {
throws BuildException { throws BuildException {
for (int i = 0; i < replacefilters.size(); i++) { for (int i = 0; i < replacefilters.size(); i++) {
Replacefilter element = Replacefilter element =
(Replacefilter) replacefilters.elementAt(i);
(Replacefilter) replacefilters.get(i);
element.validate(); element.validate();
} }
} }
@@ -653,7 +653,7 @@ public class Replace extends MatchingTask {
*/ */
private void flushFilterChain() { private void flushFilterChain() {
for (int i = 0; i < replacefilters.size(); i++) { for (int i = 0; i < replacefilters.size(); i++) {
Replacefilter filter = (Replacefilter) replacefilters.elementAt(i);
Replacefilter filter = (Replacefilter) replacefilters.get(i);
filter.flush(); filter.flush();
} }
} }
@@ -664,7 +664,7 @@ public class Replace extends MatchingTask {
*/ */
private boolean processFilterChain() { private boolean processFilterChain() {
for (int i = 0; i < replacefilters.size(); i++) { for (int i = 0; i < replacefilters.size(); i++) {
Replacefilter filter = (Replacefilter) replacefilters.elementAt(i);
Replacefilter filter = (Replacefilter) replacefilters.get(i);
if (!filter.process()) { if (!filter.process()) {
return false; return false;
} }
@@ -681,7 +681,7 @@ public class Replace extends MatchingTask {
private StringBuffer buildFilterChain(StringBuffer inputBuffer) { private StringBuffer buildFilterChain(StringBuffer inputBuffer) {
StringBuffer buf = inputBuffer; StringBuffer buf = inputBuffer;
for (int i = 0; i < replacefilters.size(); i++) { for (int i = 0; i < replacefilters.size(); i++) {
Replacefilter filter = (Replacefilter) replacefilters.elementAt(i);
Replacefilter filter = (Replacefilter) replacefilters.get(i);
filter.setInputBuffer(buf); filter.setInputBuffer(buf);
buf = filter.getOutputBuffer(); buf = filter.getOutputBuffer();
} }
@@ -694,7 +694,7 @@ public class Replace extends MatchingTask {
*/ */
private void logFilterChain(String filename) { private void logFilterChain(String filename) {
for (int i = 0; i < replacefilters.size(); i++) { for (int i = 0; i < replacefilters.size(); i++) {
Replacefilter filter = (Replacefilter) replacefilters.elementAt(i);
Replacefilter filter = (Replacefilter) replacefilters.get(i);
log("Replacing in " + filename + ": " + filter.getToken() log("Replacing in " + filename + ": " + filter.getToken()
+ " --> " + filter.getReplaceValue(), Project.MSG_VERBOSE); + " --> " + filter.getReplaceValue(), Project.MSG_VERBOSE);
} }
@@ -803,7 +803,7 @@ public class Replace extends MatchingTask {
*/ */
public Replacefilter createReplacefilter() { public Replacefilter createReplacefilter() {
Replacefilter filter = new Replacefilter(); Replacefilter filter = new Replacefilter();
replacefilters.addElement(filter);
replacefilters.add(filter);
return filter; return filter;
} }


@@ -814,7 +814,7 @@ public class Replace extends MatchingTask {
*/ */
private Replacefilter createPrimaryfilter() { private Replacefilter createPrimaryfilter() {
Replacefilter filter = new Replacefilter(); Replacefilter filter = new Replacefilter();
replacefilters.insertElementAt(filter, 0);
replacefilters.add(0, filter);
return filter; return filter;
} }


@@ -822,10 +822,12 @@ public class Replace extends MatchingTask {
* Replace occurrences of str1 in StringBuffer str with str2. * Replace occurrences of str1 in StringBuffer str with str2.
*/ */
private void stringReplace(StringBuffer str, String str1, String str2) { private void stringReplace(StringBuffer str, String str1, String str2) {
int found = str.toString().indexOf(str1);
int found = str.indexOf(str1);
final int str1Length = str1.length();
final int str2Length = str2.length();
while (found >= 0) { while (found >= 0) {
str.replace(found, found + str1.length(), str2);
found = str.toString().indexOf(str1, found + str2.length());
str.replace(found, found + str1Length, str2);
found = str.indexOf(str1, found + str2Length);
} }
} }




Loading…
Cancel
Save