You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ant.apache.org by bu...@apache.org on 2003/05/05 01:31:33 UTC

DO NOT REPLY [Bug 16684] - Document case sensitivity of glob mapper

DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=16684>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=16684

Document case sensitivity of glob mapper





------- Additional Comments From kovesp@sympatico.ca  2003-05-04 23:31 -------
This BTW is a good argument for allowing multiple mappers.  It is also an 
argument for allow "attributes" to be passed to specific implementations.

The simplest way that I see to make these ideas usable everywhere that mappers 
are allowed
1. For multiple mappers: introduce a mapper element without any attributes to 
act as a container:
<mapper>
   <mapper type="glob" from="*.ini" to="*.ini.bak"/>
   <mapper type="glob" from="*.INI" to "*.INI.bak"/>
</mapper>
Semantics could be either a. cummulative: mappers are applied in the given 
sequence; if all return null, the mapper container returns null; otherwise a 
mapper later in the sequence is applied to the result of earlier mappers, 
except ones returning null or empty array are skipped; b. exclusive: mappers 
are applied in undefined sequence, the result of the first to return non-null 
is used (in other words, if the mappers are not disjoint the result is 
undefined).

2. For mapper specific attributes: introduce a new attribute to the mapper 
element called props. The value is a sequence of name='value' items separated 
by comma, e.g., props="casesensitive='no',prefix='hello'". Introduce a 
subinterface of FileNameMapper, FileNameMapperWithProperties (unless you want 
to call it FileNameMapper2 in the MS tradition B-{) ). It has a single new 
method

void setProperties(Properties props)

This method is caledd called on mappers implementing the new interface with 
the value of the props attribute translated into a Properties instance. 

Then with a suitably updated glob mapper we could have:
<mapper type="glob" from="*.ini" to="*.ini.bak" props="casesensitive='no'"/>