refactored org to uk
[vamsas.git] / src / org / vamsas / client / SessionUrn.java
index 2cd5fdd..4eff113 100644 (file)
@@ -3,8 +3,8 @@
  */
 package org.vamsas.client;
 
-import java.io.File;
 import java.net.URI;
+import java.util.Hashtable;
 import java.util.Vector;
 
 /**
@@ -13,25 +13,26 @@ import java.util.Vector;
  * uses java.net.URI internally for construction of URN
  */
 public abstract class SessionUrn {
-  URI urn;
+  protected URI urn;
   /**
    * The types of URI protocols we understand
    */
-  protected static final Vector TYPES=new Vector();
-  static {
-    TYPES.add(SessionUrn.VAMSASDOCUMENT);
-  }
-  public static String VAMSASDOCUMENT="vdoc";
+  protected static final Hashtable TYPES=new Hashtable();
   
   /**
    * construct urn for a locally stored session file
    * @param type
-   * @param file
+   * @param url
    */
-  protected SessionUrn(String type, File file) {
-    if (!TYPES.contains(type.toLowerCase()))
-      throw new Error("Unknown "+this.getClass().getName()+" type '"+type+"' for file '"+file.getAbsolutePath()+"'");
-    urn = URI.create(type+"://"+file.getAbsolutePath());
+  protected SessionUrn(String type, java.net.URL url) {
+    if (!TYPES.containsKey(type.toLowerCase()))
+      throw new Error("Unknown "+this.getClass().getName()+" type '"+type+"' for URL '"+url+"'");
+    try {
+      urn = URI.create(type+"://"+url.getPath());
+    } catch (Exception e) {
+      // TODO: something better than throwing an error should be done here.
+      throw new Error(e);
+    }
   }
   public String getSessionUrn() {
     return urn.toString();