package io.jafka.console;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import joptsimple.HelpFormatter;
import joptsimple.OptionDescriptor;
public class MyFormatter implements HelpFormatter {
public String format( Map<String, ? extends OptionDescriptor> options ) {
StringBuilder buffer = new StringBuilder();
for ( OptionDescriptor each : new HashSet<OptionDescriptor>( options.values() ) ) {
buffer.append( lineFor( each ) );
}
return buffer.toString();
}
private String lineFor( OptionDescriptor descriptor ) {
StringBuilder line = new StringBuilder();
for(String option:descriptor.options()) {
line.append(option.length()>1?"--":"-");
line.append(option);
line.append(',');
}
line.setCharAt(line.length()-1, ' ');
line.append(" ");
final int blankSize = line.length() + 2;
if(descriptor.isRequired()) {
line.append("REQUIRED: ");
}
line.append(descriptor.description());
List<?> list = descriptor.defaultValues();
if(list!=null&&list.size()>0) {
line.append("\n");
for(int i=0;i<blankSize;i++) {
line.append(' ');
}
line.append("(default: ");
for(int i=0;i<list.size();i++) {
if(i>0)line.append(',');
line.append(list.get(i).toString());
}
line.append(')');
}
line.append( System.getProperty( "line.separator" ) );
return line.toString();
}
}