X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=inline;f=src%2Fuk%2Fac%2Fvamsas%2Fclient%2Fsimpleclient%2FSessionUrn.java;h=ac64f0e0c2ef4ffa4bdb66477da4f8f944569944;hb=1e940bf58bbd9f228ff991b5ee6e5b38c36a78fe;hp=18d54501b55d5421c9f4712c4864dfeb83c66f62;hpb=734bcc2a380be2c5aa9e229936cb2e026a86dfef;p=vamsas.git diff --git a/src/uk/ac/vamsas/client/simpleclient/SessionUrn.java b/src/uk/ac/vamsas/client/simpleclient/SessionUrn.java index 18d5450..ac64f0e 100644 --- a/src/uk/ac/vamsas/client/simpleclient/SessionUrn.java +++ b/src/uk/ac/vamsas/client/simpleclient/SessionUrn.java @@ -1,13 +1,17 @@ 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 * */ @@ -34,47 +38,51 @@ public class SessionUrn extends uk.ac.vamsas.client.SessionUrn { this.setURN(urnString); } - 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()); - //else - // super(VAMSASDOCUMENT, sessionLocation); + //use URI instead of URL + super(SIMPLECLIENT, sessionLocation.getAbsoluteFile().toURI()); } - 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 = urn.getPath(); - - if ("\\".equals(File.separator)) - { - //remove last separator at last position if found - if (path.charAt(path.length() - 1) == '/')path = path.substring(0, path.length() - 1); - path = path.replaceAll("/", "\\\\"); - } - int index = path.lastIndexOf(File.separator); - /*don t remember why - if (index >-1) - {//separator found, keep last part of the urn - filename - path = path.substring(index+1, path.length()); - } - *yop - */ - return new File(urn.getPath()); + String path = this.urn.getRawPath(); + + return new File ( URI.create("file://"+path)); } // TODO: add abstract 'handler' methods for resolving the URN to a particular class }