Statistics
| Revision:

svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.compat.cdc / org.gvsig.fmap.dal / org.gvsig.fmap.dal.db / org.gvsig.fmap.dal.db.jdbc / src / main / java / org / gvsig / fmap / dal / store / jdbc / exception / JDBCExecutePreparedSQLException.java @ 40559

History | View | Annotate | Download (3.71 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
* AUTHORS (In addition to CIT):
48
* 2009 IVER T.I   {{Task}}
49
*/
50

    
51
/**
52
 *
53
 */
54
package org.gvsig.fmap.dal.store.jdbc.exception;
55

    
56
import java.sql.SQLException;
57
import java.util.List;
58

    
59

    
60
/**
61
 * @author jmvivo
62
 *
63
 */
64
public class JDBCExecutePreparedSQLException extends JDBCException {
65

    
66
        /**
67
         *
68
         */
69
        private static final long serialVersionUID = 634889167216570034L;
70

    
71
        private final static String MESSAGE_FORMAT = "An JDBC exception was throw when execute SQL: '%(sql)' with params %(params)";
72
        private final static String MESSAGE_KEY = "_JDBCExecutePreparedSQLException";
73

    
74
        public JDBCExecutePreparedSQLException(String sql, Object[] parameters,
75
                        SQLException cause) {
76
                super(MESSAGE_FORMAT, cause, MESSAGE_KEY, serialVersionUID);
77
                setValue("sql", sql);
78
                String params = "{unknow}";
79
                if (parameters != null) {
80

    
81
                        StringBuilder strb = new StringBuilder();
82
                        strb.append('[');
83
                        for (int i = 0; i < parameters.length - 1; i++) {
84
                                strb.append(getParamValue(parameters[i]));
85
                                strb.append(", ");
86
                        }
87
                        strb.append(getParamValue(parameters[parameters.length - 1]));
88
                        strb.append(']');
89
                        params = strb.toString();
90
                }
91
                setValue("params", params);
92
        }
93

    
94
        public JDBCExecutePreparedSQLException(String sql, List parameters,
95
                        SQLException cause) {
96
                super(MESSAGE_FORMAT, cause, MESSAGE_KEY, serialVersionUID);
97
                setValue("sql", sql);
98
                String params = "{unknow}";
99
                if (parameters != null) {
100

    
101
                        StringBuilder strb = new StringBuilder();
102
                        strb.append('[');
103
                        for (int i = 0; i < parameters.size() - 1; i++) {
104
                                strb.append(getParamValue(parameters.get(i)));
105
                                strb.append(", ");
106
                        }
107
                        strb.append(getParamValue(parameters.get(parameters.size() - 1)));
108
                        strb.append(']');
109
                        params = strb.toString();
110
                }
111
                setValue("params", params);
112
        }
113

    
114
        private String getParamValue(Object param) {
115

    
116
                if (param instanceof String) {
117
                        return "'" + param + "'";
118
                }
119
                if (param == null) {
120
                        return "null";
121
                }
122
                return param.toString();
123
        }
124

    
125
}