comparison artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java @ 158:d718a4d55662

Implemented the createCollection() method in the artifact database. artifacts/trunk@1383 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Thu, 03 Mar 2011 10:54:33 +0000
parents 6e6965873a48
children db0d20440b92
comparison
equal deleted inserted replaced
157:6e6965873a48 158:d718a4d55662
9 package de.intevation.artifactdatabase; 9 package de.intevation.artifactdatabase;
10 10
11 import de.intevation.artifactdatabase.Backend.PersistentArtifact; 11 import de.intevation.artifactdatabase.Backend.PersistentArtifact;
12 12
13 import de.intevation.artifacts.Artifact; 13 import de.intevation.artifacts.Artifact;
14 import de.intevation.artifacts.ArtifactCollection;
14 import de.intevation.artifacts.ArtifactCollectionFactory; 15 import de.intevation.artifacts.ArtifactCollectionFactory;
15 import de.intevation.artifacts.ArtifactDatabase; 16 import de.intevation.artifacts.ArtifactDatabase;
16 import de.intevation.artifacts.ArtifactDatabaseException; 17 import de.intevation.artifacts.ArtifactDatabaseException;
17 import de.intevation.artifacts.ArtifactFactory; 18 import de.intevation.artifacts.ArtifactFactory;
18 import de.intevation.artifacts.ArtifactNamespaceContext; 19 import de.intevation.artifacts.ArtifactNamespaceContext;
190 "No such user"; 191 "No such user";
191 192
192 /** Error message if no username is given for user creation.*/ 193 /** Error message if no username is given for user creation.*/
193 public static final String NO_USERNAME = 194 public static final String NO_USERNAME =
194 "Invalid username"; 195 "Invalid username";
196
197 // Collection constants
198
199 /**
200 * Error message issued if the creation of a collection failed.
201 */
202 public static final String COLLECTION_CREATION_FAILED =
203 "Creation of collection failed";
195 204
196 205
197 /** 206 /**
198 * Inner class that implements the call context handed 207 * Inner class that implements the call context handed
199 * to the methods calls describe(), feed(), etc. of the artifact. 208 * to the methods calls describe(), feed(), etc. of the artifact.
620 629
621 public UserFactory getUserFactory() { 630 public UserFactory getUserFactory() {
622 return userFactory; 631 return userFactory;
623 } 632 }
624 633
634 public ArtifactCollectionFactory getArtifactCollectionFactory() {
635 return collectionFactory;
636 }
637
625 public Document createArtifactWithFactory( 638 public Document createArtifactWithFactory(
626 String factoryName, 639 String factoryName,
627 CallMeta callMeta, 640 CallMeta callMeta,
628 Document data 641 Document data
629 ) 642 )
1080 throw new ArtifactDatabaseException("Not implemented, yet!"); 1093 throw new ArtifactDatabaseException("Not implemented, yet!");
1081 } 1094 }
1082 1095
1083 public Document createCollection(String ownerId, Document data, 1096 public Document createCollection(String ownerId, Document data,
1084 CallMeta callMeta) 1097 CallMeta callMeta)
1085 throws ArtifactDatabaseException { 1098 throws ArtifactDatabaseException
1086 throw new ArtifactDatabaseException("Not implemented, yet!"); 1099 {
1100 ArtifactCollectionFactory acf = getArtifactCollectionFactory();
1101
1102 if (acf == null) {
1103 throw new ArtifactDatabaseException(NO_SUCH_FACTORY);
1104 }
1105
1106 ArtifactCollection ac = backend.createCollection(
1107 ownerId, data, context, acf);
1108
1109 if (ac == null) {
1110 throw new ArtifactDatabaseException(COLLECTION_CREATION_FAILED);
1111 }
1112
1113 Document result = XMLUtils.newDocument();
1114
1115 XMLUtils.ElementCreator ec = new XMLUtils.ElementCreator(
1116 result,
1117 ArtifactNamespaceContext.NAMESPACE_URI,
1118 ArtifactNamespaceContext.NAMESPACE_PREFIX);
1119
1120 Element root = ec.create("result");
1121 result.appendChild(root);
1122
1123 result.setTextContent(OPERATION_SUCCESSFUL);
1124
1125 return result;
1087 } 1126 }
1088 1127
1089 public Document deleteCollection(String collectionId, CallMeta callMeta) 1128 public Document deleteCollection(String collectionId, CallMeta callMeta)
1090 throws ArtifactDatabaseException { 1129 throws ArtifactDatabaseException {
1091 throw new ArtifactDatabaseException("Not implemented, yet!"); 1130 throw new ArtifactDatabaseException("Not implemented, yet!");

http://dive4elements.wald.intevation.org