A custom file selector for use with Ant.
See: Custom Ant Selectors for more details.
Allows a JoSQL WHERE clause
to be applied to each file passed to the selector
JoSQLAntFileSelector.isSelected(File,String,File) .
An obvious question to ask here is "why do I need this when Ant has lots of custom file selectors".
Well, in short, you don't "need" this selector, but I've found that trying to remember all the
custom elements and their attributes can be painful and doesn't give me all the power needed to
select the files I want. This custom selector however does.
The selector supports the following "param"s.
- where - multiple where params are supported, the value of each param is concatenated
with the others to form the full WHERE clause. It is up to you to decide how you split up
your where clause.
- debug - when set to on (case-insensitive) debug information about the WHERE clause
actually used and for each file passed to
JoSQLAntFileSelector.isSelected(File,String,File) what the
WHERE clause evaluated to, either
true or false .
Usage:
A typical usage may be:
<fileset dir="myDir"
includes="**">
<custom classpath="[PATH_TO_JOSQL]/JoSQL-1.0.jar:[PATH_TO_JOSQL]/3rd-party-jars/gentlyWEB-utils-1.1.jar"
classname="org.josql.contrib.JoSQLAntFileSelector">
<param name="debug" value="on" />
<param name="where" value="toDate (lastModified) > toDate ('22/Sep/2005')" />
<param name="where" value="AND length > 10000" />
</custom>
</fileset>
This will create a file set containing all the files modified after 22/Sep/2005 and have a length greater
than 10000 bytes.
Compare this to how it would be "normally" be done with standard Ant fileset selectors:
<fileset dir="myDir"
includes="**">
<date datetime="22/Sep/2005"
pattern="dd/MMM/yyyy"
when="after" />
<size value="10000"
when="more" />
</fileset>
Of course it is perfectly possible to mix and match this selector and other custom selectors or
the built-in selectors.
|