comparison artifacts/src/main/java/org/dive4elements/river/artifacts/datacage/Datacage.java @ 6661:05395533fe82

fix issue1415: Update state of artifact when storing artifact.
author Felix Wolfsteller <felix.wolfsteller@intevation.de>
date Thu, 25 Jul 2013 12:06:09 +0200
parents af13ceeba52a
children 7b2b81974018
comparison
equal deleted inserted replaced
6660:8a1afe974fb0 6661:05395533fe82
68 "collection.item.id.nextval"; 68 "collection.item.id.nextval";
69 private String SQL_INSERT_COLLECTION_ITEM = "insert.collection.item"; 69 private String SQL_INSERT_COLLECTION_ITEM = "insert.collection.item";
70 private String SQL_ARTIFACT_ID_NEXTVAL = "artifact.id.nextval"; 70 private String SQL_ARTIFACT_ID_NEXTVAL = "artifact.id.nextval";
71 private String SQL_INSERT_ARTIFACT = "insert.artifact"; 71 private String SQL_INSERT_ARTIFACT = "insert.artifact";
72 private String SQL_ARTIFACT_DATA_ID_NEXTVAL = "artifact.data.id.nextval"; 72 private String SQL_ARTIFACT_DATA_ID_NEXTVAL = "artifact.data.id.nextval";
73 private String SQL_UPDATE_ARTIFACT_STATE = "update.artifact.state";
73 private String SQL_INSERT_ARTIFACT_DATA = "insert.artifact.data"; 74 private String SQL_INSERT_ARTIFACT_DATA = "insert.artifact.data";
74 private String SQL_OUT_ID_NEXTVALUE = "out.id.nextval"; 75 private String SQL_OUT_ID_NEXTVALUE = "out.id.nextval";
75 private String SQL_INSERT_OUT = "insert.out"; 76 private String SQL_INSERT_OUT = "insert.out";
76 private String SQL_FACET_ID_NEXTVAL = "facet.id.nextval"; 77 private String SQL_FACET_ID_NEXTVAL = "facet.id.nextval";
77 private String SQL_INSERT_FACET = "insert.facet"; 78 private String SQL_INSERT_FACET = "insert.facet";
380 sql.get(SQL_INSERT_COLLECTION_ITEM); 381 sql.get(SQL_INSERT_COLLECTION_ITEM);
381 SQL_ARTIFACT_ID_NEXTVAL = sql.get(SQL_ARTIFACT_ID_NEXTVAL); 382 SQL_ARTIFACT_ID_NEXTVAL = sql.get(SQL_ARTIFACT_ID_NEXTVAL);
382 SQL_INSERT_ARTIFACT = sql.get(SQL_INSERT_ARTIFACT); 383 SQL_INSERT_ARTIFACT = sql.get(SQL_INSERT_ARTIFACT);
383 SQL_ARTIFACT_DATA_ID_NEXTVAL = sql.get(SQL_ARTIFACT_DATA_ID_NEXTVAL); 384 SQL_ARTIFACT_DATA_ID_NEXTVAL = sql.get(SQL_ARTIFACT_DATA_ID_NEXTVAL);
384 SQL_INSERT_ARTIFACT_DATA = sql.get(SQL_INSERT_ARTIFACT_DATA); 385 SQL_INSERT_ARTIFACT_DATA = sql.get(SQL_INSERT_ARTIFACT_DATA);
386 SQL_UPDATE_ARTIFACT_STATE = sql.get(SQL_UPDATE_ARTIFACT_STATE);
385 SQL_OUT_ID_NEXTVALUE = sql.get(SQL_OUT_ID_NEXTVALUE); 387 SQL_OUT_ID_NEXTVALUE = sql.get(SQL_OUT_ID_NEXTVALUE);
386 SQL_INSERT_OUT = sql.get(SQL_INSERT_OUT); 388 SQL_INSERT_OUT = sql.get(SQL_INSERT_OUT);
387 SQL_FACET_ID_NEXTVAL = sql.get(SQL_FACET_ID_NEXTVAL); 389 SQL_FACET_ID_NEXTVAL = sql.get(SQL_FACET_ID_NEXTVAL);
388 SQL_INSERT_FACET = sql.get(SQL_INSERT_FACET); 390 SQL_INSERT_FACET = sql.get(SQL_INSERT_FACET);
389 SQL_UPDATE_COLLECTION_NAME = sql.get(SQL_UPDATE_COLLECTION_NAME); 391 SQL_UPDATE_COLLECTION_NAME = sql.get(SQL_UPDATE_COLLECTION_NAME);
606 } 608 }
607 609
608 // write new data 610 // write new data
609 storeData(res[0], flys); 611 storeData(res[0], flys);
610 storeOuts(res[0], flys, context); 612 storeOuts(res[0], flys, context);
613 storeState(res[0], flys);
611 } 614 }
612 615
613 public void createdUser( 616 public void createdUser(
614 final User user, 617 final User user,
615 Backend backend, 618 Backend backend,
882 if (!exec.runWrite()) { 885 if (!exec.runWrite()) {
883 log.error("changing name failed"); 886 log.error("changing name failed");
884 } 887 }
885 } 888 }
886 889
890 /** Update state of artifact. */
891 protected void storeState(
892 final int artifactId,
893 final D4EArtifact artifact) {
894 SQLExecutor.Instance exec = sqlExecutor.new Instance() {
895 @Override
896 public boolean doIt() throws SQLException {
897 prepareStatement(SQL_UPDATE_ARTIFACT_STATE);
898 stmnt.setInt(1, artifactId);
899 stmnt.setString(2, artifact.getCurrentStateId());
900 stmnt.execute();
901 conn.commit();
902 return true;
903 }
904 };
905
906 if (!exec.runWrite()) {
907 log.error("storing state of artifact failed ("+artifactId+","+artifact.getCurrentStateId()+")");
908 }
909 }
910
887 protected void storeData( 911 protected void storeData(
888 final int artifactId, 912 final int artifactId,
889 D4EArtifact artifact 913 D4EArtifact artifact
890 ) { 914 ) {
891 final Collection<StateData> data = artifact.getAllData(); 915 final Collection<StateData> data = artifact.getAllData();

http://dive4elements.wald.intevation.org