# HG changeset patch # User Ingo Weinzierl # Date 1299575455 0 # Node ID dad6071c90728146abbf505c5e4929e76c30c3b0 # Parent 3bce5556a2e5af891a835f46c53143d562349b5e Implemented the getCollectionAttribute() and setCollectionAttribute() methods. artifacts/trunk@1422 c6561f87-3c4e-4783-a992-168aeb5c3f6f diff -r 3bce5556a2e5 -r dad6071c9072 ChangeLog --- a/ChangeLog Tue Mar 08 09:08:15 2011 +0000 +++ b/ChangeLog Tue Mar 08 09:10:55 2011 +0000 @@ -1,3 +1,9 @@ +2011-03-08 Ingo Weinzierl + + * artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java: + Implemented the setCollectionAttribute() and getCollectionAttribute() + methods. + 2011-03-08 Ingo Weinzierl * artifact-database/src/main/resources/sql/org-h2-driver.properties, diff -r 3bce5556a2e5 -r dad6071c9072 artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java --- a/artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java Tue Mar 08 09:08:15 2011 +0000 +++ b/artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java Tue Mar 08 09:10:55 2011 +0000 @@ -1240,14 +1240,47 @@ } public Document getCollectionAttribute(String collectionId, String artifactId, - CallMeta callMeta) throws ArtifactDatabaseException { - throw new ArtifactDatabaseException("Not implemented, yet!"); + CallMeta callMeta) throws ArtifactDatabaseException + { + logger.debug("Fetch the attribute for the artifact: " + artifactId); + + return backend.getCollectionAttribute(collectionId, artifactId); } public Document setCollectionAttribute(String collectionId, String artifactId, - Document attribute, CallMeta callMeta) - throws ArtifactDatabaseException { - throw new ArtifactDatabaseException("Not implemented, yet!"); + Document source, CallMeta callMeta) + throws ArtifactDatabaseException + { + logger.debug("Set the attribute for the artifact: " + artifactId); + + Document attribute = XMLUtils.newDocument(); + + Node attr = (Node) XMLUtils.xpath( + source, + XPATH_COLLECTION_ITEM_ATTRIBUTE, + XPathConstants.NODE, + ArtifactNamespaceContext.INSTANCE); + + if (attr != null) { + attribute.appendChild(attribute.importNode(attr, true)); + } + + Document result = XMLUtils.newDocument(); + + XMLUtils.ElementCreator ec = new XMLUtils.ElementCreator( + result, + ArtifactNamespaceContext.NAMESPACE_URI, + ArtifactNamespaceContext.NAMESPACE_PREFIX); + + Element root = ec.create("result"); + result.appendChild(root); + + boolean success = backend.setCollectionAttribute( + collectionId, artifactId, attribute); + + root.setTextContent(success ? OPERATION_SUCCESSFUL: OPERATION_FAILURE); + + return result; } public Document addCollectionArtifact(