annotate geo-backend/src/main/java/de/intevation/gnv/geobackend/sde/datasources/SDEQuery.java @ 129:110e3ac1b7d2

Library Dependencies Added to pom.xml-File Import of SDE-Datasources geo-backend/trunk@5 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Tim Englich <tim.englich@intevation.de>
date Wed, 02 Sep 2009 09:07:03 +0000
parents
children e4eacd613356
rev   line source
129
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
1 /**
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
2 * Title: SdeQuery, $Header: /share/gdi/SDI-Suite/Repository/projekte/BSH-GDI/genericViewer/src/main/java/de/conterra/bsh/gdi/gnviewer/datasources/sde/SDEQuery.java,v 1.3 2008/01/30 12:38:34 blume Exp $
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
3 * Source: $Source: /share/gdi/SDI-Suite/Repository/projekte/BSH-GDI/genericViewer/src/main/java/de/conterra/bsh/gdi/gnviewer/datasources/sde/SDEQuery.java,v $
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
4 * created by: Stefan Blume (blume)
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
5 * erstellt am: 21.11.2007
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
6 * Copyright: con terra GmbH, 2005
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
7 *
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
8 * modified by: $Author: blume $
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
9 * modified on: $Date: 2008/01/30 12:38:34 $
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
10 * Version: $Revision: 1.3 $
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
11 * TAG: $Name: $
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
12 * locked from: $Locker: $
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
13 * CVS State: $State: Exp $
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
14 * Project: $ProjectName$
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
15 */
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
16 package de.intevation.gnv.geobackend.sde.datasources;
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
17
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
18 import org.apache.log4j.Logger;
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
19
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
20 import com.esri.sde.sdk.client.SDEPoint;
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
21 import com.esri.sde.sdk.client.SeColumnDefinition;
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
22 import com.esri.sde.sdk.client.SeConnection;
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
23 import com.esri.sde.sdk.client.SeCoordinateReference;
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
24 import com.esri.sde.sdk.client.SeException;
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
25 import com.esri.sde.sdk.client.SeFilter;
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
26 import com.esri.sde.sdk.client.SeLayer;
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
27 import com.esri.sde.sdk.client.SeQuery;
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
28 import com.esri.sde.sdk.client.SeRow;
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
29 import com.esri.sde.sdk.client.SeShape;
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
30 import com.esri.sde.sdk.client.SeShapeFilter;
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
31 import com.esri.sde.sdk.client.SeSqlConstruct;
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
32
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
33 import de.intevation.gnv.geobackend.sde.datasources.exception.TechnicalException;
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
34 import de.intevation.gnv.geobackend.util.DateUtils;
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
35
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
36 /**
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
37 * // todo: supply a general interface for Query-Objects (Query = read access to datasource implementation)
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
38 *
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
39 * @author blume
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
40 * @version 1.0
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
41 * @serial 1.0
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
42 * @see
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
43 * @since 21.11.2007 11:32:19
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
44 */
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
45 public class SDEQuery {
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
46
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
47 /**
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
48 * Default Logging instance
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
49 */
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
50 private static final Logger sLogger = Logger.getLogger(SDEQuery.class);
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
51 private static boolean sDebug = sLogger.isDebugEnabled();
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
52
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
53
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
54 DatasourceConnection mConnection;
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
55
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
56 public SDEQuery(DatasourceConnection pConnection) {
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
57 if (sDebug) sLogger.debug("SDEQuery()");
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
58 mConnection = pConnection;
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
59 }
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
60
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
61 /**
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
62 * Execute a query against a sde datasource.
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
63 * This Query method is responsible for getting and returning a valid {@link SeConnection}-Object.
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
64 *
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
65 * @param pTables
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
66 * @param pCols
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
67 * @param pWhere the where-clause to be executed.
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
68 * @return a ResultSet
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
69 * @see SeSqlConstruct
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
70 * @see SeQuery
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
71 */
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
72 public ResultSet executeQuery(String pTables[], String pCols[], String pWhere) throws TechnicalException {
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
73 sLogger.debug("executeQuery()");
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
74 SeConnection con = null;
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
75 try {
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
76 con = getConnection();
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
77 SeSqlConstruct lSeSqlConstruct = new SeSqlConstruct(pTables, pWhere);
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
78 SeQuery lSeQuery = new SeQuery(con, pCols, lSeSqlConstruct);
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
79 long lStart = System.currentTimeMillis();
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
80 lSeQuery.prepareQuery();
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
81 ResultSet lSet = handleResultSet(lSeQuery);
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
82 long lEnd = System.currentTimeMillis();
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
83 if (sDebug)
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
84 sLogger.debug((new StringBuilder()).append("lSeQuery lasts ").append((double) (lEnd - lStart) / 1000D).append(" seconds").toString());
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
85 return lSet;
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
86 } catch (TechnicalException e) {
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
87 sLogger.error(e.getMessage(), e);
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
88 throw e;
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
89 } catch (SeException e) {
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
90 sLogger.error(e.getMessage(), e);
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
91 throw new TechnicalException("Error during executeQuery", e);
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
92 } finally {
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
93 returnConnection(con);
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
94 }
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
95
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
96 }
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
97
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
98 /**
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
99 * Execute a query against a sde datasource.
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
100 * This Query method is responsible for getting and returning a valid {@link SeConnection}-Object.
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
101 *
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
102 * @param pSQLStatement the SQL-Statement to be executed.
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
103 * @return a ResultSet
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
104 * @see SeQuery
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
105 */
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
106 public ResultSet executeQuery(String pSQLStatement) throws TechnicalException {
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
107 if (sDebug) sLogger.debug("executeQuery():\n" + pSQLStatement);
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
108 SeConnection con = null;
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
109 try {
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
110 con = getConnection();
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
111
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
112 SeQuery lSeQuery = new SeQuery(con);
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
113 long lStart = System.currentTimeMillis();
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
114 lSeQuery.prepareSql(pSQLStatement);
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
115 lSeQuery.execute();
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
116
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
117 ResultSet lSet = handleResultSet(lSeQuery);
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
118
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
119 //TmpFile erstellen
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
120 //Row auslesen
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
121 //Row -> TmpFile
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
122 //TmpFile close
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
123
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
124 long lEnd = System.currentTimeMillis();
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
125 if (sDebug)
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
126 sLogger.debug((new StringBuilder()).append("lSeQuery lasts ").append((double) (lEnd - lStart) / 1000D).append(" seconds").toString());
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
127 return lSet;
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
128 } catch (TechnicalException e) {
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
129 sLogger.error(e.getMessage(), e);
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
130 throw e;
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
131 } catch (SeException e) {
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
132 sLogger.error(e.getMessage(), e);
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
133 throw new TechnicalException("Error during executeQuery", e);
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
134 } finally {
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
135 returnConnection(con);
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
136 }
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
137
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
138
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
139 }
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
140
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
141 // /**
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
142 // * Execute a query against a sde datasource.
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
143 // * This Query method is responsible for getting and returning a valid {@link SeConnection}-Object.
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
144 // *
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
145 // * @param pSQLStatement the SQL-Statement to be executed.
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
146 // * @return File
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
147 // * @see SeQuery
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
148 // */
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
149 // public TempFile executeQueryDiagram (String pSQLStatement) throws TechnicalException {
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
150 // if (sDebug) sLogger.debug("executeQueryDiagram():\n" + pSQLStatement);
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
151 // SeConnection con = null;
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
152 // TempFile lImageFile = null;
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
153 // try {
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
154 // con = getConnection();
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
155 //
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
156 // SeQuery lSeQuery = new SeQuery(con);
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
157 // long lStart = System.currentTimeMillis();
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
158 // lSeQuery.prepareSql(pSQLStatement);
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
159 // lSeQuery.execute();
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
160 //
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
161 // //ResultSet lSet = handleResultSet(lSeQuery);
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
162 // lImageFile = handleRowToCSVFile(lSeQuery);
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
163 //
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
164 //
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
165 // long lEnd = System.currentTimeMillis();
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
166 // if (sDebug)
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
167 // sLogger.debug((new StringBuilder()).append("lSeQuery lasts ").append((double) (lEnd - lStart) / 1000D).append(" seconds").toString());
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
168 //
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
169 // } catch (TechnicalException e) {
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
170 // sLogger.error(e.getMessage(), e);
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
171 // throw e;
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
172 // } catch (SeException e) {
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
173 // sLogger.error(e.getMessage(), e);
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
174 // throw new TechnicalException("Error during executeQuery", e);
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
175 // } finally {
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
176 // returnConnection(con);
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
177 // }
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
178 // return lImageFile;
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
179 //
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
180 // }
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
181
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
182 /**
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
183 * Execute a spatial query against a sde datasource.
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
184 * This Query method is responsible for getting and returning a valid {@link SeConnection}-Object.
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
185 * // todo: there is work needed to fully implement the wanted functionality.
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
186 *
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
187 * @param pLayername
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
188 * @param pSpatialColumnName
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
189 * @param pPoints
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
190 * @param pReturnFields
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
191 * @return a ResultSet
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
192 * @see SeShapeFilter
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
193 * @see SeQuery
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
194 */
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
195 public ResultSet executeQuery(String pLayername, String pSpatialColumnName, double[][] pPoints, String[] pReturnFields) throws TechnicalException {
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
196 sLogger.debug("executeQuery()");
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
197 SeConnection con = null;
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
198 try {
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
199 con = getConnection();
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
200 // get the layer for querying
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
201 SeLayer lLayer = new SeLayer(con, pLayername, pSpatialColumnName);
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
202 SeCoordinateReference cref = lLayer.getCoordRef();
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
203
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
204
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
205 SeShape shape = new SeShape();
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
206 shape.setCoordRef(lLayer.getCoordRef());
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
207 SDEPoint[] lPoints = ArcSDEUtils.createPoints(pPoints);
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
208
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
209 /*
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
210 * int�numPts, int�numParts, int[]�partOffsets,SDEPoint[]�ptArray
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
211 * */
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
212 shape.generatePolygon(lPoints.length, 1, null, lPoints);
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
213 SeShapeFilter filter = new SeShapeFilter(pLayername, pSpatialColumnName, shape, SeFilter.METHOD_AI);
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
214 SeShapeFilter[] filters = new SeShapeFilter[1];
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
215 filters[0] = filter;
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
216
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
217 SeQuery spatialQuery = null;
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
218 SeSqlConstruct sqlCons = new SeSqlConstruct(pLayername);
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
219 spatialQuery = new SeQuery(con, pReturnFields, sqlCons);
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
220 spatialQuery.prepareQuery();
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
221 /*
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
222 * Set spatial constraints
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
223 */
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
224 spatialQuery.setSpatialConstraints(SeQuery.SE_OPTIMIZE, false, filters);
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
225 spatialQuery.execute();
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
226
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
227 return handleResultSet(spatialQuery);
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
228
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
229 } catch (TechnicalException e) {
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
230 sLogger.error(e.getMessage(), e);
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
231 throw e;
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
232 } catch (SeException e) {
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
233 sLogger.error(e.getMessage(), e);
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
234 throw new TechnicalException("Error accessing Spatial Database: " + e.getMessage(), e);
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
235 } finally {
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
236 returnConnection(con);
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
237 }
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
238 }
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
239 /**
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
240 * Execute a spatial query against a sde datasource.
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
241 * This Query method is responsible for getting and returning a valid {@link SeConnection}-Object.
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
242 * // todo: there is work needed to fully implement the wanted functionality.
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
243 *
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
244 * @param pLayername
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
245 * @param pSpatialColumnName
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
246 * @param pPoints
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
247 * @param pReturnFields
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
248 * @return a ResultSet
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
249 * @see SeShapeFilter
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
250 * @see SeQuery
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
251 */
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
252 public ResultSet executeQuery(String pLayername, String pSpatialColumnName, String pWhere, double[][] pPoints, String[] pReturnFields) throws TechnicalException {
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
253 sLogger.debug("executeQuery()");
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
254 SeConnection con = null;
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
255 try {
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
256 con = getConnection();
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
257 // get the layer for querying
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
258 SeLayer lLayer = new SeLayer(con, pLayername, pSpatialColumnName);
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
259 SeCoordinateReference cref = lLayer.getCoordRef();
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
260
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
261
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
262 SeShape shape = new SeShape();
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
263 shape.setCoordRef(lLayer.getCoordRef());
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
264 SDEPoint[] lPoints = ArcSDEUtils.createPoints(pPoints);
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
265
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
266 /*
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
267 * int�numPts, int�numParts, int[]�partOffsets,SDEPoint[]�ptArray
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
268 * */
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
269 shape.generatePolygon(lPoints.length, 1, null, lPoints);
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
270 SeShapeFilter filter = new SeShapeFilter(pLayername, pSpatialColumnName, shape, SeFilter.METHOD_AI);
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
271 SeShapeFilter[] filters = new SeShapeFilter[1];
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
272 filters[0] = filter;
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
273
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
274 SeQuery spatialQuery = null;
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
275 SeSqlConstruct sqlCons = new SeSqlConstruct(pLayername,pWhere);
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
276 spatialQuery = new SeQuery(con, pReturnFields, sqlCons);
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
277 spatialQuery.prepareQuery();
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
278 /*
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
279 * Set spatial constraints
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
280 */
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
281 spatialQuery.setSpatialConstraints(SeQuery.SE_OPTIMIZE, false, filters);
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
282 spatialQuery.execute();
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
283
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
284 return handleResultSet(spatialQuery);
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
285
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
286 } catch (TechnicalException e) {
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
287 sLogger.error(e.getMessage(), e);
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
288 throw e;
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
289 } catch (SeException e) {
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
290 sLogger.error(e.getMessage(), e);
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
291 throw new TechnicalException("Error accessing Spatial Database: " + e.getMessage(), e);
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
292 } finally {
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
293 returnConnection(con);
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
294 }
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
295 }
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
296 private SeConnection getConnection() throws TechnicalException {
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
297 SeConnection lConnection = ((SDEConnection) mConnection).getConnection();
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
298 if (sDebug) try {
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
299 sLogger.debug("get connection to server: " + lConnection.getServer() + ", ServerTime: " + DateUtils.getPatternedDateAmer(lConnection.getServerTime()) + ", Release: " + lConnection.getRelease().getDesc());
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
300 } catch (SeException e) {
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
301 sLogger.error(e.getMessage(), e);
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
302 }
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
303 return lConnection;
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
304 }
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
305
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
306 private void returnConnection(SeConnection pSeConnection) {
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
307 ((SDEConnection) mConnection).returnConnection(pSeConnection);
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
308 }
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
309
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
310
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
311 private ResultSet handleResultSet(SeQuery pSeQuery) throws SeException {
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
312 sLogger.debug("handleResultSet()");
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
313 SDEResultSet lSet = new SDEResultSet();
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
314 SeRow row;
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
315 int lCount;
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
316 for (lCount = 0; (row = pSeQuery.fetch()) != null; lCount++) {
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
317 // one time execution
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
318 if (lCount == 0) {
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
319 // analyze cols of result set
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
320 SeColumnDefinition[] lCols = row.getColumns();
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
321 for (SeColumnDefinition lCol : lCols) {
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
322 lSet.addCol(new ColDefinition(lCol.getName(), lCol.getType()));// notice: esri-types have been copied into colDefinition class!
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
323 }
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
324 }
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
325 short lNumCols = row.getNumColumns();
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
326 Row lBackingRow = new Row(lNumCols);
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
327 for (int i = 0; i < lNumCols; i++) {
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
328 lBackingRow.addObject(row.getObject(i), i);
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
329 }
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
330 lSet.addRow(lBackingRow);
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
331 }
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
332 pSeQuery.close();
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
333 return lSet;
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
334 }
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
335
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
336 // private TempFile handleRowToCSVFile(SeQuery pSeQuery) throws SeException {
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
337 // sLogger.debug("handleRowToTempFile()");
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
338 // TempFile lImageFile = TemporaryFileDirectory.getInstance().createFile(".csv");
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
339 // sLogger.debug("handleRowToTempFile() erstellen " + lImageFile.getFile().getName());
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
340 // CSVWriter writer = null;
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
341 // ColDefinition[] lColDefinitions = null;
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
342 //
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
343 // SeRow row;
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
344 // int lCount;
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
345 // try {
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
346 // writer = new CSVWriter(new FileWriter(lImageFile.getFile()), ';');
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
347 // for (lCount = 0; (row = pSeQuery.fetch()) != null; lCount++) {
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
348 // // one time execution
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
349 // if (lCount == 0) {
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
350 // lColDefinitions = new ColDefinition[row.getNumColumns()];
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
351 // // analyze cols of result set
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
352 // SeColumnDefinition[] lCols = row.getColumns();
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
353 // int j = 0;
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
354 // for (SeColumnDefinition lCol : lCols) {
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
355 // lColDefinitions[j] = new ColDefinition(lCol.getName(), lCol.getType());
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
356 // j = j + 1;
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
357 // }
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
358 // }
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
359 // short lNumCols = row.getNumColumns();
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
360 // Row lBackingRow = new Row(lNumCols);
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
361 // for (int i = 0; i < lNumCols; i++) {
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
362 // lBackingRow.addObject(row.getObject(i), i);
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
363 // }
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
364 //
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
365 // writer.writeRow(lBackingRow,lColDefinitions, false);
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
366 // }
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
367 // } catch (IOException e) {
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
368 // sLogger.error(e.getMessage(), e);
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
369 // } catch (TechnicalException e) {
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
370 // sLogger.error(e.getMessage(), e);
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
371 // }
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
372 // finally {
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
373 // pSeQuery.close();
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
374 // try{
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
375 // writer.close();
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
376 // }
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
377 // catch (Exception e){
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
378 // sLogger.error(e.getMessage(), e);
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
379 // }
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
380 // }
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
381 //
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
382 // return lImageFile;
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
383 // }
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
384
110e3ac1b7d2 Library Dependencies Added to pom.xml-File
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
385 }

http://dive4elements.wald.intevation.org