import java.net.URI;
import java.util.Hashtable;
-import java.util.Vector;
/**
* @author jimp
*/
protected static final Hashtable TYPES=new Hashtable();
+
+ protected SessionUrn()
+ {
+ //
+ }
/**
* construct urn for a locally stored session file
* @param type
if (!TYPES.containsKey(type.toLowerCase()))
throw new Error("Unknown "+this.getClass().getName()+" type '"+type+"' for URL '"+url+"'");
try {
- urn = URI.create(type+"://"+url.getPath());
+
+ this.setURN(type+"://"+url.getPath());
+ // urn = URI.create(type+"://"+url.getPath());
} catch (Exception e) {
// TODO: something better than throwing an error should be done here.
+ e.printStackTrace(System.err);
throw new Error(e);
}
}
+
+ protected SessionUrn(String type, URI uri) {
+ if (!TYPES.containsKey(type.toLowerCase()))
+ throw new Error("Unknown "+this.getClass().getName()+" type '"+type+"' for URI '"+uri+"'");
+ try {
+ // this.setURN(type+"://"+uri.getPath());
+ //bad hack but should do the trick
+ this.setURN(type+"://"+uri.getRawPath());
+ } catch (Exception e) {
+ // TODO: something better than throwing an error should be done here.
+ e.printStackTrace(System.err);
+ throw new Error(e);
+ }
+ }
+
public String getSessionUrn() {
- return urn.toString();
+ return this.urn.toString();
}
+
+ /**
+ * Set the urn attribute
+ * create a URI from the provided String
+ *
+ * @param urnString urn to convert to a URN
+ */
+ protected void setURN(String urnString) throws InvalidSessionUrnException// NullPointerException, IllegalArgumentException
+ {
+ try {
+ this.urn = URI.create(urnString);
+ } catch (Exception e) {
+ throw new InvalidSessionUrnException(e);
+ }
+ }
+
}