Nope. All that I want is to write a Properties object with sorted lines. Simple as that. I do not even need to read a properties file into a SortedProperties but we can do that as well of course.
This works: https://github.com/h2database/h2database/blob/master/h2/src/main/org/h2/util/SortedProperties.java Gary On Tue, Jul 18, 2017 at 11:02 AM, Simon Spero <sesunc...@gmail.com> wrote: > On Jul 18, 2017 11:39 AM, "Gary Gregory" <garydgreg...@gmail.com> wrote: > > My use case is to write a Properties object in sorted key order, nothing > fancy. The simplest way is to subclass Properties and override keys(). > > Loading a SortedProperties with a Map is not on my to-do list. > > > > > Would your use case be served by one or more static methods? > These methods might need as arguments: > 1) Some form of output sink > 2) An instance of Map<?,?> m satisfying the conditions: > a) every key in m is an instance of String. > b) every value in m is an instance of String. > > The constraints 2a and 2b are required be satisfied by any Properties > object any time at it is output. > > (Because of the legacy derivation from Hashtable, these conditions may be > violated at other times without an error being signaled. This also makes > the concept of a Sorted Properties instance problematic, as these > keys/values may be comparable with String.) > > There might be different entry points for sorted output, and for output in > the natural order of the map (which might be sorted). > > There may need to be a specialized default comparator if parts of the keys > are to be compared in non lexicographic order (for example, if a key > contains sequences of digits that should be compared as numbers, or if keys > are hierarchical, with components separated by periods). > > Values need to be encoded wrt the special escape format defined for > properties files. > > As a separate set of functionality, a corresponding method or set of > methods could be provided to support populating a Map from an input source > containing contents formatted as specified in j.u.Properties. > > So, io with a touch of codec? > > Simon >