bootstrap/aurum: rework GetAttributeCommand
[platform/core/uifw/aurum.git] / bootstrap / server / 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
46         return std::make_unique<GetAttributeCommand>(request, response);
47 }
48
49 ::grpc::Status GetVisibleAttributeCommand::execute()
50 {
51     UiObject* obj = mObjMap->getElement(mRequest->elementid());
52     if (!obj) {
53         mResponse->set_boolvalue(false);
54         mResponse->set_status(aurum::RspStatus::ERROR);
55         return grpc::Status::OK;
56     }
57     mResponse->set_boolvalue(obj->isVisible());
58     mResponse->set_status(aurum::RspStatus::OK);
59     return grpc::Status::OK;
60 }
61
62 ::grpc::Status GetFocusedAttributeCommand::execute()
63 {
64     UiObject* obj = mObjMap->getElement(mRequest->elementid());
65     if (!obj) {
66         mResponse->set_boolvalue(false);
67         mResponse->set_status(aurum::RspStatus::ERROR);
68         return grpc::Status::OK;
69     }
70     mResponse->set_boolvalue(obj->isFocused());
71     mResponse->set_status(aurum::RspStatus::OK);
72     return grpc::Status::OK;
73 }
74
75 ::grpc::Status GetFocusableAttributeCommand::execute()
76 {
77     UiObject* obj = mObjMap->getElement(mRequest->elementid());
78     if (!obj) {
79         mResponse->set_boolvalue(false);
80         mResponse->set_status(aurum::RspStatus::ERROR);
81         return grpc::Status::OK;
82     }
83     mResponse->set_boolvalue(obj->isFocusable());
84     mResponse->set_status(aurum::RspStatus::OK);
85     return grpc::Status::OK;
86 }
87
88 ::grpc::Status GetCheckableAttributeCommand::execute()
89 {
90     UiObject* obj = mObjMap->getElement(mRequest->elementid());
91     if (!obj) {
92         mResponse->set_boolvalue(false);
93         mResponse->set_status(aurum::RspStatus::ERROR);
94         return grpc::Status::OK;
95     }
96     mResponse->set_boolvalue(obj->isCheckable());
97     mResponse->set_status(aurum::RspStatus::OK);
98     return grpc::Status::OK;
99 }
100
101 ::grpc::Status GetCheckedAttributeCommand::execute()
102 {
103     UiObject* obj = mObjMap->getElement(mRequest->elementid());
104     if (!obj) {
105         mResponse->set_boolvalue(false);
106         mResponse->set_status(aurum::RspStatus::ERROR);
107         return grpc::Status::OK;
108     }
109     mResponse->set_boolvalue(obj->isChecked());
110     mResponse->set_status(aurum::RspStatus::OK);
111     return grpc::Status::OK;
112 }
113
114 ::grpc::Status GetEnabledAttributeCommand::execute()
115 {
116     UiObject* obj = mObjMap->getElement(mRequest->elementid());
117     if (!obj) {
118         mResponse->set_boolvalue(false);
119         mResponse->set_status(aurum::RspStatus::ERROR);
120         return grpc::Status::OK;
121     }
122     mResponse->set_boolvalue(obj->isEnabled());
123     mResponse->set_status(aurum::RspStatus::OK);
124     return grpc::Status::OK;
125 }
126
127 ::grpc::Status GetClickableAttributeCommand::execute()
128 {
129     UiObject* obj = mObjMap->getElement(mRequest->elementid());
130     if (!obj) {
131         mResponse->set_boolvalue(false);
132         mResponse->set_status(aurum::RspStatus::ERROR);
133         return grpc::Status::OK;
134     }
135     mResponse->set_boolvalue(obj->isClickable());
136     mResponse->set_status(aurum::RspStatus::OK);
137     return grpc::Status::OK;
138 }
139
140 ::grpc::Status GetScrollableAttributeCommand::execute()
141 {
142     UiObject* obj = mObjMap->getElement(mRequest->elementid());
143     if (!obj) {
144         mResponse->set_boolvalue(false);
145         mResponse->set_status(aurum::RspStatus::ERROR);
146         return grpc::Status::OK;
147     }
148     mResponse->set_boolvalue(obj->isScrollable());
149     mResponse->set_status(aurum::RspStatus::OK);
150     return grpc::Status::OK;
151 }
152
153 ::grpc::Status GetSelectableAttributeCommand::execute()
154 {
155     UiObject* obj = mObjMap->getElement(mRequest->elementid());
156     if (!obj) {
157         mResponse->set_boolvalue(false);
158         mResponse->set_status(aurum::RspStatus::ERROR);
159         return grpc::Status::OK;
160     }
161     mResponse->set_boolvalue(obj->isSelectable());
162     mResponse->set_status(aurum::RspStatus::OK);
163     return grpc::Status::OK;
164 }
165
166 ::grpc::Status GetSelectedAttributeCommand::execute()
167 {
168     UiObject* obj = mObjMap->getElement(mRequest->elementid());
169     if (!obj) {
170         mResponse->set_boolvalue(false);
171         mResponse->set_status(aurum::RspStatus::ERROR);
172         return grpc::Status::OK;
173     }
174     mResponse->set_boolvalue(obj->isSelected());
175     mResponse->set_status(aurum::RspStatus::OK);
176     return grpc::Status::OK;
177 }