Author: pwang
Date: 2010-08-17 17:12:19 -0700 (Tue, 17 Aug 2010)
New Revision: 21430
Added:
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/AbstractNetworkViewProducer.java
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/CyNetworkViewProducerFactoryImpl.java
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/CyNetworkViewProducerManagerImpl.java
Log:
Original creation
Added:
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/AbstractNetworkViewProducer.java
===================================================================
---
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/AbstractNetworkViewProducer.java
(rev 0)
+++
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/AbstractNetworkViewProducer.java
2010-08-18 00:12:19 UTC (rev 21430)
@@ -0,0 +1,67 @@
+package org.cytoscape.io.internal.read;
+
+import java.io.InputStream;
+import java.io.IOException;
+
+import org.cytoscape.io.read.CyNetworkViewProducer;
+import org.cytoscape.view.model.CyNetworkView;
+import org.cytoscape.view.vizmap.VisualStyle;
+import org.cytoscape.view.layout.CyLayouts;
+import org.cytoscape.model.CyNetworkFactory;
+import org.cytoscape.view.model.CyNetworkViewFactory;
+
+
+public abstract class AbstractNetworkViewProducer implements
CyNetworkViewProducer{
+
+ protected static final String NODE_NAME_ATTR_LABEL = "name";
+ protected CyNetworkView[] cyNetworkViews;
+ protected VisualStyle[] visualstyles;
+ protected boolean cancel = false;
+ protected InputStream inputStream;
+ protected CyNetworkFactory cyNetworkFactory;
+ protected CyNetworkViewFactory cyNetworkViewFactory;
+
+ protected CyLayouts layouts;
+
+ public CyNetworkView[] getNetworkViews(){
+ return cyNetworkViews;
+ }
+
+ public VisualStyle[] getVisualStyles() {
+ return visualstyles;
+ }
+
+ public void setInputStream(InputStream is) {
+ if (is == null)
+ throw new NullPointerException("Input stream is null");
+ inputStream = is;
+ cancel = false;
+ }
+
+ public void setCyNetworkFactory(CyNetworkFactory cyNetworkFactory) {
+ this.cyNetworkFactory = cyNetworkFactory;
+ }
+
+ public void setCyNetworkViewFactory(CyNetworkViewFactory
cyNetworkViewFactory) {
+ this.cyNetworkViewFactory = cyNetworkViewFactory;
+ }
+
+ public void setLayouts(CyLayouts layouts) {
+ this.layouts = layouts;
+ }
+
+ public void cancel()
+ {
+ if (cancel)
+ throw new
IllegalStateException("AbstractNetworkViewProducer has already been cancelled");
+
+ cancel = true;
+ try
+ {
+ inputStream.close();
+ }
+ catch (IOException e) {}
+ inputStream = null;
+ }
+
+}
Added:
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/CyNetworkViewProducerFactoryImpl.java
===================================================================
---
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/CyNetworkViewProducerFactoryImpl.java
(rev 0)
+++
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/CyNetworkViewProducerFactoryImpl.java
2010-08-18 00:12:19 UTC (rev 21430)
@@ -0,0 +1,71 @@
+package org.cytoscape.io.internal.read;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.Proxy;
+import java.net.URI;
+
+import org.cytoscape.io.CyFileFilter;
+import org.cytoscape.io.read.CyNetworkViewProducer;
+import org.cytoscape.io.read.CyNetworkViewProducerFactory;
+import org.cytoscape.io.util.StreamUtil;
+
+public class CyNetworkViewProducerFactoryImpl implements
CyNetworkViewProducerFactory {
+
+ private CyFileFilter filter;
+ private CyNetworkViewProducer producer;
+ private StreamUtil streamUtil;
+ private InputStream is;
+
+ // This should be an OSGi service.
+ private Proxy proxy;
+
+ public CyNetworkViewProducerFactoryImpl(CyFileFilter filter,
CyNetworkViewProducer producer, StreamUtil streamUtil)
+ throws IllegalArgumentException {
+ this.filter = filter;
+ this.producer = producer;
+
+ if (this.producer == null) {
+ throw new IllegalArgumentException("Reader cannot be
null.");
+ } else if (this.producer == null) {
+ throw new IllegalArgumentException("CyFileFilter cannot
be null.");
+ }
+ this.streamUtil = streamUtil;
+ }
+
+ public void setProxy(Proxy proxy) {
+ this.proxy = proxy;
+ }
+
+ public CyNetworkViewProducer getTask(){
+ ///?????
+ return null;
+ }
+ public void setInputStream(InputStream is) {
+ //????
+ this.is = is;
+ }
+
+
+ /**
+ * Gets Graph Reader.
+ *
+ * @param fileName
+ * File name.
+ * @return GraphReader Object.
+ * @throws IOException
+ */
+ public CyNetworkViewProducer getNetworkViewProducer(URI uri) throws
IOException {
+ InputStream is = streamUtil.getInputStream(uri.toURL());
+ return getNetworkViewProducer(is);
+ }
+
+ public CyNetworkViewProducer getNetworkViewProducer(InputStream stream)
throws IOException {
+ producer.setInputStream(stream);
+ return producer;
+ }
+
+ public CyFileFilter getCyFileFilter() {
+ return filter;
+ }
+}
Added:
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/CyNetworkViewProducerManagerImpl.java
===================================================================
---
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/CyNetworkViewProducerManagerImpl.java
(rev 0)
+++
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/CyNetworkViewProducerManagerImpl.java
2010-08-18 00:12:19 UTC (rev 21430)
@@ -0,0 +1,149 @@
+package org.cytoscape.io.internal.read;
+
+import java.io.InputStream;
+import java.net.URI;
+import java.util.Map;
+import java.util.Set;
+import java.util.HashSet;
+import java.io.IOException;
+
+import org.cytoscape.io.read.CyNetworkViewProducer;
+import org.cytoscape.io.read.CyNetworkViewProducerFactory;
+import org.cytoscape.io.read.CyNetworkViewProducerManager;
+import org.cytoscape.io.CyFileFilter;
+import org.cytoscape.io.DataCategory;
+
+public class CyNetworkViewProducerManagerImpl implements
CyNetworkViewProducerManager{
+
+ private DataCategory category = DataCategory.NETWORK;
+
+ /*
+ * Not generic because Spring does not support it now.
+ */
+ @SuppressWarnings("unchecked")
+ public void addInputStreamFactory(CyNetworkViewProducerFactory factory,
Map props){
+
+ }
+
+ @SuppressWarnings("unchecked")
+ public void removeInputStreamFactory(CyNetworkViewProducerFactory
factory, Map props){
+
+ }
+
+
+ //////////////////
+
+ private Set<CyNetworkViewProducerFactory> factories;
+
+ /**
+ * Constructor.
+ */
+ public CyNetworkViewProducerManagerImpl() {
+ factories = new HashSet<CyNetworkViewProducerFactory>();
+ }
+
+ /**
+ * Listener for OSGi service
+ *
+ * @param factory
+ * @param props
+ */
+ @SuppressWarnings("unchecked")
+ public void addNetworkViewProducerFactory(CyNetworkViewProducerFactory
factory, Map props) {
+ factories.add(factory);
+ }
+
+ /**
+ * Listener for OSGi service
+ *
+ * @param factory
+ * @param props
+ */
+ @SuppressWarnings("unchecked")
+ public void
removeNetworkViewProducerFactory(CyNetworkViewProducerFactory factory, Map
props) {
+ factories.remove(factory);
+ }
+
+ /**
+ * Gets the GraphReader that is capable of reading the specified file.
+ *
+ * @param fileName
+ * File name or null if no reader is capable of reading the
file.
+ * @return GraphReader capable of reading the specified file.
+ */
+ public CyNetworkViewProducer getProducer(URI fileLocation)
+ throws IllegalArgumentException {
+ return getProducer(fileLocation, null);
+ }
+
+ public CyNetworkViewProducer getProducer(InputStream stream)
+ throws IllegalArgumentException {
+ return getProducer(null, stream);
+ }
+
+ private CyNetworkViewProducer getProducer(URI uri, InputStream stream) {
+
+ CyFileFilter cff;
+ CyNetworkViewProducer networkViewProducer = null;
+
+
+ for (CyNetworkViewProducerFactory factory : factories) {
+
+ System.out.println("Checking factory #################
" + factory.getCyFileFilter().getDescription());
+
+
+ cff = factory.getCyFileFilter();
+
+ if (uri != null) {
+
+ boolean accept = false;
+ try
+ {
+ accept = cff.accept(uri, category);
+ }
+ catch (IOException e)
+ {
+ throw new
IllegalArgumentException("Failed to check file's contents: " + uri.toString(),
e);
+ }
+ if (accept)
+ {
+ try
+ {
+ networkViewProducer =
factory.getNetworkViewProducer(uri);
+ }
+ catch (IOException e)
+ {
+ throw new
IllegalArgumentException("Could not get proper reader for the file.", e);
+ }
+ }
+ } else {
+ System.out.println("################# " +
cff.getClass());
+ //if (cff.accept(stream, category))
+ try
+ {
+ networkViewProducer =
factory.getNetworkViewProducer(stream);
+ }
+ catch (IOException e)
+ {
+ throw new
IllegalArgumentException("Could not get proper reader for the file.", e);
+ }
+ }
+ }
+
+ if (networkViewProducer == null) {
+ throw new IllegalArgumentException("File type is not
supported.");
+ }
+
+ return networkViewProducer;
+
+ }
+
+
+
+
+
+
+
+
+
+}
--
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.