diff artifact-database/src/main/java/org/dive4elements/artifactdatabase/DefaultArtifactContext.java @ 473:d0ac790a6c89 dive4elements-move

Moved directories to org.dive4elements
author Sascha L. Teichmann <teichmann@intevation.de>
date Thu, 25 Apr 2013 10:57:18 +0200
parents artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactContext.java@b77465617071
children 415df0fc4fa1
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/artifact-database/src/main/java/org/dive4elements/artifactdatabase/DefaultArtifactContext.java	Thu Apr 25 10:57:18 2013 +0200
@@ -0,0 +1,83 @@
+/*
+ * Copyright (c) 2010 by Intevation GmbH
+ *
+ * This program is free software under the LGPL (>=v2.1)
+ * Read the file LGPL.txt coming with the software for details
+ * or visit http://www.gnu.org/licenses/ if it does not exist.
+ */
+
+package de.intevation.artifactdatabase;
+
+import java.util.HashMap;
+
+import org.w3c.dom.Document;
+
+import de.intevation.artifacts.GlobalContext;
+
+/**
+ * Default implementation of the context.
+ * Besides of the configuration it hosts a map to store key/value pairs.
+ *
+ * @author <a href="mailto:sascha.teichmann@intevation.de">Sascha L. Teichmann</a>
+ */
+public class DefaultArtifactContext implements GlobalContext
+{
+    /**
+     * The global configuration document of the artifact database.
+     */
+    protected Document config;
+
+    /**
+     * Custom key/value pairs to be used globally in the whole server.
+     */
+    protected HashMap map;
+
+    /**
+     * Default constructor
+     */
+    public DefaultArtifactContext() {
+        this(null);
+    }
+
+    /**
+     * Constructor to create a context with a given global
+     * configuration document and an empty map of custom
+     * key/value pairs.
+     * @param config
+     */
+    public DefaultArtifactContext(Document config) {
+        this.config = config;
+        map = new HashMap();
+    }
+
+    /**
+     * Fetch a custom value from the global key/value map using
+     * a given key.
+     * @param key The key.
+     * @return The stored value or null if no value was found under
+     * this key.
+     */
+    public synchronized Object get(Object key) {
+        return map.get(key);
+    }
+
+    /**
+     * Store a custom key/value pair in the global map.
+     * @param key The key to store
+     * @param value The value to store
+     * @return The old value registered under the key or null
+     * if none wa there before.
+     */
+    public synchronized Object put(Object key, Object value) {
+        return map.put(key, value);
+    }
+
+    /**
+     * Returns a reference to the global configuration document.
+     * @return The global configuration document.
+     */
+    public Document getConfig() {
+        return config;
+    }
+}
+// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org