+ /**
+ * initialise the vamsas session state and create a SimpleClient object to connect to it
+ * @param sessdir newly created or existing session directory
+ * @param userId
+ * @param clientHandle
+ * @param vamsasDocument null or a document to pass to SimpleCLient to write into the sessdir
+ * @return the client
+ * @throws IOException if there are problems in session or client creation or if the session already has a vamsasDocument
+ * @throws InvalidSessionUrnException for a malformed sessdir
+ */
+ private IClient initClient(File sessdir, UserHandle userId,
+ ClientHandle clientHandle, File vamsasDocument) throws IOException, InvalidSessionUrnException, InvalidSessionDocumentException {
+ IClient client = null;
+ // create session
+ VamsasSession vamsasSession = null;
+ if (vamsasDocument==null)
+ {
+ vamsasSession = new VamsasSession(sessdir);
+ } else {
+ vamsasSession = new VamsasSession(sessdir, vamsasDocument);
+ }
+
+ this.getSessionManager().addSession(
+ new SessionHandle(new SessionUrn(vamsasSession).getSessionUrn()));
+ if (userId == null) {
+ // create a default userHandle
+ // userId = new UserHandle(System.getProperty("user.name",
+ // System.getProperty("USERNAME","Joe Doe")),
+ // System.getProperty("host.name",System.getProperty("HOSTNAME",
+ // "Unknown") ));// clientName, clientVersion, sessionPath);
+ userId = new UserHandle(null, null);
+ }
+
+ // FullName and organisation should not be null (otherwise UserHandle equals
+ // method raises an java.lang.NullPointerException )
+ // use current OS user and hostname, if null
+ if (userId.getFullName() == null) {
+ userId.setFullName(System.getProperty("user.name", System.getProperty(
+ "USERNAME", "Joe Doe")));
+ }
+
+ if (userId.getOrganization() == null) {
+ userId.setOrganization(System.getProperty("host.name", System
+ .getProperty("HOSTNAME", "Unknown")));
+ }
+
+ if (clientHandle == null)
+ clientHandle = new ClientHandle("SimpleVamsasClientApp", "0.1");
+ else {
+ if (clientHandle.getClientName() == null) {
+ clientHandle.setClientName("SimpleVamsasClientApp");
+ }
+ if (clientHandle.getVersion() == null) {
+ clientHandle.setVersion("0.1");
+ }
+ }
+
+ // create simple client
+ client = new SimpleClient(userId, clientHandle, vamsasSession);
+ vamsasSession.addClient((SimpleClient) client);
+ vamsasSession.setSessionManager(this.getSessionManager());
+ return client;
+ }