tizen 2.3 release
[framework/web/wearable/wrt-security.git] / ace / engine / Policy.cpp
1 /*
2  * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
3  *
4  *    Licensed under the Apache License, Version 2.0 (the "License");
5  *    you may not use this file except in compliance with the License.
6  *    You may obtain a copy of the License at
7  *
8  *        http://www.apache.org/licenses/LICENSE-2.0
9  *
10  *    Unless required by applicable law or agreed to in writing, software
11  *    distributed under the License is distributed on an "AS IS" BASIS,
12  *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  *    See the License for the specific language governing permissions and
14  *    limitations under the License.
15  */
16 //
17 //
18 //
19 //  @ Project : Access Control Engine
20 //  @ File Name : Policy.cpp
21 //  @ Date : 2009-05-06
22 //  @ Author : Samsung
23 //
24 //
25
26 #include <ace/Policy.h>
27
28 Policy::~Policy()
29 {
30     for (std::list<const Subject *>::iterator it = subjects->begin();
31          it != subjects->end();
32          ++it) {
33         delete *it;
34     }
35     delete subjects;
36 }
37
38 void Policy::printData()
39 {
40     std::string subject;
41     if (subjects != NULL && subjects->size()) {
42         subject = (subjects->front())->getSubjectId();
43     }
44     std::string algorithm = printCombineAlgorithm(this->combineAlgorithm);
45
46     std::cout << "subject: " << subject << " algorithm: " << algorithm <<
47     std::endl;
48 }
49
50 std::string Policy::printCombineAlgorithm(CombineAlgorithm algorithm)
51 {
52     switch (algorithm) {
53     case DenyOverride:
54         return "DenyOverride";
55     case PermitOverride:
56         return "PermitOverride";
57     case FirstApplicable:
58         return "FirstApplicable";
59     case FirstTargetMatching:
60         return "FirstTargetMatching";
61     default:
62         return "ERROR: Wrong Algorithm";
63     }
64 }
65
66 const char * toString(Policy::CombineAlgorithm algorithm)
67 {
68     switch (algorithm) {
69     case Policy::DenyOverride:
70         return "DenyOverride";
71     case Policy::PermitOverride:
72         return "PermitOverride";
73     case Policy::FirstApplicable:
74         return "FirstApplicable";
75     case Policy::FirstTargetMatching:
76         return "FirstTargetMatching";
77     default:
78         return "ERROR: Wrong Algorithm";
79     }
80 }