ant-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Patrick Martin <antu...@gmail.com>
Subject loop replace mapper
Date Sat, 01 May 2010 13:17:51 GMT
Hello,

I wrote a small mapper which loops on a string list and replaces a
token in the input file name.
it can be used (since ant 1.8.1) like this:
		<copy todir="test/data/destdir" enablemultiplemappings="true">
			<fileset dir="test/data/srcdir" includes="**" />
			<loopreplacemapper token="@dirname@" list="dir1,dir2" />
		</copy>
		<zip destfile="test/data/destzip.zip">
			<mappedresources enablemultiplemappings="true">
				<fileset dir="test/data/srcdir" includes="**" />
				<loopreplacemapper token="@dirname@" list="dir1,dir2" />
			</mappedresources>
               </zip>

Would this fit in the next standard ant version ?

Here is the source code:

public class LoopReplaceMapper implements FileNameMapper {
	private String token;
	private ArrayList<String> list;

	public void setToken(String token) {
		this.token = token;
	}

	public String getToken() {
		return token;
	}

	public void setList(String _list) {
		StringTokenizer st = new StringTokenizer(_list, "	, ");
		this.list = new ArrayList<String>(st.countTokens());
		while (st.hasMoreTokens()) {
			list.add(st.nextToken());
		}
	}

	public String getList() {
		return list.toString();
	}

	public String[] mapFileName(String sourceFileName) {
		String[] mappedFileNames = null;
		if (sourceFileName.contains(getToken())) {
			mappedFileNames = new String[list.size()];
			int index = 0;
			for (String replacement : list) {
				mappedFileNames[index++] = sourceFileName.replace(getToken(), replacement);
			}
		} else {
			mappedFileNames = new String[1];
			mappedFileNames[0] = sourceFileName;
		}
		return mappedFileNames;
	}

	public void setFrom(String from) {
	}

	public void setTo(String to) {
	}
}

 Rgds,

Patrick

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
For additional commands, e-mail: user-help@ant.apache.org


Mime
View raw message