diff WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/util/ObjectRegistry.java @ 0:049760c677de default tip

Galaxy WSExtensions added successfully
author uga-galaxy-group
date Tue, 05 Jul 2011 19:34:18 -0400
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/util/ObjectRegistry.java	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,55 @@
+/*
+ * (c) Copyright IBM Corp 2001, 2005 
+ */
+
+package edu.uga.cs.lsdis.meteors.wadls.util;
+
+import java.util.*;
+
+/**
+ * The <em>ObjectRegistry</em> is used to do name-to-object reference lookups.
+ * If an <em>ObjectRegistry</em> is passed as a constructor argument, then this
+ * <em>ObjectRegistry</em> will be a cascading registry: when a lookup is
+ * invoked, it will first look in its own table for a name, and if it's not
+ * there, it will cascade to the parent <em>ObjectRegistry</em>.
+ * All registration is always local. [??]
+ * 
+ * @author   Sanjiva Weerawarana
+ * @author   Matthew J. Duftler
+ */
+public class ObjectRegistry {
+  Hashtable      reg    = new Hashtable ();
+  ObjectRegistry parent = null;
+
+  public ObjectRegistry () {
+  }
+
+  public ObjectRegistry (ObjectRegistry parent) {
+    this.parent = parent;
+  }
+
+  // register an object
+  public void register (String name, Object obj) {
+    reg.put (name, obj);
+  }
+
+  // unregister an object (silent if unknown name)
+  public void unregister (String name) {
+    reg.remove (name);
+  }
+
+  // lookup an object: cascade up if needed
+  public Object lookup (String name) throws IllegalArgumentException {
+    Object obj = reg.get (name);
+
+    if (obj == null && parent != null) {
+      obj = parent.lookup (name);
+    }
+
+    if (obj == null) {
+      throw new IllegalArgumentException ("object '" + name + "' not in registry");
+    }
+
+    return obj;
+  }
+}
\ No newline at end of file