*/
package uk.ac.vamsas.client;
-import java.io.File;
import java.net.URI;
import java.util.Hashtable;
-import java.util.Vector;
/**
* @author jimp
}
/**
- * Set arun attribute
+ * 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 NullPointerException, IllegalArgumentException
+ protected void setURN(String urnString) throws InvalidSessionUrnException// NullPointerException, IllegalArgumentException
{
- this.urn = URI.create(urnString);
+ try {
+ this.urn = URI.create(urnString);
+ } catch (Exception e) {
+ throw new InvalidSessionUrnException(e);
+ }
}
}
package uk.ac.vamsas.client.simpleclient;
import java.io.File;
-import java.net.MalformedURLException;
import java.net.URI;
import uk.ac.vamsas.client.InvalidSessionUrnException;
/**
* SessionUrn for simpleclient sessions:
* simpleclient://{Absolute path to session directory}
+ *
+ * For simpleclient urn, it consideres as on the same machine, using the path to the session
+ * directory to generate the session URN
+ *
* @author jimp
*
*/
}
-
- public SessionUrn(File sessionLocation) throws MalformedURLException {
+ /**
+ * Generates a sessionURN bases on a session directory location
+ *
+ * @param sessionLocation the file object to the session directory
+ */
+ public SessionUrn(File sessionLocation)
+ {//throws MalformedURLException {
// TODO: LATER: implement switch to have vamsas document or simpleclient sessions for same constructor
- // super(SIMPLECLIENT, sessionLocation.getAbsoluteFile().toURL());
- // super(SIMPLECLIENT, sessionLocation.getAbsoluteFile().toURL());
+ //use URI instead of URL
super(SIMPLECLIENT, sessionLocation.getAbsoluteFile().toURI());
- //else
- // super(VAMSASDOCUMENT, sessionLocation);
}
- public SessionUrn(VamsasSession session) throws MalformedURLException {
- super(SIMPLECLIENT, session.sessionDir.getAbsoluteFile().toURL());
- }
-
-
/**
- * @see uk.ac.vamsas.client.SessionUrn#setURN(java.lang.String)
+ * Generates a sessionURN bases on a vamsas session
+ * @param session a VamsasSession
+ *
+ * Should return the same URN string than the creation with the session directory
*/
- protected void setURN(String urnString) throws NullPointerException, IllegalArgumentException {
- super.setURN(urnString);
+ public SessionUrn(VamsasSession session)
+ {
+ //throws MalformedURLException {
+ // use URI instead of URL
+ super(SIMPLECLIENT, session.sessionDir.getAbsoluteFile().toURI());
}
+
+
+
+
/**
* TODO: LATER: think about this again.
- * @return File(urn.getPath())
+ *
+ * Retrieves the file associated to the current sessionURN.
+ * The sessionURN (URI) is based on the session directory absolute path.
+ * Use the raw path of the URN and change the scheme to file to generate a new file
+ * URI. Then, from the URI create the File object (a File object can be created from an uri)
+ *
+ * @return File object representing the session URN //
+ * File(urn.getPath())
*/
public File asFile() {
String path = this.urn.getRawPath();
-
- /*if ("\\".equals(File.separator))
- {//windows stuff
- //remove last separator at last position if found
- /* not needed anymore if (path.charAt(path.length() - 1) == '/')path = path.substring(0, path.length() - 1);
- path = path.replaceAll("/", "\\\\");
- */
- /* int index = path.indexOf(File.separator);
-
- if (index >-1)
- {//separator found, keep last part of the urn - filename
- path = path.substring(index+1, path.length());
- }
- //remove encoded space character
- // path = path.replaceAll("%20", " ");
- }
- /*shall we use URI or String to create the object*/
- /* from URI : URI.create("file://path") , but first / */
- /* return new File(path);*/
return new File ( URI.create("file://"+path));
}
// TODO: add abstract 'handler' methods for resolving the URN to a particular class