Author: kono
Date: 2011-12-07 16:00:44 -0800 (Wed, 07 Dec 2011)
New Revision: 27738

Added:
   core3/api/trunk/datasource-api/
   core3/api/trunk/datasource-api/pom.xml
   core3/api/trunk/datasource-api/src/
   core3/api/trunk/datasource-api/src/main/
   core3/api/trunk/datasource-api/src/main/java/
   core3/api/trunk/datasource-api/src/main/java/org/
   core3/api/trunk/datasource-api/src/main/java/org/cytoscape/
   core3/api/trunk/datasource-api/src/main/java/org/cytoscape/datasource/
   
core3/api/trunk/datasource-api/src/main/java/org/cytoscape/datasource/DataSource.java
   
core3/api/trunk/datasource-api/src/main/java/org/cytoscape/datasource/DataSourceManager.java
   
core3/api/trunk/datasource-api/src/main/java/org/cytoscape/datasource/DefaultDataSource.java
   core3/api/trunk/datasource-api/src/test/
   core3/api/trunk/datasource-api/src/test/java/
   core3/api/trunk/datasource-api/src/test/java/org/
   core3/api/trunk/datasource-api/src/test/java/org/cytoscape/
   core3/api/trunk/datasource-api/src/test/java/org/cytoscape/datasource/
   
core3/api/trunk/datasource-api/src/test/java/org/cytoscape/datasource/AbstractDataSourceTest.java
Modified:
   core3/api/trunk/pom.xml
Log:
First version of Datasource API.

