~ubuntu-branches/ubuntu/wily/qgis/wily

« back to all changes in this revision

Viewing changes to src/core/pal/palexception.h

  • Committer: Bazaar Package Importer
  • Author(s): Johan Van de Wauw
  • Date: 2010-07-11 20:23:24 UTC
  • mfrom: (3.1.4 squeeze)
  • Revision ID: james.westby@ubuntu.com-20100711202324-5ktghxa7hracohmr
Tags: 1.4.0+12730-3ubuntu1
* Merge from Debian unstable (LP: #540941).
* Fix compilation issues with QT 4.7
* Add build-depends on libqt4-webkit-dev 

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 *   libpal - Automated Placement of Labels Library
 
3
 *
 
4
 *   Copyright (C) 2008 Maxence Laurent, MIS-TIC, HEIG-VD
 
5
 *                      University of Applied Sciences, Western Switzerland
 
6
 *                      http://www.hes-so.ch
 
7
 *
 
8
 *   Contact:
 
9
 *      maxence.laurent <at> heig-vd <dot> ch
 
10
 *    or
 
11
 *      eric.taillard <at> heig-vd <dot> ch
 
12
 *
 
13
 * This file is part of libpal.
 
14
 *
 
15
 * libpal is free software: you can redistribute it and/or modify
 
16
 * it under the terms of the GNU General Public License as published by
 
17
 * the Free Software Foundation, either version 3 of the License, or
 
18
 * (at your option) any later version.
 
19
 *
 
20
 * libpal is distributed in the hope that it will be useful,
 
21
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 
22
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
23
 * GNU General Public License for more details.
 
24
 *
 
25
 * You should have received a copy of the GNU General Public License
 
26
 * along with libpal.  If not, see <http://www.gnu.org/licenses/>.
 
27
 *
 
28
 */
 
29
 
 
30
#ifdef HAVE_CONFIG_H
 
31
#include <config.h>
 
32
#endif
 
33
 
 
34
#ifndef PAL_EXCEPTION_H
 
35
#define PAL_EXCEPTION_H
 
36
 
 
37
#include <exception>
 
38
 
 
39
 
 
40
namespace pal
 
41
{
 
42
 
 
43
  /** \brief Various Exceptions
 
44
   */
 
45
  class PalException
 
46
  {
 
47
    public:
 
48
 
 
49
      /** \brief Thrown when a feature is not yet implemented
 
50
      */
 
51
      class NotImplemented : public std::exception
 
52
      {
 
53
          const char * what() const throw()
 
54
          {
 
55
            return "Not yet implemented... sorry";
 
56
          }
 
57
      };
 
58
 
 
59
      /** \brief Try to access an unknown feature
 
60
      */
 
61
      class UnknownFeature : public std::exception
 
62
      {
 
63
          const char * what() const throw()
 
64
          {
 
65
            return "Feature not found";
 
66
          }
 
67
      };
 
68
 
 
69
      /** \brief Try to access an unknown layer
 
70
      */
 
71
      class UnknownLayer : public std::exception
 
72
      {
 
73
          const char * what() const throw()
 
74
          {
 
75
            return "Layer not found";
 
76
          }
 
77
      };
 
78
 
 
79
      /** \brief layer already exists
 
80
      */
 
81
      class LayerExists : public std::exception
 
82
      {
 
83
          const char * what() const throw()
 
84
          {
 
85
            return "Layers names must be unique";
 
86
          }
 
87
      };
 
88
 
 
89
      /** \brief features already exists
 
90
      */
 
91
      class FeatureExists : public std::exception
 
92
      {
 
93
          const char * what() const throw()
 
94
          {
 
95
            return "Features IDs must be unique within a layer";
 
96
          }
 
97
      };
 
98
 
 
99
      /** \brief thrown when a value is not in the valid scale range
 
100
       *
 
101
       *  It can be thrown by :
 
102
       *
 
103
       *    - pal::Layer::setFeatureLabelSize if either the height or the width of the label is < 0
 
104
       *
 
105
       *    - pal::Layer::setFeatureDistlabel is distlable < 0
 
106
       */
 
107
      class ValueNotInRange : public std::exception
 
108
      {
 
109
          const char * what() const throw()
 
110
          {
 
111
            return "value not allowed";
 
112
          }
 
113
      };
 
114
  };
 
115
 
 
116
} // namespace
 
117
 
 
118
#endif