Statistics
| Revision:

svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.compat.cdc / org.gvsig.fmap.geometry / org.gvsig.fmap.geometry.api / src / main / java / org / gvsig / fmap / geom / type / GeometryTypeNotSupportedException.java @ 40559

History | View | Annotate | Download (4.22 KB)

1
/**
2
 * gvSIG. Desktop Geographic Information System.
3
 *
4
 * Copyright (C) 2007-2013 gvSIG Association.
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 3
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program 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 this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 * For any additional information, do not hesitate to contact us
22
 * at info AT gvsig.com, or visit our website www.gvsig.com.
23
 */
24
/* gvSIG. Geographic Information System of the Valencian Government
25
*
26
* Copyright (C) 2007-2008 Infrastructures and Transports Department
27
* of the Valencian Government (CIT)
28
* 
29
* This program is free software; you can redistribute it and/or
30
* modify it under the terms of the GNU General Public License
31
* as published by the Free Software Foundation; either version 2
32
* of the License, or (at your option) any later version.
33
* 
34
* This program is distributed in the hope that it will be useful,
35
* but WITHOUT ANY WARRANTY; without even the implied warranty of
36
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
37
* GNU General Public License for more details.
38
* 
39
* You should have received a copy of the GNU General Public License
40
* along with this program; if not, write to the Free Software
41
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
42
* MA  02110-1301, USA.
43
* 
44
*/
45

    
46

    
47
package org.gvsig.fmap.geom.type;
48

    
49
import java.util.HashMap;
50
import java.util.Map;
51

    
52
import org.gvsig.fmap.geom.GeometryException;
53

    
54
/**
55
 * This exception is raised when the someone tries to access a geometry 
56
 * type that is not supported.
57
 * 
58
 * @author jiyarza
59
 */
60
public class GeometryTypeNotSupportedException extends GeometryException {
61

    
62
        /**
63
         * Generated serial version UID 
64
         */
65
        private static final long serialVersionUID = -196778635358286969L;
66

    
67
        /**
68
         * Key to retrieve this exception's message
69
         */
70
        private static final String MESSAGE_KEY = "geometry_type_not_supported_exception";
71
        /**
72
         * This exception's message. Substitution fields follow the format %(fieldName) and 
73
         * must be stored in the Map returned by the values() method. 
74
         */
75
        private static final String FORMAT_STRING = 
76
                "The geometry class %(geomClassName) is not registered.";
77
        
78
        /**
79
         * Class name of the geometry type. Should never be null in this exception
80
         */
81
        private String geomClassName = null;
82
        
83
        
84
        /**
85
         * Constructor with some context data for cases in which the root cause of 
86
         * <code>this</code> is internal (usually an unsatisfied logic rule).
87
         * @param geomClass geometry class
88
         */
89
        public GeometryTypeNotSupportedException(Class geomClass){
90
                this(geomClass, null);
91
        }
92
        
93
        /**
94
         * Constructor to use when <code>this</code> is caused by another Exception 
95
         * but there is not further context data available.
96
         * @param e cause exception
97
         */
98
        public GeometryTypeNotSupportedException(Exception e) {
99
                this(null, e);
100
        }
101
        
102
        public GeometryTypeNotSupportedException(int type, int subType){
103
            super(
104
                "Geometry type %(type), %(subType) not supported.",
105
            "_geometry_type_XtypeX_XsubTypeX_not_supported",
106
                serialVersionUID
107
             );
108
                setValue("type", new Integer(type));
109
        setValue("subType", new Integer(subType));
110
        }
111
        
112
        public GeometryTypeNotSupportedException(String geomClassName){
113
        super(FORMAT_STRING, MESSAGE_KEY, serialVersionUID);
114
        
115
        if (geomClassName != null) {
116
            setValue("geomClassName", geomClassName);
117
        }
118
        }
119
        
120
        /**
121
         * Main constructor that provides both context data and a cause Exception
122
         * @param geomClass geometry class 
123
         * @param e cause exception
124
         */
125
        public GeometryTypeNotSupportedException(Class geomClass, Exception e) {
126
                super(FORMAT_STRING, e, MESSAGE_KEY, serialVersionUID);
127
                
128
                if (geomClass != null) {
129
                    setValue("geomClassName", geomClass.getName());
130
                }
131
        }
132
}