Author: mes
Date: 2010-09-22 15:12:54 -0700 (Wed, 22 Sep 2010)
New Revision: 21977

Added:
   core3/io-api/trunk/src/main/java/org/cytoscape/io/read/CySessionReader.java
   
core3/io-api/trunk/src/main/java/org/cytoscape/io/read/CySessionReaderManager.java
   
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/CySessionReaderManagerImpl.java
   
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/write/SessionWriterManagerImpl.java
Modified:
   core3/core-task-impl/trunk/
   
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/session/NewSessionTask.java
   
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/session/OpenSessionTask.java
   
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/session/OpenSessionTaskFactory.java
   
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/session/SaveSessionAsTask.java
   
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/session/SaveSessionTask.java
   
core3/core-task-impl/trunk/src/main/resources/META-INF/spring/bundle-context-osgi.xml
   
core3/core-task-impl/trunk/src/main/resources/META-INF/spring/bundle-context.xml
   core3/io-api/trunk/
   core3/io-api/trunk/src/main/java/org/cytoscape/io/write/SessionWriter.java
   
core3/io-api/trunk/src/main/java/org/cytoscape/io/write/SessionWriterFactory.java
   
core3/io-api/trunk/src/main/java/org/cytoscape/io/write/SessionWriterManager.java
   core3/io-impl/trunk/
   
core3/io-impl/trunk/src/main/resources/META-INF/spring/bundle-context-osgi.xml
   core3/io-impl/trunk/src/main/resources/META-INF/spring/bundle-context.xml
Log:
added support for new CySession api


Property changes on: core3/core-task-impl/trunk
___________________________________________________________________
Name: svn:ignore
   + .settings
target
.classpath
.project


Modified: 
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/session/NewSessionTask.java
===================================================================
--- 
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/session/NewSessionTask.java
    2010-09-22 22:12:11 UTC (rev 21976)
+++ 
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/session/NewSessionTask.java
    2010-09-22 22:12:54 UTC (rev 21977)
@@ -44,14 +44,7 @@
        }
 
        public void run(TaskMonitor taskMonitor) {
-               // All commented code should be handled by CySessionManager
-
-               //mgr.setSessionState(Cytoscape.SESSION_OPENED);
-
-               mgr.createNewSession();
-
-               //mgr.setSessionState(Cytoscape.SESSION_NEW);
-               
//Cytoscape.getPropertyChangeSupport().firePropertyChange(Cytoscape.CYTOSCAPE_INITIALIZED,
 null, null);
+               mgr.setCurrentSession(null);
        }
 
        @Override

Modified: 
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/session/OpenSessionTask.java
===================================================================
--- 
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/session/OpenSessionTask.java
   2010-09-22 22:12:11 UTC (rev 21976)
+++ 
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/session/OpenSessionTask.java
   2010-09-22 22:12:54 UTC (rev 21977)
@@ -33,8 +33,11 @@
 import org.cytoscape.work.AbstractTask;
 import org.cytoscape.work.TaskMonitor;
 import org.cytoscape.work.Tunable;
+import org.cytoscape.session.CySession;
 import org.cytoscape.session.CySessionManager;
 import org.cytoscape.io.read.CyNetworkViewReaderManager;
+import org.cytoscape.io.read.CySessionReader;
+import org.cytoscape.io.read.CySessionReaderManager;
 import org.cytoscape.io.read.CyTableReader;
 import org.cytoscape.io.DataCategory;
 
