package org.caudexorigo.cli; class CliSpecificationImpl { private final String m_message; public CliSpecificationImpl(final CommandLineInterface cliSpecification, final UnparsedSpecificationImpl unparsedSpecification, final boolean mandatoryOptions) { if (cliSpecification == null && unparsedSpecification == null) { m_message = "The options available are:"; } else { final StringBuilder message = new StringBuilder("Usage: "); if (cliSpecification != null && !nullOrBlank(cliSpecification.application())) { message.append(String.format("%s ", cliSpecification.application().trim())); } if (!mandatoryOptions) { message.append("["); } message.append("options"); if (!mandatoryOptions) { message.append("]"); } message.append(" "); if (unparsedSpecification != null) { final String unparsedName = !nullOrBlank(unparsedSpecification.getLongName()) ? unparsedSpecification.getLongName() : "ARGUMENTS"; message.append(unparsedName); if (unparsedSpecification.isMultiValued()) { message.append("..."); } } m_message = message.toString().trim(); } } private boolean nullOrBlank(final String string) { return (string == null || string.trim().equals("")); } @Override public String toString() { return m_message; } }