comparison artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java @ 217:87a7773030b5

The Backend got a method that retrieves an ArtifactCollection based on its GID. artifacts/trunk@1556 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Thu, 24 Mar 2011 15:41:25 +0000
parents 33f58a847fc4
children fbd57d2eeaef
comparison
equal deleted inserted replaced
216:2d90d5cfe8f9 217:87a7773030b5
140 public static final String SQL_COLLECTIONS_SELECT_USER = 140 public static final String SQL_COLLECTIONS_SELECT_USER =
141 SQL.get("collections.select.user"); 141 SQL.get("collections.select.user");
142 142
143 public static final String SQL_COLLECTIONS_SELECT_ALL = 143 public static final String SQL_COLLECTIONS_SELECT_ALL =
144 SQL.get("collections.select.all"); 144 SQL.get("collections.select.all");
145
146 public static final String SQL_COLLECTIONS_SELECT_GID =
147 SQL.get("collections.select.by.gid");
145 148
146 public static final String SQL_COLLECTIONS_CREATION_TIME = 149 public static final String SQL_COLLECTIONS_CREATION_TIME =
147 SQL.get("collection.creation.time"); 150 SQL.get("collection.creation.time");
148 151
149 public static final String SQL_COLLECTIONS_ID_BY_GID = 152 public static final String SQL_COLLECTIONS_ID_BY_GID =
1035 }; 1038 };
1036 1039
1037 return exec.runWrite() ? collection[0]: null; 1040 return exec.runWrite() ? collection[0]: null;
1038 } 1041 }
1039 1042
1043 public ArtifactCollection getCollection(
1044 final String collectionId,
1045 final ArtifactCollectionFactory collectionFactory,
1046 final UserFactory userFactory,
1047 final Object context
1048 ) {
1049 if (!isValidIdentifier(collectionId)) {
1050 logger.debug("collection id is not valid: " + collectionId);
1051 return null;
1052 }
1053
1054 final ArtifactCollection[] ac = new ArtifactCollection[1];
1055
1056 SQLExecutor exec = new SQLExecutor() {
1057 public boolean doIt() throws SQLException {
1058
1059 prepareStatement(SQL_COLLECTIONS_SELECT_GID);
1060 stmnt.setString(1, collectionId);
1061
1062 result = stmnt.executeQuery();
1063 if (!result.next()) {
1064 logger.debug("No such collection");
1065 return false;
1066 }
1067
1068 String collectionName = result.getString(2);
1069 String ownerId = result.getString(3);
1070 Date creationTime =
1071 new Date(result.getTimestamp(4).getTime());
1072 Date lastAccess =
1073 new Date(result.getTimestamp(5).getTime());
1074 Document attr =
1075 XMLUtils.fromByteArray(result.getBytes(6));
1076
1077 ArtifactCollection collection =
1078 collectionFactory.createCollection(
1079 collectionId,
1080 collectionName,
1081 creationTime,
1082 attr,
1083 context);
1084
1085 if (ownerId != null) {
1086 collection.setUser(new LazyBackendUser(
1087 ownerId, userFactory, Backend.this, context));
1088 }
1089
1090 ac[0] = collection;
1091
1092 return true;
1093 }
1094 };
1095
1096 return exec.runRead() ? ac[0] : null;
1097 }
1098
1040 public ArtifactCollection [] listCollections( 1099 public ArtifactCollection [] listCollections(
1041 final String ownerIdentifier, 1100 final String ownerIdentifier,
1042 final Document data, 1101 final Document data,
1043 final ArtifactCollectionFactory collectionFactory, 1102 final ArtifactCollectionFactory collectionFactory,
1044 final UserFactory userFactory, 1103 final UserFactory userFactory,

http://dive4elements.wald.intevation.org