comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/datacage/Datacage.java @ 989:f3be883325ce

Add artifacts into datacage db at initial scan. flys-artifacts/trunk@2421 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Fri, 29 Jul 2011 07:56:28 +0000
parents dbe39e1fb5e7
children e573c4715d81
comparison
equal deleted inserted replaced
988:dbe39e1fb5e7 989:f3be883325ce
38 private String SQL_INSERT_COLLECTION = "insert.collection"; 38 private String SQL_INSERT_COLLECTION = "insert.collection";
39 private String SQL_ARTIFACT_BY_GID = "artifact.by.gid"; 39 private String SQL_ARTIFACT_BY_GID = "artifact.by.gid";
40 private String SQL_COLLECTION_ITEM_ID_NEXTVAL = 40 private String SQL_COLLECTION_ITEM_ID_NEXTVAL =
41 "collection.item.id.nextval"; 41 "collection.item.id.nextval";
42 private String SQL_INSERT_COLLECTION_ITEM = "insert.collection.item"; 42 private String SQL_INSERT_COLLECTION_ITEM = "insert.collection.item";
43 private String SQL_ARTIFACT_ID_NEXTVAL = "artifact.id.nextval";
44 private String SQL_INSERT_ARTIFACT = "insert.artifact";
43 45
44 46
45 protected SQLExecutor sqlExecutor; 47 protected SQLExecutor sqlExecutor;
46 48
47 public class InitialScan 49 public class InitialScan
111 113
112 return null; 114 return null;
113 } 115 }
114 116
115 protected void storeArtifact( 117 protected void storeArtifact(
116 String artifactId, 118 final String artifactId,
117 Integer collectionId, 119 Integer collectionId,
118 FLYSArtifact artifact 120 final FLYSArtifact artifact
119 ) { 121 ) {
120 Integer aId = getId(artifacts, artifactId, SQL_ARTIFACT_BY_GID); 122 Integer aId = getId(artifacts, artifactId, SQL_ARTIFACT_BY_GID);
121 123
122 if (aId != null) { 124 if (aId != null) {
123 // We've already stored it. Just create the collection item. 125 // We've already stored it. Just create the collection item.
124 storeCollectionItem(collectionId, aId); 126 storeCollectionItem(collectionId, aId);
125 return; 127 return;
126 } 128 }
127 // We need to write it to database 129 // We need to write it to database
130
131 final Integer [] res = new Integer[1];
132
133 SQLExecutor.Instance exec = sqlExecutor.new Instance() {
134 @Override
135 public boolean doIt() throws SQLException {
136 prepareStatement(SQL_ARTIFACT_ID_NEXTVAL);
137 result = stmnt.executeQuery();
138 if (!result.next()) {
139 return false;
140 }
141 res[0] = result.getInt(1);
142 reset();
143 prepareStatement(SQL_INSERT_ARTIFACT);
144 stmnt.setInt (1, res[0]);
145 stmnt.setString(2, artifactId);
146 stmnt.setString(3, artifact.getCurrentStateId());
147 stmnt.execute();
148 return true;
149 }
150 };
151
152 if (!exec.runWrite()) {
153 log.error("storing of artifact failed.");
154 return;
155 }
156
157 artifacts.put(artifactId, aId = res[0]);
158
159 storeCollectionItem(collectionId, aId);
160
161 // store data, outs and facets
128 // TODO: Implement me! 162 // TODO: Implement me!
129 } 163 }
130 164
131 protected void storeCollectionItem( 165 protected void storeCollectionItem(
132 final Integer collectionId, 166 final Integer collectionId,
268 SQL_ARTIFACT_BY_GID = sql.get(SQL_ARTIFACT_BY_GID); 302 SQL_ARTIFACT_BY_GID = sql.get(SQL_ARTIFACT_BY_GID);
269 SQL_COLLECTION_ITEM_ID_NEXTVAL = 303 SQL_COLLECTION_ITEM_ID_NEXTVAL =
270 sql.get(SQL_COLLECTION_ITEM_ID_NEXTVAL); 304 sql.get(SQL_COLLECTION_ITEM_ID_NEXTVAL);
271 SQL_INSERT_COLLECTION_ITEM = 305 SQL_INSERT_COLLECTION_ITEM =
272 sql.get(SQL_INSERT_COLLECTION_ITEM); 306 sql.get(SQL_INSERT_COLLECTION_ITEM);
307 SQL_ARTIFACT_ID_NEXTVAL = sql.get(SQL_ARTIFACT_ID_NEXTVAL);
308 SQL_INSERT_ARTIFACT = sql.get(SQL_INSERT_ARTIFACT);
273 } 309 }
274 310
275 @Override 311 @Override
276 public void systemUp(GlobalContext context) { 312 public void systemUp(GlobalContext context) {
277 log.debug("systemUp"); 313 log.debug("systemUp");

http://dive4elements.wald.intevation.org