annotate Postarc/Postarc/Feature/FeatureCursor.cs @ 0:1aca3d413885 tip

Initial import of Postarc
author Christian Lins <christian.lins@intevation.de>
date Fri, 05 Oct 2012 23:55:06 +0200
parents
children
rev   line source
0
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
1 /*
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
2 * Postarc
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
3 *
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
4 * Author:
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
5 * Christian Lins <christian.lins@intevation.de>
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
6 *
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
7 * Copyright:
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
8 * Copyright (C) 2012 Intevation GmbH <http://www.intevation.de/>
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
9 *
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
10 * This program is free software: you can redistribute it and/or modify
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
11 * it under the terms of the GNU Lesser General Public License as published by
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
12 * the Free Software Foundation, either version 3 of the License, or
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
13 * (at your option) any later version.
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
14 *
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
15 * This program is distributed in the hope that it will be useful,
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
18 * GNU General Public License for more details.
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
19 *
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
20 * You should have received a copy of the GNU Lesser General Public License
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
21 * along with this program. If not, see <http://www.gnu.org/licenses/>.
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
22 */
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
23
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
24 using System;
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
25 using System.Collections.Generic;
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
26 using System.Linq;
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
27 using ESRI.ArcGIS.Geodatabase;
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
28 using System.Text;
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
29 using Npgsql;
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
30 using System.Diagnostics;
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
31
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
32 namespace Postarc.Feature
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
33 {
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
34 static class StringExtension
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
35 {
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
36 public static string Replace(this string str, string oldValue, string newValue, StringComparison comparison)
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
37 {
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
38 StringBuilder sb = new StringBuilder();
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
39
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
40 int previousIndex = 0;
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
41 int index = str.IndexOf(oldValue, comparison);
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
42 while (index != -1)
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
43 {
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
44 sb.Append(str.Substring(previousIndex, index - previousIndex));
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
45 sb.Append(newValue);
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
46 index += oldValue.Length;
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
47
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
48 previousIndex = index;
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
49 index = str.IndexOf(oldValue, index, comparison);
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
50 }
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
51 sb.Append(str.Substring(previousIndex));
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
52
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
53 return sb.ToString();
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
54 }
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
55 }
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
56
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
57 class FeatureCursor : IFeatureCursor, ICursor
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
58 {
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
59 /// <summary>
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
60 /// Currently Postarc requires an Postarc_ID column in the PostGIS table
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
61 /// which is mapped to ArcGIS' OID.
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
62 /// </summary>
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
63 public const string POSTARC_OID_COLUMN = "oid";
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
64 public const string POSTARC_SHAPE_COLUMN = "shape";
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
65 public const string ARCGIS_OID_COLUMN = "oid";
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
66
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
67 protected PostGISConnection connection;
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
68 protected NpgsqlConnection npgsqlConnection;
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
69 protected FeatureClass featureClass;
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
70 protected IFields fields;
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
71 protected NpgsqlDataReader reader;
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
72
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
73 private int oidIdx = -1;
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
74
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
75 public FeatureCursor(FeatureClass featClass, PostGISConnection conn, IQueryFilter filter)
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
76 {
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
77 this.featureClass = featClass;
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
78 this.connection = conn;
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
79
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
80 // If a QueryFilter is given, we must adapt our SQL query
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
81 string subFields = AllFields();
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
82 string whereClause = "";
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
83 if (filter != null)
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
84 {
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
85 /*if (!filter.SubFields.Equals("*"))
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
86 {
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
87 subFields = filter.SubFields;
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
88 if (!subFields.Contains(POSTARC_OID_COLUMN) && !subFields.Equals("*"))
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
89 {
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
90 subFields = subFields + "," + POSTARC_OID_COLUMN;
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
91 }
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
92 }*/
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
93
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
94 whereClause = filter.WhereClause;
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
95 if(whereClause != null && !whereClause.Equals(""))
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
96 {
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
97 whereClause = " WHERE " + whereClause;
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
98 }
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
99 }
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
100
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
101 subFields = subFields.Replace(
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
102 POSTARC_SHAPE_COLUMN,
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
103 "ST_AsText(" + POSTARC_SHAPE_COLUMN + ") AS " + POSTARC_SHAPE_COLUMN);
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
104
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
105 this.npgsqlConnection = conn.Open();
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
106 NpgsqlCommand cmd = new NpgsqlCommand(
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
107 "SELECT " + subFields + " FROM " + featClass.TableName + whereClause + " ORDER BY " + POSTARC_OID_COLUMN,
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
108 npgsqlConnection);
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
109 this.reader = cmd.ExecuteReader();
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
110
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
111 // Build the fields
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
112 IFieldsEdit fieldsEdit = new FieldsClass();
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
113 for (int n = 0; n < reader.FieldCount; n++)
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
114 {
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
115 string fieldName = reader.GetName(n);
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
116 if (fieldName.Equals(POSTARC_OID_COLUMN, StringComparison.OrdinalIgnoreCase))
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
117 {
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
118 fieldName = ARCGIS_OID_COLUMN;
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
119 oidIdx = n;
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
120 }
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
121 int fidx = featClass.FindField(fieldName);
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
122 IField field = featClass.Fields.get_Field(fidx);
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
123 fieldsEdit.AddField(field);
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
124 }
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
125 this.fields = fieldsEdit as IFields;
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
126 }
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
127
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
128 protected string AllFields()
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
129 {
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
130 StringBuilder buf = new StringBuilder();
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
131
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
132 for (int n = 0; n < featureClass.Fields.FieldCount; n++)
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
133 {
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
134 buf.Append(featureClass.Fields.get_Field(n).Name);
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
135 if (n < featureClass.Fields.FieldCount - 1)
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
136 {
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
137 buf.Append(",");
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
138 }
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
139 }
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
140
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
141 return buf.ToString();
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
142 }
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
143
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
144 public void DeleteFeature()
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
145 {
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
146 // Not implemented
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
147 }
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
148
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
149 public IFields Fields
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
150 {
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
151 get
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
152 {
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
153 return this.fields;
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
154 }
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
155 }
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
156
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
157 public int FindField(string name)
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
158 {
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
159 return this.Fields.FindField(name);
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
160 }
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
161
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
162 public void Flush()
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
163 {
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
164 // TODO: Not implemented
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
165 }
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
166
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
167 public object InsertFeature(IFeatureBuffer buffer)
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
168 {
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
169 Debug.WriteLine("FeatureCursor::InsertFeature(): FIXME");
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
170 return null; // TODO: Not implemented
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
171 }
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
172
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
173 public IFeature NextFeature()
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
174 {
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
175 if (this.reader.Read())
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
176 {
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
177 Feature feature = new Feature(featureClass, Fields, oidIdx, this.reader);
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
178 return feature;
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
179 }
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
180 this.reader.Close(); // We've reached the last feature
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
181 return null;
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
182 }
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
183
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
184 public void UpdateFeature(IFeature Object)
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
185 {
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
186 // TODO: Not implemented
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
187 Debug.WriteLine("FeatureCursor::UpdateFeature(): FIXME");
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
188 }
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
189
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
190 public void DeleteRow()
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
191 {
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
192 // TODO: Not implemented
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
193 Debug.WriteLine("FeatureCursor::DeleteRow(): FIXME");
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
194 }
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
195
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
196 public object InsertRow(IRowBuffer buffer)
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
197 {
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
198 // TODO: Not implemented
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
199 Debug.WriteLine("FeatureCursor::InsertRow(): FIXME");
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
200 return null;
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
201 }
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
202
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
203 public IRow NextRow()
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
204 {
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
205 return NextFeature();
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
206 }
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
207
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
208 public void UpdateRow(IRow Row)
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
209 {
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
210 // TODO: Not implemented
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
211 Debug.WriteLine("FeatureCursor::UpdateRow(): FIXME");
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
212 }
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
213 }
1aca3d413885 Initial import of Postarc
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
214 }
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)