yat/omic/GFF3.cc

Code
Comments
Other
Rev Date Author Line
2482 24 Apr 11 peter 1 // $Id$
2482 24 Apr 11 peter 2
2482 24 Apr 11 peter 3 /*
4252 18 Nov 22 peter 4   Copyright (C) 2011, 2012, 2020, 2022 Peter Johansson
2482 24 Apr 11 peter 5
2482 24 Apr 11 peter 6   This file is part of the yat library, http://dev.thep.lu.se/yat
2482 24 Apr 11 peter 7
2482 24 Apr 11 peter 8   The yat library is free software; you can redistribute it and/or
2482 24 Apr 11 peter 9   modify it under the terms of the GNU General Public License as
2482 24 Apr 11 peter 10   published by the Free Software Foundation; either version 3 of the
2482 24 Apr 11 peter 11   License, or (at your option) any later version.
2482 24 Apr 11 peter 12
2482 24 Apr 11 peter 13   The yat library is distributed in the hope that it will be useful,
2482 24 Apr 11 peter 14   but WITHOUT ANY WARRANTY; without even the implied warranty of
2482 24 Apr 11 peter 15   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
2482 24 Apr 11 peter 16   General Public License for more details.
2482 24 Apr 11 peter 17
2482 24 Apr 11 peter 18   You should have received a copy of the GNU General Public License
2482 24 Apr 11 peter 19   along with yat. If not, see <http://www.gnu.org/licenses/>.
2482 24 Apr 11 peter 20 */
2482 24 Apr 11 peter 21
2881 18 Nov 12 peter 22 #include <config.h>
2881 18 Nov 12 peter 23
2482 24 Apr 11 peter 24 #include "GFF3.h"
2482 24 Apr 11 peter 25
2482 24 Apr 11 peter 26 #include "yat/utility/split.h"
2482 24 Apr 11 peter 27
2482 24 Apr 11 peter 28 #include <map>
2482 24 Apr 11 peter 29 #include <string>
2482 24 Apr 11 peter 30 #include <vector>
2482 24 Apr 11 peter 31
2482 24 Apr 11 peter 32 namespace theplu {
2482 24 Apr 11 peter 33 namespace yat {
2482 24 Apr 11 peter 34 namespace omic {
2482 24 Apr 11 peter 35
2482 24 Apr 11 peter 36   void GFF3::add_attribute(std::map<std::string, std::string>& m,
2482 24 Apr 11 peter 37                            const std::string& str) const
2482 24 Apr 11 peter 38   {
2482 24 Apr 11 peter 39     std::vector<std::string> v;
2482 24 Apr 11 peter 40     utility::split(v, str, '=');
3870 24 Feb 20 peter 41     if (v.size() == 1) {
3870 24 Feb 20 peter 42       if (v[0] == "")
3870 24 Feb 20 peter 43         return;
4252 18 Nov 22 peter 44       m[std::move(v[0])] = "";
3870 24 Feb 20 peter 45     }
4252 18 Nov 22 peter 46     else
4252 18 Nov 22 peter 47       m[std::move(v[0])] = std::move(v[1]);
2482 24 Apr 11 peter 48   }
2482 24 Apr 11 peter 49
2482 24 Apr 11 peter 50 }}}