IMO future factories should only be Suppliers. Whether to deprecate current code in favor of Suppliers is possible if only a bit noisy.
Gary On Tue, May 14, 2024, 12:22 PM Claude Warren <cla...@xenei.com> wrote: > I have submitted a draft pull request > https://github.com/apache/commons-cli/pull/272 > > However, I would like to resolve the Builder/build Builder/get naming issue > before I take it out of draft mode. > > > > On Tue, May 14, 2024 at 6:05 PM Claude Warren <cla...@xenei.com> wrote: > > > I will add some tests to show what it is doing in the various cases. But > > I think that since we are now providing external developers with the > > ability to display custom information about the Option there are a > > couple of function that we could probably use internally and provide to > the > > external developer. > > > > A prime example is the ability to get the string "-s" or "-s, --longopt" > > or "--longopt" as an output based on weather the option has a short > option, > > long option or both defined. This is used in several places internally, > > and I have had to code it for some external code I was developing. > > > > There are probably others that we can find the code base but I was > > thinking an "OptionUtils" or "OptionFormat" or "OptionHelper" class that > > has static methods taking an Option. > > > > Are there any objections to this? > > > > > > On Tue, May 14, 2024 at 4:08 PM Claude Warren <cla...@xenei.com> wrote: > > > >> Eric, I may have broken it with my implementation of the HelpFormatter > >> deprecatedFormatFunc() method. > >> > >> On Tue, May 14, 2024 at 4:06 PM Claude Warren <cla...@xenei.com> wrote: > >> > >>> We already have historical uses of builders in CLI (e.g. > >>> CommandLine.Builder) that use build() not get(). > >>> In addition many of the other commons packages have Builders that are > >>> triggered by a "build" call. > >>> > >>> On Tue, May 14, 2024 at 3:03 PM Gary Gregory <garydgreg...@gmail.com> > >>> wrote: > >>> > >>>> Hi All, > >>>> > >>>> Better documentation is always nice :-) > >>>> > >>>> I vote for Supplier/get() because it does not require the invention of > >>>> something new that does _exactly the same thing as the code already > >>>> provided in the JRE_. > >>>> > >>>> Gary > >>>> > >>>> On Tue, May 14, 2024 at 8:22 AM Claude Warren <cla...@xenei.com> > wrote: > >>>> > > >>>> > I find a couple of issues: > >>>> > > >>>> > No documentation for the new options. (I am working on that). > >>>> > A weird mix of .get() and .build() methods on builders. The new > >>>> builders > >>>> > all extend Supplier<> so the get makes sense in that respect, but I > >>>> don't > >>>> > think this is the normal nomenclature for Builders. I expect a > >>>> build() > >>>> > method. In any case we should settle on one or the other. In case > >>>> it is > >>>> > not obvious I vote for build(). > >>>> > > >>>> > On Mon, May 13, 2024 at 11:54 AM Claude Warren <cla...@xenei.com> > >>>> wrote: > >>>> > > >>>> > > Will do. > >>>> > > > >>>> > > On Sun, May 12, 2024 at 8:49 PM Gary Gregory < > >>>> garydgreg...@gmail.com> > >>>> > > wrote: > >>>> > > > >>>> > >> How does it look now? > >>>> > >> > >>>> > >> Would you check git master is OK, then I can cut a release > >>>> candidate > >>>> > >> later in the week. > >>>> > >> > >>>> > >> Gary > >>>> > >> > >>>> > >> On Sat, May 11, 2024 at 6:28 AM Claude Warren <cla...@apache.org > > > >>>> wrote: > >>>> > >> > > >>>> > >> > Also, it appears that the deprecatedHandler is only tested on > >>>> the string > >>>> > >> > option processing. if the application retains a list of > Options > >>>> and > >>>> > >> passes > >>>> > >> > those in to be checked the deprecation check is not execute. > >>>> > >> > > >>>> > >> > On Sat, May 11, 2024 at 12:18 PM Claude Warren < > >>>> cla...@apache.org> > >>>> > >> wrote: > >>>> > >> > > >>>> > >> > > Greetings, > >>>> > >> > > > >>>> > >> > > I see that there is a deprecated option in cli 1.7.0, and > that > >>>> it has > >>>> > >> some > >>>> > >> > > nice data. But I don't see how to display the info in the > >>>> help. > >>>> > >> > > > >>>> > >> > > It looks like the only option is to print "[Deprecated]" > >>>> without any > >>>> > >> > > information from the deprecated info. I think the > HelpPrinter > >>>> needs a > >>>> > >> > > function (similar to the command line deprecatedHandler) to > >>>> convert > >>>> > >> the > >>>> > >> > > object to a string that can be prefixed to the option help > >>>> output > >>>> > >> where the > >>>> > >> > > "[Deprecated]" is now. > >>>> > >> > > > >>>> > >> > > Does this make sense? > >>>> > >> > > > >>>> > >> > > Is there something I am overlooking that already does this? > >>>> > >> > > > >>>> > >> > > Claude > >>>> > >> > > > >>>> > >> > > > >>>> > >> > > > >>>> > >> > >>>> > >> > >>>> --------------------------------------------------------------------- > >>>> > >> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org > >>>> > >> For additional commands, e-mail: dev-h...@commons.apache.org > >>>> > >> > >>>> > >> > >>>> > > > >>>> > > -- > >>>> > > LinkedIn: http://www.linkedin.com/in/claudewarren > >>>> > > > >>>> > > >>>> > > >>>> > -- > >>>> > LinkedIn: http://www.linkedin.com/in/claudewarren > >>>> > >>>> --------------------------------------------------------------------- > >>>> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org > >>>> For additional commands, e-mail: dev-h...@commons.apache.org > >>>> > >>>> > >>> > >>> -- > >>> LinkedIn: http://www.linkedin.com/in/claudewarren > >>> > >> > >> > >> -- > >> LinkedIn: http://www.linkedin.com/in/claudewarren > >> > > > > > > -- > > LinkedIn: http://www.linkedin.com/in/claudewarren > > > > > -- > LinkedIn: http://www.linkedin.com/in/claudewarren >