On Fri, Jan 18, 2019 at 10:39 AM Todor Boev <rinsv...@gmail.com> wrote:
> Ok, but the formatter doesn't always do what I want. > > Right now I return an array of objects and I want the Converter.INSPECT > level of detail when printing each item in the array. > The formatter uses Converter.INSPECT level for the array, but > Converter.PART or Converter.LINE for each item. > So what should I do: > - Add another command to inspect one item? > - Define my own format for that exact array? > - ..? > Deploy a converter for your type along with your command ;) - Ray > > On Fri, Jan 18, 2019 at 5:23 PM Raymond Auge <raymond.a...@liferay.com> > wrote: > > > return! > > > > When you print you go around the formatters engine and you cannot pipe as > > nicely. > > > > The shell API is designed for returning results from command methods. > These > > can be complex objects which are much better for piping between commands > > than strings on sysout. The formatter engine only kicks in when actually > > printing out the result and so you can get nice output while having > really > > great piping. > > > > Furthermore, when you force the use of ThreadIO to manage the sys.out/err > > you introduce complex threading issues that make things like calling the > > command engine from other places (believe me when I say it can be useful) > > very, very painful. > > > > My suggestion is to avoid using sys.out/err whenever possible. > > > > - Ray > > > > On Fri, Jan 18, 2019 at 9:53 AM Todor Boev <rinsv...@gmail.com> wrote: > > > > > Hi, > > > > > > When implementing a Gogo shell command are there any rules of thumb on > > > whether I should return a result from the command method or print it on > > > System.out? Possibly using the CommandSession to format it first. > > > > > > What bothers me is that AFAIK the automatic printing of return values > > from > > > command methods may be turned off. > > > > > > Regards > > > Todor > > > > > > > > > -- > > *Raymond Augé* <http://www.liferay.com/web/raymond.auge/profile> > > (@rotty3000) > > Senior Software Architect *Liferay, Inc.* <http://www.liferay.com> > > (@Liferay) > > Board Member & EEG Co-Chair, OSGi Alliance <http://osgi.org> > > (@OSGiAlliance) > > > -- *Raymond Augé* <http://www.liferay.com/web/raymond.auge/profile> (@rotty3000) Senior Software Architect *Liferay, Inc.* <http://www.liferay.com> (@Liferay) Board Member & EEG Co-Chair, OSGi Alliance <http://osgi.org> (@OSGiAlliance)