In preparation for the 1.0 release, I think we should address Sebb's concern in 
TEXT-40 about the attempt to create "idempotent" string escape methods. By 
idempotent I mean someMethod("some string") = 
someMethod(someMethod(someMethod(...someMethod("some string")))), a single 
application of a method is equal to any number of the applications of the 
method on the same input.

Below I lay out a mechanism by which it is possible to write such methods, but 
I don’t know the value in writing such methods. I'm merely expressing that 
idempotency is a possibility.

For string "un-escaping", I believe that we can write a method that, indeed, is 
idempotent by simply running the un-escape method the finite number of 
un-escapings to get to the point at which the string remains unchanged between 
applications of the un-escaping method. (I believe that I can write a proof 
that all un-escape methods have such a point, if that is needed for the sake of 
discussion).

If indeed we can create an idempotent un-escape method, then we can simply take 
that method run it, and then run the escaping method one time. If we always 
completely unescape and then escape once then we do have an idempotent method.

Such a method might not be all that valuable to the user though. Furthermore, 
this just explains one way to create such an idempotent method. Whether or not 
more or more valuable methods exists, would take some more though.

Anyone have any thoughts? My feeling is that it might be more effort than it's 
worth to ensure that any string is only "singly encoded.” Further, we probably 
should give a look at the “escape_once” methods in StringEsapeUtils.

Cheers
-Rob
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org

Reply via email to