Package org.jboss.aesh.cl.internal

Examples of org.jboss.aesh.cl.internal.ProcessedCommand


   private ProcessedCommand generateCommand(final UICommand command, final ShellContext shellContext,
            final Map<String, InputComponent<?, Object>> inputs)
   {
      UICommandMetadata metadata = command.getMetadata(shellContext);
      ProcessedCommand parameter = new ProcessedCommand(ShellUtil.shellifyName(metadata.getName()),
               metadata.getDescription(), ForgeCommandValidator.INSTANCE);

      for (final InputComponent<?, Object> input : inputs.values())
      {
         final Object defaultValue = InputComponents.getValueFor(input);
         final boolean isMultiple = input instanceof ManyValued;
         final boolean hasValue = (InputComponents.getInputType(input) != InputType.CHECKBOX && !Boolean.class
                  .isAssignableFrom(input.getValueType()));
         try
         {
            OptionBuilder optionBuilder = new OptionBuilder();

            optionBuilder.name(input.getName())
                     .addDefaultValue(defaultValue == null ? null : defaultValue.toString())
                     .description(input.getLabel())
                     .hasMultipleValues(isMultiple)
                     .hasValue(hasValue)
                     .type(input.getValueType());

            if (input.isRequired())
            {
               optionBuilder.required(true).renderer(OptionRenderers.REQUIRED);
            }
            OptionCompleter completer = OptionCompleterFactory.getCompletionFor(input, shellContext, converterFactory);
            optionBuilder.completer(completer);
            optionBuilder.activator(new OptionActivator()
            {
               @Override
               public boolean isActivated(ProcessedCommand processedCommand)
               {
                  return input.isEnabled();
               }
            }).validator(new OptionValidator<Object>()
            {
               @Override
               public void validate(Object value) throws org.jboss.aesh.cl.validator.OptionValidatorException
               {
                  InputComponents.setValueFor(converterFactory, input, value);
                  ShellValidationContext validationContext = new ShellValidationContext(shellContext);
                  input.validate(validationContext);
                  List<String> errors = validationContext.getErrors();
                  if (!errors.isEmpty())
                  {
                     throw new OptionValidatorException(errors.get(0));
                  }
               }
            }).converter(new CLConverter<Object>()
            {
               @Override
               public Object convert(String value)
               {
                  return InputComponents.convertToUIInputValue(converterFactory, input, value);
               }
            }).valueSeparator(' ');

            if (input.getShortName() != InputComponents.DEFAULT_SHORT_NAME)
            {
               optionBuilder.shortName(input.getShortName());
            }
            ProcessedOption option = optionBuilder.create();
            if (ARGUMENTS_INPUT_NAME.equals(input.getName()))
            {
               parameter.setArgument(option);
            }
            else
            {
               parameter.addOption(option);
            }
         }
         catch (OptionParserException e)
         {
            logger.log(Level.SEVERE, "Error while parsing command option", e);
View Full Code Here


   }

   public CommandLineParser generateParser(CommandController command, ShellContext shellContext,
            Map<String, InputComponent<?, ?>> inputs)
   {
      ProcessedCommand processedCommand = generateCommand(command, shellContext, inputs);
      return new ForgeCommandLineParser(processedCommand, this, inputs);
   }
View Full Code Here

   {
      UICommandMetadata metadata = (command instanceof WizardCommandController) ? ((WizardCommandController) command)
               .getInitialMetadata() : command.getMetadata();
      String cmdName = ShellUtil.shellifyName(metadata.getName()).toLowerCase();
      String cmdDescription = metadata.getDescription();
      final ProcessedCommand parameter = new ProcessedCommand(cmdName, cmdDescription,
               (Class<? extends CommandValidator<?>>) null, null);

      for (Entry<String, InputComponent<?, ?>> entry : inputs.entrySet())
      {
         final String inputName = entry.getKey();
         final InputComponent<?, ?> input = entry.getValue();
         final Object defaultValue = InputComponents.getValueFor(input);
         final boolean isMultiple = input instanceof ManyValued;
         final boolean hasValue = (!InputType.CHECKBOX.equals(InputComponents.getInputType(input)) && !Boolean.class
                  .isAssignableFrom(input.getValueType()) && !boolean.class.isAssignableFrom(input.getValueType()));
         try
         {
            OptionBuilder optionBuilder = new OptionBuilder();

            optionBuilder.name(ShellUtil.shellifyName(inputName))
                     .addDefaultValue(defaultValue == null ? null : defaultValue.toString())
                     .description(input.getLabel())
                     .hasMultipleValues(isMultiple)
                     .hasValue(hasValue)
                     .type(input.getValueType());

            if (input.isRequired() && !input.hasDefaultValue() && !input.hasValue())
            {
               optionBuilder.renderer(OptionRenderers.REQUIRED);
            }
            OptionCompleter<CompleterInvocation> completer = OptionCompleterFactory.getCompletionFor(
                     input, shellContext, converterFactory);
            optionBuilder.completer(completer);
            optionBuilder.activator(new OptionActivator()
            {
               @Override
               public boolean isActivated(ProcessedCommand processedCommand)
               {
                  return input.isEnabled();
               }
            }).validator(new OptionValidator<ValidatorInvocation<Object, Object>>()
            {
               @Override
               public void validate(ValidatorInvocation<Object, Object> validatorInvocation)
                        throws OptionValidatorException
               {
                  Object value = validatorInvocation.getValue();
                  InputComponents.setValueFor(converterFactory, input, value);
                  for (UIMessage message : command.validate(input))
                  {
                     if (message.getSource() == input && message.getSeverity() == Severity.ERROR)
                     {
                        throw new OptionValidatorException(message.getDescription());
                     }
                  }
               }
            }).converter(new Converter<Object, ConverterInvocation>()
            {
               @Override
               public Object convert(ConverterInvocation converterInvocation) throws OptionValidatorException
               {
                  String value = converterInvocation.getInput();
                  return InputComponents.convertToUIInputValue(converterFactory, input, value);
               }
            }).valueSeparator(' ');

            if (input.getShortName() != InputComponents.DEFAULT_SHORT_NAME)
            {
               optionBuilder.shortName(input.getShortName());
            }
            ProcessedOption option = optionBuilder.create();
            if (ARGUMENTS_INPUT_NAME.equals(input.getName()))
            {
               parameter.setArgument(option);
            }
            else
            {
               parameter.addOption(option);
            }
         }
         catch (OptionParserException e)
         {
            logger.log(Level.SEVERE, "Error while parsing command option", e);
View Full Code Here

    private static AeshCommandContainer doGenerateCommandLineParser(Object commandObject,
                                                                    boolean clazzIsaCommand, boolean isChild) throws CommandLineParserException {
        Class clazz = commandObject.getClass();
        CommandDefinition command = (CommandDefinition) clazz.getAnnotation(CommandDefinition.class);
        if(command != null) {
            ProcessedCommand processedCommand = new ProcessedCommandBuilder()
                    .name(command.name())
                    .description(command.description())
                    .validator(command.validator())
                    .resultHandler(command.resultHandler()).create();

            processCommand(processedCommand, clazz);

            if(clazzIsaCommand)
                return new AeshCommandContainer(
                        new CommandLineParserBuilder()
                                .processedCommand(processedCommand)
                                .command((Command) commandObject)
                                .create());
            else
                return new AeshCommandContainer(
                        new CommandLineParserBuilder()
                                .processedCommand(processedCommand)
                                .create());
        }
        GroupCommandDefinition groupCommand = (GroupCommandDefinition) clazz.getAnnotation(GroupCommandDefinition.class);
        if(groupCommand != null) {
            ProcessedCommand processedGroupCommand = new ProcessedCommandBuilder()
                    .name(groupCommand.name())
                    .description(groupCommand.description())
                    .validator(groupCommand.validator())
                    .resultHandler(groupCommand.resultHandler())
                    .create();
View Full Code Here

    }

    private AeshCommandLineParser generateParser() throws CommandLineParserException {
        if(command == null)
            throw new CommandLineParserException("Command object is null, cannot create command");
        ProcessedCommand processedCommand = generateProcessedCommand();
        AeshCommandLineParser parser = new AeshCommandLineParser(processedCommand, command);
        if(children != null) {
            for(CommandBuilder builder : children) {
                parser.addChildParser(builder.generateParser());
            }
View Full Code Here

   }

   public CommandLineParser generateParser(CommandController command, ShellContext shellContext,
            Map<String, InputComponent<?, ?>> inputs)
   {
      ProcessedCommand processedCommand = generateCommand(command, shellContext, inputs);
      return new ForgeCommandLineParser(processedCommand, this, inputs);
   }
View Full Code Here

   private ProcessedCommand generateCommand(final CommandController command, final ShellContext shellContext,
            final Map<String, InputComponent<?, ?>> inputs)
   {
      UICommandMetadata metadata = (command instanceof WizardCommandController) ? ((WizardCommandController) command)
               .getInitialMetadata() : command.getMetadata();
      ProcessedCommand parameter = new ProcessedCommand(ShellUtil.shellifyName(metadata.getName()),
               metadata.getDescription(), ForgeCommandValidator.INSTANCE);

      for (final InputComponent<?, ?> input : inputs.values())
      {
         final Object defaultValue = InputComponents.getValueFor(input);
         final boolean isMultiple = input instanceof ManyValued;
         final boolean hasValue = (!InputType.CHECKBOX.equals(InputComponents.getInputType(input)) && !Boolean.class
                  .isAssignableFrom(input.getValueType()));
         try
         {
            OptionBuilder optionBuilder = new OptionBuilder();

            optionBuilder.name(input.getName())
                     .addDefaultValue(defaultValue == null ? null : defaultValue.toString())
                     .description(input.getLabel())
                     .hasMultipleValues(isMultiple)
                     .hasValue(hasValue)
                     .type(input.getValueType());

            if (input.isRequired() && !input.hasDefaultValue() && !input.hasValue())
            {
               optionBuilder.required(true).renderer(OptionRenderers.REQUIRED);
            }
            OptionCompleter<CompleterInvocation> completer = OptionCompleterFactory.getCompletionFor(
                     input, shellContext, converterFactory);
            optionBuilder.completer(completer);
            optionBuilder.activator(new OptionActivator()
            {
               @Override
               public boolean isActivated(ProcessedCommand processedCommand)
               {
                  return input.isEnabled();
               }
            }).validator(new OptionValidator<ValidatorInvocation<Object>>()
            {
               @Override
               public void validate(ValidatorInvocation<Object> validatorInvocation) throws OptionValidatorException
               {
                  Object value = validatorInvocation.getValue();
                  InputComponents.setValueFor(converterFactory, input, value);
                  for (UIMessage message : command.validate(input))
                  {
                     if (message.getSource() == input && message.getSeverity() == Severity.ERROR)
                     {
                        throw new OptionValidatorException(message.getDescription());
                     }
                  }
               }
            }).converter(new Converter<Object, ConverterInvocation>()
            {
               @Override
               public Object convert(ConverterInvocation converterInvocation) throws OptionValidatorException
               {
                  String value = converterInvocation.getInput();
                  return InputComponents.convertToUIInputValue(converterFactory, input, value);
               }
            }).valueSeparator(' ');

            if (input.getShortName() != InputComponents.DEFAULT_SHORT_NAME)
            {
               optionBuilder.shortName(input.getShortName());
            }
            ProcessedOption option = optionBuilder.create();
            if (ARGUMENTS_INPUT_NAME.equals(input.getName()))
            {
               parameter.setArgument(option);
            }
            else
            {
               parameter.addOption(option);
            }
         }
         catch (OptionParserException e)
         {
            logger.log(Level.SEVERE, "Error while parsing command option", e);
View Full Code Here

   }

   public CommandLineParser generateParser(CommandController command, ShellContext shellContext,
            Map<String, InputComponent<?, ?>> inputs)
   {
      ProcessedCommand processedCommand = generateCommand(command, shellContext, inputs);
      return new ForgeCommandLineParser(processedCommand, this, inputs);
   }
View Full Code Here

   private ProcessedCommand generateCommand(final CommandController command, final ShellContext shellContext,
            final Map<String, InputComponent<?, ?>> inputs)
   {
      UICommandMetadata metadata = (command instanceof WizardCommandController) ? ((WizardCommandController) command)
               .getInitialMetadata() : command.getMetadata();
      final ProcessedCommand parameter = new ProcessedCommand(ShellUtil.shellifyName(metadata.getName()),
               metadata.getDescription(), (CommandValidator<?>) null);

      for (Entry<String,InputComponent<?, ?>> entry: inputs.entrySet()) {
         final String inputName = entry.getKey();
         final InputComponent<?, ?> input = entry.getValue();
         final Object defaultValue = InputComponents.getValueFor(input);
         final boolean isMultiple = input instanceof ManyValued;
         final boolean hasValue = (!InputType.CHECKBOX.equals(InputComponents.getInputType(input)) && !Boolean.class
                  .isAssignableFrom(input.getValueType()));
         try
         {
            OptionBuilder optionBuilder = new OptionBuilder();

            optionBuilder.name(inputName)
                     .addDefaultValue(defaultValue == null ? null : defaultValue.toString())
                     .description(input.getLabel())
                     .hasMultipleValues(isMultiple)
                     .hasValue(hasValue)
                     .type(input.getValueType());

            if (input.isRequired() && !input.hasDefaultValue() && !input.hasValue())
            {
               optionBuilder.renderer(OptionRenderers.REQUIRED);
            }
            OptionCompleter<CompleterInvocation> completer = OptionCompleterFactory.getCompletionFor(
                     input, shellContext, converterFactory);
            optionBuilder.completer(completer);
            optionBuilder.activator(new OptionActivator()
            {
               @Override
               public boolean isActivated(ProcessedCommand processedCommand)
               {
                  return input.isEnabled();
               }
            }).validator(new OptionValidator<ValidatorInvocation<Object, Object>>()
            {
               @Override
               public void validate(ValidatorInvocation<Object, Object> validatorInvocation)
                        throws OptionValidatorException
               {
                  Object value = validatorInvocation.getValue();
                  InputComponents.setValueFor(converterFactory, input, value);
                  for (UIMessage message : command.validate(input))
                  {
                     if (message.getSource() == input && message.getSeverity() == Severity.ERROR)
                     {
                        throw new OptionValidatorException(message.getDescription());
                     }
                  }
               }
            }).converter(new Converter<Object, ConverterInvocation>()
            {
               @Override
               public Object convert(ConverterInvocation converterInvocation) throws OptionValidatorException
               {
                  String value = converterInvocation.getInput();
                  return InputComponents.convertToUIInputValue(converterFactory, input, value);
               }
            }).valueSeparator(' ');

            if (input.getShortName() != InputComponents.DEFAULT_SHORT_NAME)
            {
               optionBuilder.shortName(input.getShortName());
            }
            ProcessedOption option = optionBuilder.create();
            if (ARGUMENTS_INPUT_NAME.equals(input.getName()))
            {
               parameter.setArgument(option);
            }
            else
            {
               parameter.addOption(option);
            }
         }
         catch (OptionParserException e)
         {
            logger.log(Level.SEVERE, "Error while parsing command option", e);
View Full Code Here

   }

   public CommandLineParser generateParser(UICommand command, ShellContext shellContext,
            Map<String, InputComponent<?, Object>> inputs)
   {
      ProcessedCommand processedCommand = generateCommand(command, shellContext, inputs);
      return new ForgeCommandLineParser(processedCommand, this, inputs);
   }
View Full Code Here

TOP

Related Classes of org.jboss.aesh.cl.internal.ProcessedCommand

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.