/* core/label.cc This file is part of the Osirion project and is distributed under the terms of the GNU General Public License version 2 */ #include "core/label.h" namespace core { bool Label::compare(const Label *first, const Label *second) { if (first->label() < second->label()) { return true; } else if (first->label() > second->label()) { return false; } else { return (first->label().length() < second->label().length()); } } Label::Label() { } Label::Label(const char *label) { if (label) labelstr.assign(label); } Label::Label(const std::string & label) { labelstr.assign(label); } Label::~Label() { labelstr.clear(); namestr.clear(); } void Label::set_label(const std::string & label) { labelstr.assign(label); aux::to_label(labelstr); } void Label::set_label(const char *label) { if (label) { labelstr.assign(label); aux::to_label(labelstr); } else { labelstr.clear(); } } void Label::set_name(const std::string & name) { namestr.assign(name); aux::strip_quotes(namestr); } void Label::set_name(const char *name) { if (name) { namestr.assign(name); aux::strip_quotes(namestr); } else { namestr.clear(); } } } // namespace core