Added: core3/api/trunk/datasource-api/pom.xml
===================================================================
--- core3/api/trunk/datasource-api/pom.xml                              (rev 0)
+++ core3/api/trunk/datasource-api/pom.xml      2011-12-08 00:00:44 UTC (rev 
27738)
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+       xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/maven-v4_0_0.xsd";>
+
+       <parent>
+               <artifactId>api-parent</artifactId>
+               <groupId>org.cytoscape</groupId>
+               <version>3.0.0-alpha8-SNAPSHOT</version>
+       </parent>
+
+       <properties>
+               
<bundle.symbolicName>org.cytoscape.datasource-api</bundle.symbolicName>
+               <bundle.namespace>org.cytoscape.datasource</bundle.namespace>
+       </properties>
+
+       <modelVersion>4.0.0</modelVersion>
+       <artifactId>datasource-api</artifactId>
+
+       <name>${bundle.symbolicName} [${bundle.namespace}]</name>
+
+       <packaging>bundle</packaging>
+
+       <build>
+               <resources>
+                       <resource>
+                               <directory>src/main/resources</directory>
+                       </resource>
+                       <resource>
+                               <directory>.</directory>
+                               <includes>
+                                       <include>plugin.xml</include>
+                                       <include>plugin.properties</include>
+                                       <include>icons/**</include>
+                               </includes>
+                       </resource>
+               </resources>
+               <plugins>
+                       <plugin>
+                               <groupId>org.apache.felix</groupId>
+                               <artifactId>maven-bundle-plugin</artifactId>
+                               
<version>${maven-bundle-plugin.version}</version>
+                               <extensions>true</extensions>
+                               <configuration>
+                                       <instructions>
+                                               
<Bundle-SymbolicName>${bundle.symbolicName}</Bundle-SymbolicName>
+                                               
<Bundle-Version>${project.version}</Bundle-Version>
+                                               
<Export-Package>!${bundle.namespace}.internal.*,${bundle.namespace}.*;version="${project.version}"</Export-Package>
+                                               
<Private-Package>${bundle.namespace}.internal.*</Private-Package>
+                                       </instructions>
+                               </configuration>
+                       </plugin>
+                       <plugin>
+                               <groupId>org.apache.maven.plugins</groupId>
+                               <artifactId>maven-jar-plugin</artifactId>
+                               <version>${maven-jar-plugin.version}</version>
+                               <executions>
+                                       <execution>
+                                               <goals>
+                                                       <goal>test-jar</goal>
+                                               </goals>
+                                       </execution>
+                               </executions>
+                       </plugin>
+               </plugins>
+       </build>
+       
+       <!-- Links to the Cytoscape Maven repositories. -->
+       <repositories>
+               <repository>
+                       <id>cytoscape_snapshots</id>
+                       <snapshots>
+                       </snapshots>
+                       <releases>
+                               <enabled>false</enabled>
+                       </releases>
+                       <name>Cytoscape Snapshots</name>
+                       
<url>http://code.cytoscape.org/nexus/content/repositories/snapshots/</url>
+               </repository>
+               <repository>
+                       <id>cytoscape_releases</id>
+                       <snapshots>
+                               <enabled>false</enabled>
+                       </snapshots>
+                       <releases>
+                       </releases>
+                       <name>Cytoscape Releases</name>
+                       
<url>http://code.cytoscape.org/nexus/content/repositories/releases/</url>
+               </repository>
+       </repositories>
+
+       <dependencies>
+
+               <dependency>
+                       <groupId>org.cytoscape</groupId>
+                       <artifactId>io-api</artifactId>
+                       <version>${project.version}</version>
+               </dependency>
+
+               <dependency>
+                       <groupId>junit</groupId>
+                       <artifactId>junit</artifactId>
+                       <scope>test</scope>
+               </dependency>
+               <dependency>
+                       <groupId>org.mockito</groupId>
+                       <artifactId>mockito-all</artifactId>
+                       <scope>test</scope>
+               </dependency>
+       </dependencies>
+
+</project>

Added: 
core3/api/trunk/datasource-api/src/main/java/org/cytoscape/datasource/DataSource.java
===================================================================
--- 
core3/api/trunk/datasource-api/src/main/java/org/cytoscape/datasource/DataSource.java
                               (rev 0)
+++ 
core3/api/trunk/datasource-api/src/main/java/org/cytoscape/datasource/DataSource.java
       2011-12-08 00:00:44 UTC (rev 27738)
@@ -0,0 +1,49 @@
+package org.cytoscape.datasource;
+
+import java.net.URL;
+
+import org.cytoscape.io.DataCategory;
+
+/**
+ * Immutable data source object, which represents one data file associated 
with an URL.
+ *
+ */
+public interface DataSource {
+       
+       /**
+        * Name of this data provider for this source.
+        * Usually, this is an database name or organization name providing set 
of data.
+        * 
+        * @return Name of data provider
+        */
+       String getProvider();
+       
+       /**
+        * Name of this data source
+        * 
+        * @return Name of this data source
+        */
+       String getName();
+       
+       /**
+        * Description for this data.
+        * 
+        * @return description
+        */
+       String getDescription();
+       
+       /**
+        * {@link DataCategory} of this data.
+        * 
+        * @return category of this data file.
+        */
+       DataCategory getDataCategory();
+       
+       /**
+        * Location of this data file.
+        * 
+        * @return URL of this data file
+        */
+       URL getLocation();
+
+}

Added: 
core3/api/trunk/datasource-api/src/main/java/org/cytoscape/datasource/DataSourceManager.java
===================================================================
--- 
core3/api/trunk/datasource-api/src/main/java/org/cytoscape/datasource/DataSourceManager.java
                                (rev 0)
+++ 
core3/api/trunk/datasource-api/src/main/java/org/cytoscape/datasource/DataSourceManager.java
        2011-12-08 00:00:44 UTC (rev 27738)
@@ -0,0 +1,39 @@
+package org.cytoscape.datasource;
+
+import java.util.Collection;
+
+import org.cytoscape.io.DataCategory;
+
+/**
+ * Entry point to access all data sources implemented as OSGi services.
+ * 
+ * Once someone export {@link DataSource} as an OSGi service, this object 
+ * automatically add the source and it is accessible by users.
+ *
+ */
+public interface DataSourceManager {
+       
+       /**
+        * Returns all data sources under the given category.
+        * 
+        * @param category Category of the data source.  Network, Table, etc.
+        * @return all data sources under the category.
+        */
+       Collection<DataSource> getDataSources(final DataCategory category);
+       
+       
+       /**
+        * Returns all data sources from a data provider
+        * 
+        * @param providerName name of the data provider
+        * @return all data source from the given data provider
+        */
+       Collection<DataSource> getDataSources(final String providerName);
+       
+       
+       /**
+        * Returns all data sources registered as OSGi services
+        * @return all data sources
+        */
+       Collection<DataSource> getAllDataSources();
+}

