text: /*
   Copyright (C) 2010-2017 Kristian Duske
  
   This file is part of TrenchBroom.
  
   TrenchBroom is free software: you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation, either version 3 of the License, or
   (at your option) any later version.
  
   TrenchBroom is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.
  
   You should have received a copy of the GNU General Public License
   along with TrenchBroom. If not, see <http://www.gnu.org/licenses/>.
   */
  
  #ifndef TrenchBroom_IssueQuickFix
  #define TrenchBroom_IssueQuickFix
  
  #include "Model/IssueType.h"
  
  #include <string>
  #include <vector>
  
  namespace TrenchBroom {
      namespace Model {
          class Issue;
          class MapFacade;
  
          class IssueQuickFix {
          private:
              IssueType m_issueType;
              std::string m_description;
          protected:
              IssueQuickFix(IssueType issueType, const std::string& description);
          public:
              virtual ~IssueQuickFix();
  
              const std::string& description() const;
  
              void apply(MapFacade* facade, const std::vector<Issue*>& issues) const;
          private:
              virtual void doApply(MapFacade* facade, const std::vector<Issue*>& issues) const;
              virtual void doApply(MapFacade* facade, const Issue* issue) const;
          };
      }
  }
  
  #endif /* defined(TrenchBroom_IssueQuickFix) */
  