# HG changeset patch # User Sascha L. Teichmann # Date 1252573029 0 # Node ID d5dc2900392fad1e9a0148b1c0618a743c33fbf8 # Parent 00596a591a2fd9cc608fc75ae1385b7c93d41301 * Added callback parameter to Artifact.setup() * New namespace context for artifacts. artifacts/trunk@58 c6561f87-3c4e-4783-a992-168aeb5c3f6f diff -r 00596a591a2f -r d5dc2900392f Changelog --- a/Changelog Thu Sep 10 08:14:03 2009 +0000 +++ b/Changelog Thu Sep 10 08:57:09 2009 +0000 @@ -1,3 +1,27 @@ +2009-09-09 Sascha L. Teichmann + + * artifacts/src/main/java/de/intevation/artifacts/Artifact.java(setup): Added + callback parameter in form of the creating factory. + + * artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java, + artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifact.java: + Adjusted to match new Artifact interface. + + * artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactFactory.java: + Call artifact.setup() with this. + + * artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifact.java: + Removed namespace stuff. + + * artifacts/src/main/java/de/intevation/artifacts/ArtifactNamespaceContext.java: + Created namespace stuff, need for XPath for e.g. + + * artifact-database/src/main/java/de/intevation/artifactdatabase/rest/FactoriesResource.java: + Use new namespace stuff. + + * artifact-database/src/main/java/de/intevation/artifactdatabase/rest/Standalone.java: + Added author. + 2009-09-09 Sascha L. Teichmann * artifact-database/src/main/java/de/intevation/artifactdatabase/XMLUtils.java: diff -r 00596a591a2f -r d5dc2900392f artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java --- a/artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java Thu Sep 10 08:14:03 2009 +0000 +++ b/artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java Thu Sep 10 08:57:09 2009 +0000 @@ -123,8 +123,8 @@ } } - public void setup(String identifier, Object context) { - original.setup(identifier, context); + public void setup(String identifier, ArtifactFactory factory, Object context) { + original.setup(identifier, factory, context); } public void endOfLife(Object context) { diff -r 00596a591a2f -r d5dc2900392f artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifact.java --- a/artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifact.java Thu Sep 10 08:14:03 2009 +0000 +++ b/artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifact.java Thu Sep 10 08:57:09 2009 +0000 @@ -6,6 +6,7 @@ import javax.xml.parsers.ParserConfigurationException; import de.intevation.artifacts.Artifact; +import de.intevation.artifacts.ArtifactFactory; import org.apache.log4j.Logger; @@ -17,16 +18,6 @@ { private static Logger logger = Logger.getLogger(DefaultArtifact.class); - /** - * The URI of the Namespace of the Artifacts - */ - public final static String NAMESPACE_URI = "http://www.intevation.de/2009/artifacts"; - - /** - * The XML-Prefix for the Artifacts-Namespae - */ - public final static String NAMESPACE_PREFIX = "art"; - protected String identifier; public DefaultArtifact() { @@ -69,7 +60,7 @@ return new byte[0]; } - public void setup(String identifier, Object context) { + public void setup(String identifier, ArtifactFactory factory, Object context) { this.identifier = identifier; } diff -r 00596a591a2f -r d5dc2900392f artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactFactory.java --- a/artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactFactory.java Thu Sep 10 08:14:03 2009 +0000 +++ b/artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactFactory.java Thu Sep 10 08:57:09 2009 +0000 @@ -53,7 +53,7 @@ Artifact artifact = (Artifact)artifactClass.newInstance(); - artifact.setup(identifier, context); + artifact.setup(identifier, this, context); return artifact; } diff -r 00596a591a2f -r d5dc2900392f artifact-database/src/main/java/de/intevation/artifactdatabase/rest/FactoriesResource.java --- a/artifact-database/src/main/java/de/intevation/artifactdatabase/rest/FactoriesResource.java Thu Sep 10 08:14:03 2009 +0000 +++ b/artifact-database/src/main/java/de/intevation/artifactdatabase/rest/FactoriesResource.java Thu Sep 10 08:57:09 2009 +0000 @@ -1,6 +1,7 @@ package de.intevation.artifactdatabase.rest; import de.intevation.artifacts.ArtifactDatabase; +import de.intevation.artifacts.ArtifactNamespaceContext; import org.restlet.data.MediaType; @@ -38,8 +39,8 @@ ElementCreator ec = new ElementCreator( document, - DefaultArtifact.NAMESPACE_URI, - DefaultArtifact.NAMESPACE_PREFIX); + ArtifactNamespaceContext.NAMESPACE_URI, + ArtifactNamespaceContext.NAMESPACE_PREFIX); ArtifactDatabase db = (ArtifactDatabase)getContext() .getAttributes().get("database"); diff -r 00596a591a2f -r d5dc2900392f artifact-database/src/main/java/de/intevation/artifactdatabase/rest/Standalone.java --- a/artifact-database/src/main/java/de/intevation/artifactdatabase/rest/Standalone.java Thu Sep 10 08:14:03 2009 +0000 +++ b/artifact-database/src/main/java/de/intevation/artifactdatabase/rest/Standalone.java Thu Sep 10 08:57:09 2009 +0000 @@ -12,6 +12,9 @@ import org.apache.log4j.Logger; +/** + * @author Sascha L. Teichmann (sascha.teichmann@intevation) + */ public class Standalone { private static Logger logger = Logger.getLogger(Standalone.class); diff -r 00596a591a2f -r d5dc2900392f artifacts/src/main/java/de/intevation/artifacts/Artifact.java --- a/artifacts/src/main/java/de/intevation/artifacts/Artifact.java Thu Sep 10 08:14:03 2009 +0000 +++ b/artifacts/src/main/java/de/intevation/artifacts/Artifact.java Thu Sep 10 08:57:09 2009 +0000 @@ -24,7 +24,7 @@ * * There are two more methods involved with the life cycle of the are: *
    - *
  1. {@link #setup(String, Object) setup()}: Called after created by the + *
  2. {@link #setup(String, ArtifactFactory, Object) setup()}: Called after created by the * factory.
  3. *
  4. {@link #endOfLife(Object) endOfLife()}: Called when the artifact * is going to be removed from @@ -84,9 +84,10 @@ * When created by a factory this method is called to * initialize the artifact. * @param identifier The identifier from artifact database + * @param factory The factory which created this artifact. * @param context The global context of the runtime system. */ - public void setup(String identifier, Object context); + public void setup(String identifier, ArtifactFactory factory, Object context); /** * Called from artifact database when an artifact is diff -r 00596a591a2f -r d5dc2900392f artifacts/src/main/java/de/intevation/artifacts/ArtifactNamespaceContext.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/artifacts/src/main/java/de/intevation/artifacts/ArtifactNamespaceContext.java Thu Sep 10 08:57:09 2009 +0000 @@ -0,0 +1,53 @@ +package de.intevation.artifacts; + +import javax.xml.XMLConstants; + +import javax.xml.namespace.NamespaceContext; + +import java.util.Iterator; + +/** + * @author Sascha L. Teichmann (sascha.teichmann@intevation) + */ +public class ArtifactNamespaceContext +implements NamespaceContext +{ + /** + * The URI of the namespace of the artifacts. + */ + public final static String NAMESPACE_URI = "http://www.intevation.de/2009/artifacts"; + + /** + * The XML prefix for the artifacts namespace. + */ + public final static String NAMESPACE_PREFIX = "art"; + + public ArtifactNamespaceContext() { + } + + public String getNamespaceURI(String prefix) { + + if (prefix == null) { + throw new NullPointerException("Null prefix"); + } + + if (NAMESPACE_PREFIX.equals(prefix)) { + return NAMESPACE_URI; + } + + if ("xml".equals(prefix)) { + return XMLConstants.XML_NS_URI; + } + + return XMLConstants.NULL_NS_URI; + } + + public String getPrefix(String uri) { + throw new UnsupportedOperationException(); + } + + public Iterator getPrefixes(String uri) { + throw new UnsupportedOperationException(); + } +} +// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8: