content: 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();
          }
      }