Implements OIC/OCF resource models for cloud.
[platform/upstream/iotivity.git] / cloud / stack / src / main / java / org / iotivity / cloud / base / protocols / coap / CoapRequest.java
1 /*
2  * //******************************************************************
3  * //
4  * // Copyright 2016 Samsung Electronics All Rights Reserved.
5  * //
6  * //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
7  * //
8  * // Licensed under the Apache License, Version 2.0 (the "License");
9  * // you may not use this file except in compliance with the License.
10  * // You may obtain a copy of the License at
11  * //
12  * //      http://www.apache.org/licenses/LICENSE-2.0
13  * //
14  * // Unless required by applicable law or agreed to in writing, software
15  * // distributed under the License is distributed on an "AS IS" BASIS,
16  * // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  * // See the License for the specific language governing permissions and
18  * // limitations under the License.
19  * //
20  * //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
21  */
22 package org.iotivity.cloud.base.protocols.coap;
23
24 import org.iotivity.cloud.base.protocols.enums.RequestMethod;
25 import org.iotivity.cloud.base.protocols.enums.ResponseStatus;
26
27 public class CoapRequest extends CoapMessage {
28     private RequestMethod mRequestMethod;
29
30     public CoapRequest(RequestMethod requestMethod) {
31         mRequestMethod = requestMethod;
32     }
33
34     public CoapRequest(int code) {
35         switch (code) {
36             case 1:
37                 mRequestMethod = RequestMethod.GET;
38                 break;
39             case 2:
40                 mRequestMethod = RequestMethod.POST;
41                 break;
42             case 3:
43                 mRequestMethod = RequestMethod.PUT;
44                 break;
45             case 4:
46                 mRequestMethod = RequestMethod.DELETE;
47                 break;
48             default:
49                 throw new IllegalArgumentException("Invalid CoapRequest code");
50         }
51     }
52
53     @Override
54     public int getCode() {
55         switch (mRequestMethod) {
56             case GET:
57                 return 1;
58             case POST:
59                 return 2;
60             case PUT:
61                 return 3;
62             case DELETE:
63                 return 4;
64             default:
65                 break;
66
67         }
68         return 0;
69     }
70
71     @Override
72     public RequestMethod getMethod() {
73         return mRequestMethod;
74     }
75
76     // This request object does not support response status
77     @Override
78     public ResponseStatus getStatus() {
79         return ResponseStatus.METHOD_NOT_ALLOWED;
80     }
81 }