Added: 
core3/api/trunk/datasource-api/src/main/java/org/cytoscape/datasource/DefaultDataSource.java
===================================================================
--- 
core3/api/trunk/datasource-api/src/main/java/org/cytoscape/datasource/DefaultDataSource.java
                                (rev 0)
+++ 
core3/api/trunk/datasource-api/src/main/java/org/cytoscape/datasource/DefaultDataSource.java
        2011-12-08 00:00:44 UTC (rev 27738)
@@ -0,0 +1,76 @@
+package org.cytoscape.datasource;
+
+import java.net.URL;
+
+import org.cytoscape.io.DataCategory;
+
+
+/**
+ * Basic implementation of {@link DataSource}.
+ * In general, most of the data sources can be encoded with this default 
implementation. 
+ *
+ */
+public class DefaultDataSource implements DataSource {
+       
+       private final String name;
+       private final String provider;
+       private final String description;
+       private final DataCategory category;
+       private final URL url;
+
+       /**
+        * Constructor for the default data source.
+        * All of the parameters should be provided as a non-null value.
+        * 
+        * @param name name of source
+        * @param provider provider name of data source
+        * @param description description for this source
+        * @param category category of data
+        * @param url location of data file as URL
+        */
+       public DefaultDataSource(final String name, final String provider, 
final String description,
+                       final DataCategory category, final URL url) {
+               if(name == null)
+                       throw new NullPointerException("Name is null");
+               if(description == null)
+                       throw new NullPointerException("Description is null");
+               if(provider == null)
+                       throw new NullPointerException("Provider is null");
+               if(category == null)
+                       throw new NullPointerException("DataCategory is null");
+               if(url == null)
+                       throw new NullPointerException("URL is null");
+               
+               this.name = name;
+               this.provider = provider;
+               this.description = description;
+               this.category = category;
+               this.url = url;
+
+       }
+
+       @Override
+       public String getProvider() {
+               return this.provider;
+       }
+
+       @Override
+       public String getName() {
+               return this.name;
+       }
+
+       @Override
+       public String getDescription() {
+               return this.description;
+       }
+
+       @Override
+       public DataCategory getDataCategory() {
+               return this.category;
+       }
+
+       @Override
+       public URL getLocation() {
+               return this.url;
+       }
+}

Added: 
core3/api/trunk/datasource-api/src/test/java/org/cytoscape/datasource/AbstractDataSourceTest.java
===================================================================
--- 
core3/api/trunk/datasource-api/src/test/java/org/cytoscape/datasource/AbstractDataSourceTest.java
                           (rev 0)
+++ 
core3/api/trunk/datasource-api/src/test/java/org/cytoscape/datasource/AbstractDataSourceTest.java
   2011-12-08 00:00:44 UTC (rev 27738)
@@ -0,0 +1,17 @@
+package org.cytoscape.datasource;
+
+import org.junit.Test;
+
+public abstract class AbstractDataSourceTest {
+
+       private final DataSource source;
+       
+       AbstractDataSourceTest(final DataSource source) {
+               this.source = source;
+       }
+       
+       @Test
+       public void testDataSource() {
+               source.getDataCategory();
+       }
+}

Modified: core3/api/trunk/pom.xml
===================================================================
--- core3/api/trunk/pom.xml     2011-12-07 21:58:09 UTC (rev 27737)
+++ core3/api/trunk/pom.xml     2011-12-08 00:00:44 UTC (rev 27738)
@@ -38,6 +38,7 @@
                <module>swing-util-api</module>
                <module>application-api</module>
                <module>biopax-api</module>
+               <module>datasource-api</module>
        </modules>
 
        <dependencyManagement>

-- 
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