1 /*
2  Copyright (C) 2010-2014 Kristian Duske
3 
4  This file is part of TrenchBroom.
5 
6  TrenchBroom is free software: you can redistribute it and/or modify
7  it under the terms of the GNU General Public License as published by
8  the Free Software Foundation, either version 3 of the License, or
9  (at your option) any later version.
10 
11  TrenchBroom is distributed in the hope that it will be useful,
12  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  GNU General Public License for more details.
15 
16  You should have received a copy of the GNU General Public License
17  along with TrenchBroom. If not, see <http://www.gnu.org/licenses/>.
18  */
19 
20 #include "EntityAttributeSnapshot.h"
21 
22 #include "Model/AttributableNode.h"
23 
24 namespace TrenchBroom {
25     namespace Model {
EntityAttributeSnapshot(const AttributeName & name,const AttributeValue & value)26         EntityAttributeSnapshot::EntityAttributeSnapshot(const AttributeName& name, const AttributeValue& value) :
27         m_name(name),
28         m_value(value),
29         m_present(true) {}
30 
EntityAttributeSnapshot(const AttributeName & name)31         EntityAttributeSnapshot::EntityAttributeSnapshot(const AttributeName& name) :
32         m_name(name),
33         m_value(""),
34         m_present(false) {}
35 
restore(AttributableNode * node) const36         void EntityAttributeSnapshot::restore(AttributableNode* node) const {
37             if (!m_present)
38                 node->removeAttribute(m_name);
39             else
40                 node->addOrUpdateAttribute(m_name, m_value);
41         }
42     }
43 }
44