libaurum: apply smart pointer wider and extract impl out
[platform/core/uifw/aurum.git] / org.tizen.aurum-bootstrap / src / Commands / GetAttributeCommand.cc
1 #include "GetAttributeCommand.h"
2 #include <loguru.hpp>
3
4 #include <UiDevice.h>
5 #include <UiObject.h>
6
7 GetAttributeCommand::GetAttributeCommand(
8     const ::aurum::ReqGetAttribute* request, ::aurum::RspGetAttribute* response)
9     : mRequest{request}, mResponse{response},  mObjMap{ObjectMapper::getInstance()}
10 {
11 }
12
13 ::grpc::Status GetAttributeCommand::execute()
14 {
15     return grpc::Status::CANCELLED;
16 }
17
18 std::unique_ptr<GetAttributeCommand> GetAttributeCommand::createCommand(const ::aurum::ReqGetAttribute* request,
19                                                                         ::aurum::RspGetAttribute*       response)
20 {
21     ::aurum::ReqGetAttribute_RequestType type = request->attribute();
22
23     LOG_SCOPE_F(INFO, "type : %d", type);
24
25     if (type == ::aurum::ReqGetAttribute_RequestType::ReqGetAttribute_RequestType_VISIBLE)
26         return std::make_unique<GetVisibleAttributeCommand>(request, response);
27     else if (type == ::aurum::ReqGetAttribute_RequestType::ReqGetAttribute_RequestType_FOCUSABLE)
28         return std::make_unique<GetFocusableAttributeCommand>(request, response);
29     else if (type == ::aurum::ReqGetAttribute_RequestType::ReqGetAttribute_RequestType_FOCUSED)
30         return std::make_unique<GetFocusedAttributeCommand>(request, response);
31     else if (type == ::aurum::ReqGetAttribute_RequestType::ReqGetAttribute_RequestType_ENABLED)
32         return std::make_unique<GetEnabledAttributeCommand>(request, response);
33     else if (type == ::aurum::ReqGetAttribute_RequestType::ReqGetAttribute_RequestType_CLICKABLE)
34         return std::make_unique<GetClickableAttributeCommand>(request, response);
35     else if (type == ::aurum::ReqGetAttribute_RequestType::ReqGetAttribute_RequestType_SCROLLABLE)
36         return std::make_unique<GetScrollableAttributeCommand>(request, response);
37     else if (type == ::aurum::ReqGetAttribute_RequestType::ReqGetAttribute_RequestType_CHECKABLE)
38         return std::make_unique<GetCheckableAttributeCommand>(request, response);
39     else if (type == ::aurum::ReqGetAttribute_RequestType::ReqGetAttribute_RequestType_CHECKED)
40         return std::make_unique<GetCheckedAttributeCommand>(request, response);
41     else if (type == ::aurum::ReqGetAttribute_RequestType::ReqGetAttribute_RequestType_SELECTED)
42         return std::make_unique<GetSelectedAttributeCommand>(request, response);
43     else if (type == ::aurum::ReqGetAttribute_RequestType::ReqGetAttribute_RequestType_SELECTABLE)
44         return std::make_unique<GetSelectableAttributeCommand>(request, response);
45     else if (type == ::aurum::ReqGetAttribute_RequestType::ReqGetAttribute_RequestType_SHOWING)
46         return std::make_unique<GetShowingAttributeCommand>(request, response);
47     else if (type == ::aurum::ReqGetAttribute_RequestType::ReqGetAttribute_RequestType_ACTIVE)
48         return std::make_unique<GetActiveAttributeCommand>(request, response);
49     else
50         return std::make_unique<GetAttributeCommand>(request, response);
51 }
52
53 ::grpc::Status GetVisibleAttributeCommand::execute()
54 {
55     std::shared_ptr<UiObject> obj = mObjMap->getElement(mRequest->elementid());
56     if (!obj) {
57         mResponse->set_boolvalue(false);
58         mResponse->set_status(aurum::RspStatus::ERROR);
59         return grpc::Status::OK;
60     }
61     mResponse->set_boolvalue(obj->isVisible());
62     mResponse->set_status(aurum::RspStatus::OK);
63     return grpc::Status::OK;
64 }
65
66 ::grpc::Status GetFocusedAttributeCommand::execute()
67 {
68     std::shared_ptr<UiObject> obj = mObjMap->getElement(mRequest->elementid());
69     if (!obj) {
70         mResponse->set_boolvalue(false);
71         mResponse->set_status(aurum::RspStatus::ERROR);
72         return grpc::Status::OK;
73     }
74     mResponse->set_boolvalue(obj->isFocused());
75     mResponse->set_status(aurum::RspStatus::OK);
76     return grpc::Status::OK;
77 }
78
79 ::grpc::Status GetFocusableAttributeCommand::execute()
80 {
81     std::shared_ptr<UiObject> obj = mObjMap->getElement(mRequest->elementid());
82     if (!obj) {
83         mResponse->set_boolvalue(false);
84         mResponse->set_status(aurum::RspStatus::ERROR);
85         return grpc::Status::OK;
86     }
87     mResponse->set_boolvalue(obj->isFocusable());
88     mResponse->set_status(aurum::RspStatus::OK);
89     return grpc::Status::OK;
90 }
91
92 ::grpc::Status GetCheckableAttributeCommand::execute()
93 {
94     std::shared_ptr<UiObject> obj = mObjMap->getElement(mRequest->elementid());
95     if (!obj) {
96         mResponse->set_boolvalue(false);
97         mResponse->set_status(aurum::RspStatus::ERROR);
98         return grpc::Status::OK;
99     }
100     mResponse->set_boolvalue(obj->isCheckable());
101     mResponse->set_status(aurum::RspStatus::OK);
102     return grpc::Status::OK;
103 }
104
105 ::grpc::Status GetCheckedAttributeCommand::execute()
106 {
107     std::shared_ptr<UiObject> obj = mObjMap->getElement(mRequest->elementid());
108     if (!obj) {
109         mResponse->set_boolvalue(false);
110         mResponse->set_status(aurum::RspStatus::ERROR);
111         return grpc::Status::OK;
112     }
113     mResponse->set_boolvalue(obj->isChecked());
114     mResponse->set_status(aurum::RspStatus::OK);
115     return grpc::Status::OK;
116 }
117
118 ::grpc::Status GetEnabledAttributeCommand::execute()
119 {
120     std::shared_ptr<UiObject> obj = mObjMap->getElement(mRequest->elementid());
121     if (!obj) {
122         mResponse->set_boolvalue(false);
123         mResponse->set_status(aurum::RspStatus::ERROR);
124         return grpc::Status::OK;
125     }
126     mResponse->set_boolvalue(obj->isEnabled());
127     mResponse->set_status(aurum::RspStatus::OK);
128     return grpc::Status::OK;
129 }
130
131 ::grpc::Status GetClickableAttributeCommand::execute()
132 {
133     std::shared_ptr<UiObject> obj = mObjMap->getElement(mRequest->elementid());
134     if (!obj) {
135         mResponse->set_boolvalue(false);
136         mResponse->set_status(aurum::RspStatus::ERROR);
137         return grpc::Status::OK;
138     }
139     mResponse->set_boolvalue(obj->isClickable());
140     mResponse->set_status(aurum::RspStatus::OK);
141     return grpc::Status::OK;
142 }
143
144 ::grpc::Status GetScrollableAttributeCommand::execute()
145 {
146     std::shared_ptr<UiObject> obj = mObjMap->getElement(mRequest->elementid());
147     if (!obj) {
148         mResponse->set_boolvalue(false);
149         mResponse->set_status(aurum::RspStatus::ERROR);
150         return grpc::Status::OK;
151     }
152     mResponse->set_boolvalue(obj->isScrollable());
153     mResponse->set_status(aurum::RspStatus::OK);
154     return grpc::Status::OK;
155 }
156
157 ::grpc::Status GetSelectableAttributeCommand::execute()
158 {
159     std::shared_ptr<UiObject> obj = mObjMap->getElement(mRequest->elementid());
160     if (!obj) {
161         mResponse->set_boolvalue(false);
162         mResponse->set_status(aurum::RspStatus::ERROR);
163         return grpc::Status::OK;
164     }
165     mResponse->set_boolvalue(obj->isSelectable());
166     mResponse->set_status(aurum::RspStatus::OK);
167     return grpc::Status::OK;
168 }
169
170 ::grpc::Status GetSelectedAttributeCommand::execute()
171 {
172     std::shared_ptr<UiObject> obj = mObjMap->getElement(mRequest->elementid());
173     if (!obj) {
174         mResponse->set_boolvalue(false);
175         mResponse->set_status(aurum::RspStatus::ERROR);
176         return grpc::Status::OK;
177     }
178     mResponse->set_boolvalue(obj->isSelected());
179     mResponse->set_status(aurum::RspStatus::OK);
180     return grpc::Status::OK;
181 }
182
183
184 ::grpc::Status GetShowingAttributeCommand::execute()
185 {
186     std::shared_ptr<UiObject> obj = mObjMap->getElement(mRequest->elementid());
187     if (!obj) {
188         mResponse->set_boolvalue(false);
189         mResponse->set_status(aurum::RspStatus::ERROR);
190         return grpc::Status::OK;
191     }
192     mResponse->set_boolvalue(obj->isShowing());
193     mResponse->set_status(aurum::RspStatus::OK);
194     return grpc::Status::OK;
195 }
196
197
198
199 ::grpc::Status GetActiveAttributeCommand::execute()
200 {
201     std::shared_ptr<UiObject> obj = mObjMap->getElement(mRequest->elementid());
202     if (!obj) {
203         mResponse->set_boolvalue(false);
204         mResponse->set_status(aurum::RspStatus::ERROR);
205         return grpc::Status::OK;
206     }
207     mResponse->set_boolvalue(obj->isActive());
208     mResponse->set_status(aurum::RspStatus::OK);
209     return grpc::Status::OK;
210 }