2 * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
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
8 * http://www.apache.org/licenses/LICENSE-2.0
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.
17 * @file plugin_objects.h
18 * @author Grzegorz Krawczyk (g.krawczyk@samgsung.com)
23 #include <installer_log.h>
24 #include "plugin_objects.h"
27 const char* SEPARATOR = ".";
28 const std::string GLOBAL_OBJECT_NAME = "GLOBAL_OBJECT";
30 std::string normalizeName(const std::string& objectName)
32 if (objectName.empty()) {
33 _E("Normalize name, name size is 0");
37 if (!objectName.compare(0, GLOBAL_OBJECT_NAME.size(),
43 //each object in storage has name started from $GLOBAL_OBJECT_NAME$
44 return GLOBAL_OBJECT_NAME + std::string(SEPARATOR) + objectName;
47 std::string normalizeName(const std::string& objectName,
48 const std::string& parentName)
50 if (objectName.empty() || parentName.empty()) {
51 _E("Normalize name, name size or parent name size is 0");
55 std::string normalizedName;
56 normalizedName = normalizeName(parentName) +
57 std::string(SEPARATOR) + objectName;
59 return normalizedName;
63 PluginObjects::PluginObjects()
65 m_implemented = ObjectsPtr(new Objects());
66 m_dependent = ObjectsPtr(new Objects());
69 PluginObjects::ObjectsPtr PluginObjects::getImplementedObject() const
74 PluginObjects::ObjectsPtr PluginObjects::getDependentObjects() const
79 void PluginObjects::addObjects(const std::string& parentName,
80 const std::string& name)
82 addImplementedObject(normalizeName(name, parentName));
83 addDependentObject(normalizeName(parentName));
86 void PluginObjects::addDependentObject(const std::string& value)
88 if (!value.compare(GLOBAL_OBJECT_NAME)) {
89 //dont add dependency to GLOBAL_OBJECT
92 m_dependent->insert(value);
95 bool PluginObjects::hasObject(const std::string& name) const
97 return m_implemented->find(name) != m_implemented->end();
100 void PluginObjects::addImplementedObject(const std::string& value)
102 m_implemented->insert(value);