20 Nisan 2021 Salı

CLI HelpFormatter Sınıfı

Giriş
Şu satırı dahil ederiz.
import org.apache.commons.cli.HelpFormatter;

printHelp metodu
Bu metodun overload edilmiş bir sürü hali var. Overload edilen parametrelerin sayısı gittikçe artıyor. Her yeni parametre bir sonraki satıra yazılıyor gibi düşünülebilir.

Parametreler şöyle

- String cmdLineSyntax
- String header
- Options
- String footer
- boolean autoUsage

autoUsage true ise şöyle bir çıktı alırız
usage : myapp -myarf <arg>
 -myarg <arg>   - myexplanation for arg
autoUsage false ise şöyle bir çıktı alırız. Yani sadece ilk satır değişiyor.
usage : myapp
 -myarg <arg>   - myexplanation for arg
header ve footer verirsek ve autoUsage true şöyle bir çıktı alırız
usage : myapp -myarf <arg>
header
 -myarg <arg>   - myexplanation for arg
footer
Ayrıca setWidth() ile satır genişliği atanabilir.

Örnek 
Benim kullandıklarımdan birisi şöyle. İlk parametrede "command line syntax" belirtiliyor. hssi ve 9028 parametrelerinin mecburi olduğu da belirtiliyor. İkinci parametre olarak options ve üçüncü parametre olarak true geçerek geriye kalan isteğe bağlı seçenekleri de yazdırıyorum
Options options = ...;
helpFormatter.printHelp("java -jar foo.jar hssi 9028", options, true)
Örnek  - cmdLineSyntax + header + options + footer + autoUsage
Benim kullandıklarımdan birisi şöyle
Options options = ...;
String footer = "component1,component2"
helpFormatter.printHelp("myapp", "Starts my app", options, componentNames ,true);
Çıktı olarak şunu alırız
usage : myapp -blah <arg>
Starts my app
  -blah <arg> - my explanation
component1,component2

Hiç yorum yok:

Yorum Gönder