= ApertureDataSource =
== Java Interface ==
Probably equal to source:trunk/gnowsis/src/org/gnowsis/data/datasource/DataSource.java
Changelog:
* removed setConfigAttribute and writeConfigAttributes: the choice to store DataSource configuration and the way to do that is probably an application decision. This functionality should be moved to a utility class. Leo: yes, the configuration can be conveniently stored in either a Parameters object or a RDFMap
* setting and checking configuration: see comments in header. Leo wants to give feedback to the user if a configuration is not working properly.
{{{
#!java
/**
* A DataSource defines the characteristics of a source from which DataObjects
* can be extracted. A Datasource contains all information necessary to realize
* these objects, such as paths, usernames, passwords, etc.
* The configuration of the datasource is passed to it using the initConfiguration()
method.
* Then, the configuration can be checked using the checkConfiguration()
,
* where the datasource should try to contact the datasource and see if the configuration is working.
* This is used in the configuration editor user-interface to see if the configuration works and
* give feedback to the user if passwords, filenames, urls, etc are right.
*/
public interface DataSource {
/**
* get the configuration of this datasource.
* @return the configuration
*/
public Map getConfiguration();
/**
* Initialize the datasource using the passed configuration map.
* each parameter relevant to the datasource (data path, passwords, usernames, timeouts, rules, etc) is passed
* this method must only be called once.
* TODO: should it check the configuration (passwords allright, etc) now or when the crawler starts?
* @throws InitializationException when the configuration contains syntactically wrong parameters,
* parameters that cannot be parsed. Semantical errors (not-working urls, etc) are found on
* first access or on checkConfiguration().
*/
public void initConfiguration(Map configuration) throws InitializationException;
/**
* check the configuration that was passed in initConfiguration().
* The InitializationException should contain a user-friendly
* message that explains why this datasource does not work. If a password is wrong, the exception
* should say so. This method is usually called once before the datasource is used or
* after the user edited the configuration and it should check if passwords and other configs
* are working.
* @throws InitializationException when the configuration cannot be used to open a datasource
*/
public void checkConfiguration() throws InitializationException;
/**
* Gets the id of this data source.
* The Aduna Interface identifies DataSources by ID and Name.
* Gnowsis uses Uris. This ID SHOULD conform to the URI scheme norm!
* TODO: should it be a URI or not? for future's sake: yes!
* @return A URI identifier for the data source.
*/
public String getID();
/**
* Set the ID of this data source.
*
* @param id the new ID
*/
public void setID(String id);
/**
* Gets the name of this data source.
*
* @return A descriptive name for the data source.
*/
public String getName();
/**
* Sets the name of this data source.
*
* @param name A descriptive name for the data source.
*/
public void setName(String name);
}
}}}