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.
