/** * */ package org.vamsas.client; import java.io.File; import java.net.URI; import java.util.Hashtable; import java.util.Vector; /** * @author jimp * base class for vamsas session/document types * uses java.net.URI internally for construction of URN */ public abstract class SessionUrn { URI urn; /** * The types of URI protocols we understand */ protected static final Hashtable TYPES=new Hashtable(); /** * construct urn for a locally stored session file * @param type * @param file */ protected SessionUrn(String type, File file) { if (!TYPES.containsKey(type.toLowerCase())) throw new Error("Unknown "+this.getClass().getName()+" type '"+type+"' for file '"+file.getAbsolutePath()+"'"); urn = URI.create(type+"://"+file.getAbsolutePath()); } public String getSessionUrn() { return urn.toString(); } /** * TODO: LATER: think about this again. * @return File(urn.getPath()) */ public File asFile() { return new File(urn.getPath()); } // TODO: add abstract 'handler' methods for resolving the URN to a particular class }