/**
   * Resolves HTTP method name from method name. If method name or first camel-case word of a method
   * equals to a HTTP method, it will be used as that HTTP methods.
   */
  protected String resolveHttpMethodFromMethodName(String methodName) {
    int i = 0;

    while (i < methodName.length()) {
      if (CharUtil.isUppercaseAlpha(methodName.charAt(i))) {
        break;
      }
      i++;
    }

    String name = methodName.substring(0, i).toUpperCase();

    if (name.equals(Action.CONNECT)) {
      return Action.CONNECT;
    }

    if (name.equals(Action.DELETE)) {
      return Action.DELETE;
    }

    if (name.equals(Action.GET)) {
      return Action.GET;
    }

    if (name.equals(Action.HEAD)) {
      return Action.HEAD;
    }

    if (name.equals(Action.OPTIONS)) {
      return Action.OPTIONS;
    }

    if (name.equals(Action.PATCH)) {
      return Action.PATCH;
    }

    if (name.equalsIgnoreCase(Action.POST)) {
      return Action.POST;
    }

    if (name.equals(Action.PUT)) {
      return Action.PUT;
    }

    if (name.equals(Action.TRACE)) {
      return Action.TRACE;
    }

    return null;
  }
Exemple #2
0
 @Action
 public RawData view() {
   String result = "this is some raw direct result";
   byte[] bytes = CharUtil.toAsciiByteArray(result.toCharArray());
   return new RawData(bytes, MimeTypes.MIME_TEXT_HTML);
 }
Exemple #3
0
  /**
   * {@inheritDoc}
   *
   * @see JdtFormatter#parse(String, String)
   */
  public DateTimeStamp parse(String value, String format) {
    char[] valueChars = value.toCharArray();
    char[] formatChars = format.toCharArray();

    int i = 0, j = 0;
    int valueLen = valueChars.length;
    int formatLen = formatChars.length;

    // detect if separators are used
    boolean useSeparators = true;

    if (valueLen == formatLen) {
      useSeparators = false;

      for (char valueChar : valueChars) {
        if (CharUtil.isDigit(valueChar) == false) {
          useSeparators = true;
          break;
        }
      }
    }

    DateTimeStamp time = new DateTimeStamp();
    StringBuilder sb = new StringBuilder();
    while (true) {
      int n = findPattern(formatChars, i);
      if (n != -1) { // pattern founded
        int patternLen = patterns[n].length;
        i += patternLen;
        sb.setLength(0);
        if (useSeparators == false) {
          for (int k = 0; k < patternLen; k++) {
            sb.append(valueChars[j++]);
          }
        } else {
          char next = 0xFFFF;
          if (i < formatLen) {
            next = formatChars[i]; // next = delimiter
          }
          while ((j < valueLen) && (valueChars[j] != next)) {
            char scj = valueChars[j];
            if ((scj != ' ') && (scj != '\t')) { // ignore surrounding whitespaces
              sb.append(valueChars[j]);
            }
            j++;
          }
        }

        parseValue(n, sb.toString(), time);
      } else {
        if (!useSeparators) {
          throw new IllegalArgumentException("Invalid value: " + value);
        }
        if (formatChars[i] == valueChars[j]) {
          j++;
        }
        i++;
      }
      if ((i == formatLen) || (j == valueLen)) {
        break;
      }
    }
    return time;
  }