View Javadoc

    1   /*
    2    *  Licensed to the Apache Software Foundation (ASF) under one
    3    *  or more contributor license agreements.  See the NOTICE file
    4    *  distributed with this work for additional information
    5    *  regarding copyright ownership.  The ASF licenses this file
    6    *  to you under the Apache License, Version 2.0 (the
    7    *  "License"); you may not use this file except in compliance
    8    *  with the License.  You may obtain a copy of the License at
    9    *
    10   *    http://www.apache.org/licenses/LICENSE-2.0
    11   *
    12   *  Unless required by applicable law or agreed to in writing,
    13   *  software distributed under the License is distributed on an
    14   *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    15   *  KIND, either express or implied.  See the License for the
    16   *  specific language governing permissions and limitations
    17   *  under the License.
    18   *
    19   */
    20  package org.apache.mina.coap;
    21
    22  /**
    23   * Extract of the CoAP RFC :
    24   *
    25   * <pre>
    26   *     |    1 | GET    | [RFCXXXX] |
    27   *     |    2 | POST   | [RFCXXXX] |
    28   *     |    3 | PUT    | [RFCXXXX] |
    29   *     |    4 | DELETE | [RFCXXXX] |
    30   *
    31   *     |   65 | 2.01 Created                    | [RFCXXXX] |
    32   *     |   66 | 2.02 Deleted                    | [RFCXXXX] |
    33   *     |   67 | 2.03 Valid                      | [RFCXXXX] |
    34   *     |   68 | 2.04 Changed                    | [RFCXXXX] |
    35   *     |   69 | 2.05 Content                    | [RFCXXXX] |
    36   *     |  128 | 4.00 Bad Request                | [RFCXXXX] |
    37   *     |  129 | 4.01 Unauthorized               | [RFCXXXX] |
    38   *     |  130 | 4.02 Bad Option                 | [RFCXXXX] |
    39   *     |  131 | 4.03 Forbidden                  | [RFCXXXX] |
    40   *     |  132 | 4.04 Not Found                  | [RFCXXXX] |
    41   *     |  133 | 4.05 Method Not Allowed         | [RFCXXXX] |
    42   *     |  134 | 4.06 Not Acceptable             | [RFCXXXX] |
    43   *     |  140 | 4.12 Precondition Failed        | [RFCXXXX] |
    44   *     |  141 | 4.13 Request Entity Too Large   | [RFCXXXX] |
    45   *     |  143 | 4.15 Unsupported Content-Format | [RFCXXXX] |
    46   *     |  160 | 5.00 Internal Server Error      | [RFCXXXX] |
    47   *     |  161 | 5.01 Not Implemented            | [RFCXXXX] |
    48   *     |  162 | 5.02 Bad Gateway                | [RFCXXXX] |
    49   *     |  163 | 5.03 Service Unavailable        | [RFCXXXX] |
    50   *     |  164 | 5.04 Gateway Timeout            | [RFCXXXX] |
    51   *     |  165 | 5.05 Proxying Not Supported     | [RFCXXXX] |
    52   * </pre>
    53   *
    54   * @author <a href="http://mina.apache.org">Apache MINA Project</a>
    55   */
    56  public enum CoapCode {
    57      GET("GET", 1), POST("POST", 2), PUT("PUT", 3), DELETE("DELETE", 4), CREATED("2.01", 65), DELETED("2.02", 66),
    58      VALID("2.03", 67), CHANGED("2.04", 68), CONTENT("2.05", 69), BAD_REQUEST("4.00", 128), UNAUTHORIZED("4.01", 129),
    59      BAD_OPTION("4.02", 130), FORBIDDEN("4.03", 131), NOT_FOUND("4.04", 132), METHOD_NOT_ALLOWED("4.05", 133),
    60      NOT_ACCEPTABLE("4.06", 134), PRECONDITION_FAILED("4.12", 140), REQUEST_ENTITY_TOO_LARGE("4.13", 141),
    61      UNSUPPORTED_CONTENT_FORMAT("4.15", 143), INTERNAL_SERVER_ERROR("5.00", 160), NOT_IMPLEMENTED("5.01", 161),
    62      BAD_GATEWAY("5.02", 162), SERVICE_UNAVAILABLE("5.03", 163), GATEWAY_TIMEOUT("5.04", 164), PROXYING_NOT_SUPPORTED(
    63              "5.05", 165)
    64
    65      ;
    66
    67      private final String text;
    68      private final int code;
    69
    70      private CoapCode(String text, int code) {
    71          this.text = text;
    72          this.code = code;
    73      }
    74
    75      public String getText() {
    76          return text;
    77      }
    78
    79      public int getCode() {
    80          return code;
    81      }
    82
    83      /**
    84       * Find the {@link CoapCode} for the given value code (<code>null</code> if not found)
    85       */
    86      public static CoapCode fromCode(int code) {
    87          for (CoapCode t : CoapCode.values()) {
    88              if (t.getCode() == code) {
    89                  return t;
    90              }
    91          }
    92          return null;
    93      }
    94  }