code: public String getOriginalValue(ParsedCommandLine parsedLine, boolean required) throws CommandFormatException {
          String value = null;
          if(parsedLine.hasProperties()) {
              if(index >= 0) {
                  List<String> others = parsedLine.getOtherProperties();
                  if(others.size() > index) {
                      return others.get(index);
                  }
              }
  
              value = parsedLine.getPropertyValue(fullName);
              if(value == null && shortName != null) {
                  value = parsedLine.getPropertyValue(shortName);
              }
          }
  
          if(required && value == null && !isPresent(parsedLine)) {
              StringBuilder buf = new StringBuilder();
              buf.append("Required argument ");
              buf.append('\'').append(fullName).append('\'');
              buf.append(" is missing.");
              throw new CommandFormatException(buf.toString());
          }
          return value;
      }
docs: Returns value as it appeared on the command line with escape sequences
  and system properties not resolved. The variables, though, are resolved
  during the initial parsing of the command line.
  
  @param parsedLine  parsed command line
  @param required  whether the argument is required
  @return  argument value as it appears on the command line
  @throws CommandFormatException  in case the required argument is missing