@@ -0,0 +1,1345 @@
+package org.jboss.seam.sidekick.shell.util;%0A%0Aimport org.jboss.seam.sidekick.shell.cli.OptionMetadata;%0Aimport org.mvel2.util.ParseTools;%0Aimport org.mvel2.util.StringAppender;%0A%0A/**%0A * User: christopherbrock%0A * Date: 31-Aug-2010%0A * Time: 8:44:05 PM%0A */%0Apublic final class ShellUtils%0A%7B%0A   private ShellUtils()%0A   %7B%0A   %7D%0A%0A   public static String getOptionDescriptor(OptionMetadata optionMetaData)%0A   %7B%0A      StringAppender appender = new StringAppender(%22%5B%22);%0A      if (optionMetaData.isNamed())%0A      %7B%0A         appender.append(optionMetaData.getName()).append(%22=%22);%0A      %7D%0A%0A      if (optionMetaData.getDescription().equals(%22%22))%0A      %7B%0A         appender.append(%22%3CARG%22).append(':').append(getTypeDescriptor(optionMetaData)).append(%22%3E%22);%0A      %7D%0A      else%0A      %7B%0A         appender.append('%3C').append(optionMetaData.getDescription()).append(':').append(optionMetaData.getType()).append('%3E');%0A      %7D%0A%0A      return appender.append('%5D').toString();%0A   %7D%0A%0A%0A   public static String getTypeDescriptor(OptionMetadata optionMetaData)%0A   %7B%0A      return getTypeDescriptor(optionMetaData.getType());%0A   %7D%0A%0A%0A   public static String getTypeDescriptor(Class%3C?%3E type)%0A   %7B%0A      if (ParseTools.boxPrimitive(type).isAssignableFrom(Number.class))%0A      %7B%0A         return %22numeric%22;%0A      %7D%0A      else%0A      %7B%0A         return type.getCanonicalName();%0A      %7D%0A   %7D%0A%7D%0A

Add ShellUtils.java