package com.redhat.ceylon.common.tool; /** * A command line option or option argument accepted by a plugin */ public class OptionModel<A> { public static enum ArgumentType { NOT_ALLOWED, OPTIONAL, REQUIRED } private ToolModel<?> toolModel; private String longName; private Character shortName; private ArgumentModel<A> argument; private ArgumentType argumentType; public ToolModel<?> getToolModel() { return toolModel; } public void setToolModel(ToolModel<?> toolModel) { this.toolModel = toolModel; } public String getLongName() { return longName; } public void setLongName(String name) { this.longName = name; } public Character getShortName() { return shortName; } public void setShortName(Character shortName) { this.shortName = shortName; } public ArgumentModel<A> getArgument() { return argument; } public void setArgument(ArgumentModel<A> argument) { this.argument = argument; } public void setArgumentType(ArgumentType argumentType) { this.argumentType = argumentType; } public ArgumentType getArgumentType() { return this.argumentType; } public String toString() { StringBuilder sb = new StringBuilder(); if (longName != null) { sb.append("--").append(longName); } if (longName != null && shortName != null) { sb.append("/"); } if (shortName != null) { sb.append("-").append(shortName); } return sb.toString(); } }