@@ -46,8 +49,8 @@
  * setAcceleratorCombo(java.awt.event.KeyEvent.VK_O, ActionEvent.CTRL_MASK);
  */
 public class OpenSessionTask extends AbstractTask {
-       private CySessionManager mgr;
-       private CyNetworkViewReaderManager factory;
+       private CySessionManager sessionMgr;
+       private CySessionReaderManager readerMgr;
 
        @Tunable(description="Session file to load")
        public File file;
@@ -56,44 +59,50 @@
         * Constructor.<br>
         * Add a menu item under "File" and set shortcut.
         */
-       public OpenSessionTask(CySessionManager mgr, CyNetworkViewReaderManager 
factory) {
-               this.mgr = mgr;
-               this.factory = factory;
+       public OpenSessionTask(CySessionManager mgr, CySessionReaderManager 
factory) {
+               this.sessionMgr = mgr;
+               this.readerMgr = factory;
        }
 
        /**
         * Clear current session and open the cys file.
         */
        public void run(TaskMonitor taskMonitor) throws Exception {
-               String name = file.toString();
 
-               // Close all networks in the workspace.
-               //mgr.setSessionState(Cytoscape.SESSION_OPENED);
-               mgr.createNewSession();
-               //mgr.setSessionState(Cytoscape.SESSION_NEW);
-
-
                taskMonitor.setStatusMessage("Opening Session File.\n\nIt may 
take a while.\nPlease wait...");
                taskMonitor.setProgress(0.0);
 
-               CyTableReader sr;
+               if ( file == null )
+                       throw new NullPointerException("No file specified!");
+               
+               CySessionReader reader = readerMgr.getReader((file.toURI()));
 
-               try {
-                       //sr = factory.getReader(file.toURI(), 
DataCategory.SESSION);
-                       //sr.read();
-               } catch (Exception e) {
-                       throw new Exception("Cannot open the session file: " + 
name, e);
-               } finally {
-                       sr = null;
+               if (cancelled)
+                       return;
+
+               if (reader == null)
+                       throw new NullPointerException("Failed to find 
appropriate reader for file: " + file);
+       
+               insertTasksAfterCurrentTask(new LoadSessionTask(reader));
+       }
+       
+       
+       private class LoadSessionTask extends AbstractTask {
+               CySessionReader reader;
+               LoadSessionTask(CySessionReader reader) {
+                       this.reader = reader;
                }
+               
+               public void run(TaskMonitor taskMonitor) {
+                       CySession newSession = reader.getCySession();
+                       if ( newSession == null ) {
+                               throw new NullPointerException("Session could 
not be read for file: " + file);
+                       }
 
-               mgr.setCurrentSessionFileName(name);
-
-               taskMonitor.setProgress(1.0);
-               taskMonitor.setStatusMessage("Session file " + name + " 
successfully loaded.");
+                       sessionMgr.setCurrentSession(newSession);
+                       taskMonitor.setProgress(1.0);
+                       taskMonitor.setStatusMessage("Session file " + file + " 
successfully loaded.");
+               }
        }
 
-       @Override
-       public void cancel() {
-       }
 }

Modified: 
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/session/OpenSessionTaskFactory.java
===================================================================
--- 
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/session/OpenSessionTaskFactory.java
    2010-09-22 22:12:11 UTC (rev 21976)
+++ 
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/session/OpenSessionTaskFactory.java
    2010-09-22 22:12:54 UTC (rev 21977)
@@ -32,6 +32,7 @@
 
 import org.cytoscape.session.CySessionManager; 
 import org.cytoscape.io.read.CyNetworkViewReaderManager; 
+import org.cytoscape.io.read.CySessionReaderManager;
 
 import org.cytoscape.work.TaskFactory;
 import org.cytoscape.work.TaskIterator;
@@ -40,9 +41,9 @@
 public class OpenSessionTaskFactory implements TaskFactory {
 
        private CySessionManager mgr;
-       private CyNetworkViewReaderManager rmgr;
+       private CySessionReaderManager rmgr;
 
-       public OpenSessionTaskFactory(CySessionManager mgr, 
CyNetworkViewReaderManager rmgr) {
+       public OpenSessionTaskFactory(CySessionManager mgr, 
CySessionReaderManager rmgr) {
                this.mgr = mgr;
                this.rmgr = rmgr;
        }

Modified: 
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/session/SaveSessionAsTask.java
===================================================================
--- 
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/session/SaveSessionAsTask.java
 2010-09-22 22:12:11 UTC (rev 21976)
+++ 
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/session/SaveSessionAsTask.java
 2010-09-22 22:12:54 UTC (rev 21977)
@@ -57,6 +57,6 @@
        }
 
        public void run(TaskMonitor taskMonitor) throws Exception {
-               insertTasksAfterCurrentTask(new SessionWriter(writerMgr, 
sessionMgr, file));
+               insertTasksAfterCurrentTask(new SessionWriter(writerMgr, 
sessionMgr.getCurrentSession(), file));
        }
 }

Modified: 
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/session/SaveSessionTask.java
===================================================================
--- 
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/session/SaveSessionTask.java
   2010-09-22 22:12:11 UTC (rev 21976)
+++ 
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/session/SaveSessionTask.java
   2010-09-22 22:12:54 UTC (rev 21977)
@@ -32,6 +32,7 @@
 
 import org.cytoscape.io.write.SessionWriterManager;
 import org.cytoscape.io.write.SessionWriter;
+import org.cytoscape.session.CySession;
 import org.cytoscape.session.CySessionManager;
 import org.cytoscape.work.AbstractTask;
 import org.cytoscape.work.TaskMonitor;
@@ -40,7 +41,7 @@
 
 
 public class SaveSessionTask extends AbstractTask {
-       private final File file;
+
        private final SessionWriterManager writerMgr;
        private final CySessionManager sessionMgr;
 
@@ -51,10 +52,11 @@
                super();
                this.writerMgr = writerMgr;
                this.sessionMgr = sessionMgr;
-               file = new File(sessionMgr.getCurrentSessionFileName());
        }
 
        public void run(TaskMonitor taskMonitor) throws Exception {
-               insertTasksAfterCurrentTask(new SessionWriter(writerMgr, 
sessionMgr, file ));
+               CySession session = sessionMgr.getCurrentSession();
+               File file = new File(session.getFileName());
+               insertTasksAfterCurrentTask(new SessionWriter(writerMgr, 
session, file ));
        }
 } 

Modified: 
core3/core-task-impl/trunk/src/main/resources/META-INF/spring/bundle-context-osgi.xml
===================================================================
--- 
core3/core-task-impl/trunk/src/main/resources/META-INF/spring/bundle-context-osgi.xml
       2010-09-22 22:12:11 UTC (rev 21976)
+++ 
core3/core-task-impl/trunk/src/main/resources/META-INF/spring/bundle-context-osgi.xml
       2010-09-22 22:12:54 UTC (rev 21977)
@@ -5,7 +5,7 @@
                       http://www.springframework.org/schema/osgi 
http://www.springframework.org/schema/osgi/spring-osgi-1.0.xsd";
        default-lazy-init="false">
 
-
+       <!--  collect necessary services -->
        <osgi:reference id="cyNetworkNamingServiceRef"
                interface="org.cytoscape.session.CyNetworkNaming" />
 
@@ -38,20 +38,23 @@
 
        <osgi:reference id="networkWriterManagerServiceRef"
                interface="org.cytoscape.io.write.CyNetworkWriterManager" />
+       
+       <osgi:reference id="sessionWriterManagerServiceRef"
+               interface="org.cytoscape.io.write.SessionWriterManager" />      
+               
+       <osgi:reference id="sessionReaderManagerServiceRef"
+               interface="org.cytoscape.io.read.CySessionReaderManager" />     
 
-       <!--
-               <osgi:reference id="cyWriterManagerServiceRef"
-               interface="org.cytoscape.io.read.CyWriterManager"/> 
<osgi:reference
-               id="cySessionManagerServiceRef"
-               interface="org.cytoscape.session.CySessionManager"/>
-       -->
-
        <osgi:reference id="cyNetworkManagerServiceRef"
                interface="org.cytoscape.session.CyNetworkManager" />
 
+       <osgi:reference id="cySessionManagerServiceRef"
+               interface="org.cytoscape.session.CySessionManager" />
+
        <osgi:reference id="cyPropertyServiceRef" 
interface="org.cytoscape.property.CyProperty"
                filter="(cyPropertyName=coreSettings)" />
 
+       <!--  now register our services -->
        <osgi:service id="loadNetworkFileTaskFactoryService" 
ref="loadNetworkFileTaskFactory"
                interface="org.cytoscape.work.TaskFactory">
                <osgi:service-properties>
@@ -420,37 +423,46 @@
                </osgi:service-properties>
        </osgi:service>
        
-<!-- #####################     Task that set the imported network as the 
current one   ###################-->
+       <!--  consider removing -->
+       <!--  useful for command line, but not otherwise 
        <osgi:service id="setCurrentNetworkTaskFactoryService" 
ref="setCurrentNetworkTaskFactory" 
                        interface="org.cytoscape.work.TaskFactory"/>
+                       -->
 
+       <!-- session -->
+       <osgi:service id="newSessionTaskFactoryService" 
ref="newSessionTaskFactory"
+               interface="org.cytoscape.work.TaskFactory">
+               <osgi:service-properties>
+                       <entry key="title" value="Session" />
+                       <entry key="preferredMenu" value="File.New" />
+               </osgi:service-properties>
+       </osgi:service>
 
-       <!--
-               <osgi:service id="newSessionTaskFactoryService"
-               ref="newSessionTaskFactory"
-               interface="org.cytoscape.work.TaskFactory"> 
<osgi:service-properties>
-               <entry key="title" value="Session" /> <entry key="preferredMenu"
-               value="File.New" /> </osgi:service-properties> </osgi:service>
+       <osgi:service id="openSessionTaskFactoryService" 
ref="openSessionTaskFactory"
+               interface="org.cytoscape.work.TaskFactory">
+               <osgi:service-properties>
+                       <entry key="title" value="Open" />
+                       <entry key="preferredMenu" value="File" />
+               </osgi:service-properties>
+       </osgi:service>
 
-               <osgi:service id="openSessionTaskFactoryService"
-               ref="openSessionTaskFactory"
-               interface="org.cytoscape.work.TaskFactory"> 
<osgi:service-properties>
-               <entry key="title" value="Open" /> <entry key="preferredMenu"
-               value="File" /> </osgi:service-properties> </osgi:service>
+       <osgi:service id="saveSessionTaskFactoryService" 
ref="saveSessionTaskFactory"
+               interface="org.cytoscape.work.TaskFactory">
+               <osgi:service-properties>
+                       <entry key="title" value="Save" />
+                       <entry key="preferredMenu" value="File" />
+               </osgi:service-properties>
+       </osgi:service>
 
-               <osgi:service id="saveSessionTaskFactoryService"
-               ref="saveSessionTaskFactory"
-               interface="org.cytoscape.work.TaskFactory"> 
<osgi:service-properties>
-               <entry key="title" value="Save" /> <entry key="preferredMenu"
-               value="File" /> </osgi:service-properties> </osgi:service>
+       <osgi:service id="saveSessionAsTaskFactoryService" 
ref="saveSessionAsTaskFactory"
+               interface="org.cytoscape.work.TaskFactory">
+               <osgi:service-properties>
+                       <entry key="title" value="Save As" />
+                       <entry key="preferredMenu" value="File" />
+               </osgi:service-properties>
+       </osgi:service>
 
-               <osgi:service id="saveSessionAsTaskFactoryService"
-               ref="saveSessionAsTaskFactory"
-               interface="org.cytoscape.work.TaskFactory"> 
<osgi:service-properties>
-               <entry key="title" value="Save As" /> <entry key="preferredMenu"
-               value="File" /> </osgi:service-properties> </osgi:service>
-       -->
-
+       <!-- testing -->
        <osgi:service id="tunablesTestTaskFactoryService" 
ref="tunablesTestTaskFactory"
                interface="org.cytoscape.work.TaskFactory">
                <osgi:service-properties>

Modified: 
core3/core-task-impl/trunk/src/main/resources/META-INF/spring/bundle-context.xml
===================================================================
--- 
core3/core-task-impl/trunk/src/main/resources/META-INF/spring/bundle-context.xml
    2010-09-22 22:12:11 UTC (rev 21976)
+++ 
core3/core-task-impl/trunk/src/main/resources/META-INF/spring/bundle-context.xml
    2010-09-22 22:12:54 UTC (rev 21977)
@@ -201,33 +201,31 @@
              class="org.cytoscape.task.internal.zoom.FitContentTaskFactory">
        </bean>
 
-
-
-       <!-- Off until session stuff is implemented
+       <!-- session -->
        <bean id="newSessionTaskFactory" 
-             class="org.cytoscape.task.internal.session.newSessionTaskFactory">
+             class="org.cytoscape.task.internal.session.NewSessionTaskFactory">
                <constructor-arg ref="cySessionManagerServiceRef" />
        </bean>
 
        <bean id="openSessionTaskFactory" 
              
class="org.cytoscape.task.internal.session.OpenSessionTaskFactory">
                <constructor-arg ref="cySessionManagerServiceRef" />
-               <constructor-arg ref="cyReaderManagerServiceRef" />
+               <constructor-arg ref="sessionReaderManagerServiceRef" />
        </bean>
 
        <bean id="saveSessionTaskFactory" 
              
class="org.cytoscape.task.internal.session.SaveSessionTaskFactory">
                <constructor-arg ref="cySessionManagerServiceRef" />
-               <constructor-arg ref="cyWriterManagerServiceRef" />
+               <constructor-arg ref="sessionWriterManagerServiceRef" />
        </bean>
 
        <bean id="saveSessionAsTaskFactory" 
              
class="org.cytoscape.task.internal.session.SaveSessionAsTaskFactory">
                <constructor-arg ref="cySessionManagerServiceRef" />
-               <constructor-arg ref="cyWriterManagerServiceRef" />
+               <constructor-arg ref="sessionWriterManagerServiceRef" />
        </bean>
-       --> 
 
+       <!-- Misc -->
        <bean id="proxySettingsTaskFactory" 
              
class="org.cytoscape.task.internal.proxysettings.ProxySettingsTaskFactory">
                <constructor-arg ref="taskManagerServiceRef" />


Property changes on: core3/io-api/trunk
___________________________________________________________________
Name: svn:ignore
   + .settings
target
.classpath
.project


Added: 
core3/io-api/trunk/src/main/java/org/cytoscape/io/read/CySessionReader.java
===================================================================
--- core3/io-api/trunk/src/main/java/org/cytoscape/io/read/CySessionReader.java 
                        (rev 0)
+++ core3/io-api/trunk/src/main/java/org/cytoscape/io/read/CySessionReader.java 
2010-09-22 22:12:54 UTC (rev 21977)
@@ -0,0 +1,13 @@
+package org.cytoscape.io.read;
+
+import org.cytoscape.session.CySession;
+import org.cytoscape.work.Task;
+
+/**
+ */
+public interface CySessionReader extends Task {
+
+    CySession getCySession();
+
+}
+

Added: 
core3/io-api/trunk/src/main/java/org/cytoscape/io/read/CySessionReaderManager.java
===================================================================
--- 
core3/io-api/trunk/src/main/java/org/cytoscape/io/read/CySessionReaderManager.java
                          (rev 0)
+++ 
core3/io-api/trunk/src/main/java/org/cytoscape/io/read/CySessionReaderManager.java
  2010-09-22 22:12:54 UTC (rev 21977)
@@ -0,0 +1,29 @@
+package org.cytoscape.io.read;
+
+import java.io.InputStream;
+import java.net.URI;
+
+/**
+ * 
+ */
+public interface CySessionReaderManager {
+    /**
+     * Given a URI this method will attempt to find a CySessionReaderFactory
+     * that can read the URI, will set the InputStream for the factory and
+     * will return the reader task.
+     * @param uri The URI we're attempting to read. 
+     * @return A reader than can read the specified URI. Will return null if
+     * no reader can be found.
+     */
+    CySessionReader getReader(URI uri);
+
+    /**
+     * Given an InputStream this method will attempt to find a 
CySessionReaderFactory
+     * that can read the stream, will set the InputStream for the factory and
+     * will return the reader task.
+     * @param stream The input stream we're attempting to read. 
+     * @return A reader than can read the specified stream. Will return null if
+     * no reader can be found.
+     */
+    CySessionReader getReader(InputStream stream);
+}

Modified: 
core3/io-api/trunk/src/main/java/org/cytoscape/io/write/SessionWriter.java
===================================================================
--- core3/io-api/trunk/src/main/java/org/cytoscape/io/write/SessionWriter.java  
2010-09-22 22:12:11 UTC (rev 21976)
+++ core3/io-api/trunk/src/main/java/org/cytoscape/io/write/SessionWriter.java  
2010-09-22 22:12:54 UTC (rev 21977)
@@ -1,7 +1,7 @@
 
 package org.cytoscape.io.write;
 
-import org.cytoscape.session.CySessionManager;
+import org.cytoscape.session.CySession;
 import org.cytoscape.io.CyFileFilter;
 import org.cytoscape.work.TaskMonitor;
 import org.cytoscape.work.AbstractTask;
@@ -12,21 +12,19 @@
  */
 public final class SessionWriter extends AbstractTask implements CyWriter {
 
-       private final CySessionManager sessionMgr; 
+       private final CySession session; 
        private final SessionWriterManager writerMgr; 
        private final File outputFile; 
 
-       private boolean cancelTask;
+       public SessionWriter(SessionWriterManager writerMgr, CySession session, 
File outputFile) {
 
-       public SessionWriter(SessionWriterManager writerMgr, CySessionManager 
sessionMgr, File outputFile) {
-
                if ( writerMgr == null )
                        throw new NullPointerException("Writer Manager is 
null");
                this.writerMgr = writerMgr;
 
-               if ( sessionMgr == null )
+               if ( session == null )
                        throw new NullPointerException("Session Manager is 
null");
-               this.sessionMgr = sessionMgr;
+               this.session = session;
 
                if ( outputFile == null )
                        throw new NullPointerException("Output File is null");
@@ -41,14 +39,11 @@
                if ( filters.size() > 1 )
                        throw new IllegalArgumentException("Found too many 
session filters!");
 
-               CyWriter writer = 
writerMgr.getWriter(sessionMgr,filters.get(0),outputFile); 
+               CyWriter writer = 
writerMgr.getWriter(session,filters.get(0),outputFile); 
                if ( writer == null )
                        throw new NullPointerException("No CyWriter found for 
specified file type!");
 
                insertTasksAfterCurrentTask( writer );
        }
 
-       public void cancel() {
-               cancelTask = true;
-       }
 }

Modified: 
core3/io-api/trunk/src/main/java/org/cytoscape/io/write/SessionWriterFactory.java
===================================================================
--- 
core3/io-api/trunk/src/main/java/org/cytoscape/io/write/SessionWriterFactory.java
   2010-09-22 22:12:11 UTC (rev 21976)
+++ 
core3/io-api/trunk/src/main/java/org/cytoscape/io/write/SessionWriterFactory.java
   2010-09-22 22:12:54 UTC (rev 21977)
@@ -1,12 +1,12 @@
 package org.cytoscape.io.write;
 
 
-import org.cytoscape.session.CySessionManager;
+import org.cytoscape.session.CySession;
 
 /**
  * Returns a Task that will write
  */
 public interface SessionWriterFactory extends CyWriterFactory {
 
-       void setSessionManager(CySessionManager mgr);
+       void setSession(CySession session);
 }

Modified: 
core3/io-api/trunk/src/main/java/org/cytoscape/io/write/SessionWriterManager.java
===================================================================
--- 
core3/io-api/trunk/src/main/java/org/cytoscape/io/write/SessionWriterManager.java
   2010-09-22 22:12:11 UTC (rev 21976)
+++ 
core3/io-api/trunk/src/main/java/org/cytoscape/io/write/SessionWriterManager.java
   2010-09-22 22:12:54 UTC (rev 21977)
@@ -34,11 +34,11 @@
  */
 package org.cytoscape.io.write;
 
-import org.cytoscape.session.CySessionManager;
+import org.cytoscape.session.CySession;
 import org.cytoscape.io.CyFileFilter;
 import java.io.File;
 
 public interface SessionWriterManager extends CyWriterManager {
 
-       CyWriter getWriter(CySessionManager mgr, CyFileFilter filter, File 
file);
+       CyWriter getWriter(CySession session, CyFileFilter filter, File file);
 }


Property changes on: core3/io-impl/trunk
___________________________________________________________________
Name: svn:ignore
   + .settings
target
.classpath
.project


Added: 
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/CySessionReaderManagerImpl.java
===================================================================
--- 
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/CySessionReaderManagerImpl.java
                            (rev 0)
+++ 
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/CySessionReaderManagerImpl.java
    2010-09-22 22:12:54 UTC (rev 21977)
@@ -0,0 +1,15 @@
+package org.cytoscape.io.internal.read;
+
+import org.cytoscape.io.read.CySessionReader;
+import org.cytoscape.io.read.CySessionReaderManager;
+import org.cytoscape.io.read.InputStreamTaskFactory;
+import org.cytoscape.io.DataCategory;
+
+public class CySessionReaderManagerImpl extends
+               GenericReaderManager<InputStreamTaskFactory, CySessionReader> 
implements
+               CySessionReaderManager {
+
+       public CySessionReaderManagerImpl() {
+                       super(DataCategory.SESSION);
+       }
+}

Added: 
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/write/SessionWriterManagerImpl.java
===================================================================
--- 
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/write/SessionWriterManagerImpl.java
                             (rev 0)
+++ 
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/write/SessionWriterManagerImpl.java
     2010-09-22 22:12:54 UTC (rev 21977)
@@ -0,0 +1,29 @@
+package org.cytoscape.io.internal.write;
+
+import java.io.File;
+import org.cytoscape.io.CyFileFilter;
+import org.cytoscape.io.DataCategory;
+import org.cytoscape.io.write.CyWriter;
+import org.cytoscape.io.write.SessionWriterFactory;
+import org.cytoscape.io.write.SessionWriterManager;
+import org.cytoscape.session.CySession;
+
+public class SessionWriterManagerImpl extends
+               AbstractWriterManager<SessionWriterFactory> implements
+               SessionWriterManager {
+
+       public SessionWriterManagerImpl(DataCategory category) {
+               super(category);
+       }
+
+       @Override
+       public CyWriter getWriter(CySession session, CyFileFilter filter, File 
file) {
+               SessionWriterFactory factory = getMatchingFactory(filter, file);
+               if (factory == null) {
+                       throw new NullPointerException("Couldn't find matching 
factory for filter: " + filter);
+               }
+               factory.setSession(session);
+               return factory.getWriter();
+       }
+
+}

Modified: 
core3/io-impl/trunk/src/main/resources/META-INF/spring/bundle-context-osgi.xml
===================================================================
--- 
core3/io-impl/trunk/src/main/resources/META-INF/spring/bundle-context-osgi.xml  
    2010-09-22 22:12:11 UTC (rev 21976)
+++ 
core3/io-impl/trunk/src/main/resources/META-INF/spring/bundle-context-osgi.xml  
    2010-09-22 22:12:54 UTC (rev 21977)
@@ -37,10 +37,18 @@
                interface="org.cytoscape.io.write.ViewWriterManager">
        </osgi:service>
 
+       <osgi:service id="cySessionReaderManagerService" 
ref="cySessionReaderManager"
+               interface="org.cytoscape.io.read.CySessionReaderManager">
+       </osgi:service> 
+
        <osgi:service id="networkWriterManagerService" 
ref="networkWriterManager"
                interface="org.cytoscape.io.write.CyNetworkWriterManager">
        </osgi:service>
 
+       <osgi:service id="sessionWriterManagerService" 
ref="sessionWriterManager"
+               interface="org.cytoscape.io.write.SessionWriterManager">
+       </osgi:service>
+
        <osgi:service id="sifNetworkViewReaderFactoryService" 
ref="sifNetworkViewReaderFactory"
                interface="org.cytoscape.io.read.InputStreamTaskFactory">
                <osgi:service-properties>

Modified: 
core3/io-impl/trunk/src/main/resources/META-INF/spring/bundle-context.xml
===================================================================
--- core3/io-impl/trunk/src/main/resources/META-INF/spring/bundle-context.xml   
2010-09-22 22:12:11 UTC (rev 21976)
+++ core3/io-impl/trunk/src/main/resources/META-INF/spring/bundle-context.xml   
2010-09-22 22:12:54 UTC (rev 21977)
@@ -16,6 +16,24 @@
 
        <context:annotation-config />
 
+       <bean id="cysFilter" class="org.cytoscape.io.internal.CyFileFilterImpl">
+               <constructor-arg index="0">
+                       <set>
+                               <value>cys</value>
+                       </set>
+               </constructor-arg>
+               <constructor-arg index="1">
+                       <set>
+                               <value>application/zip</value>
+                       </set>
+               </constructor-arg>
+               <constructor-arg value="Cytoscape Session (.cys) File" />
+               <constructor-arg type="org.cytoscape.io.DataCategory" 
value="SESSION" />
+               <constructor-arg type="org.cytoscape.io.util.StreamUtil">
+                       <ref bean="streamUtil"/>
+               </constructor-arg>
+       </bean>
+
        <bean id="pngFilter" class="org.cytoscape.io.internal.CyFileFilterImpl">
                <constructor-arg index="0">
                        <set>
@@ -189,6 +207,9 @@
 
        <bean id="cyDataTableReaderManager" 
              class="org.cytoscape.io.internal.read.CyTableReaderManagerImpl" />
+             
+       <bean id="cySessionReaderManager" 
+             class="org.cytoscape.io.internal.read.CySessionReaderManagerImpl" 
/>            
 
        <!-- All Writer Managers -->
 
@@ -198,6 +219,11 @@
        <bean id="networkWriterManager" 
              
class="org.cytoscape.io.internal.write.CyNetworkWriterManagerImpl">
                <constructor-arg type="org.cytoscape.io.DataCategory"
-                       value="NETWORK" />
+                       value="NETWORK" />                      
        </bean>
+       <bean id="sessionWriterManager" 
+             class="org.cytoscape.io.internal.write.SessionWriterManagerImpl">
+               <constructor-arg type="org.cytoscape.io.DataCategory"
+                       value="SESSION" />      
+       </bean>         
 </beans>

-- 
You received this message because you are subscribed to the Google Groups 
"cytoscape-cvs" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/cytoscape-cvs?hl=en.

Reply via email to