org.semanticdesktop.aperture.accessor.http
Class HttpAccessor

java.lang.Object
  extended by org.semanticdesktop.aperture.accessor.http.HttpAccessor
All Implemented Interfaces:
DataAccessor

public class HttpAccessor
extends Object
implements DataAccessor

A DataAccessor implementation for the http and https schemes.


Constructor Summary
HttpAccessor()
           
 
Method Summary
 int getConnectTimeout()
          Returns the connection timeout
 DataObject getDataObject(String url, DataSource source, Map params, RDFContainerFactory containerFactory)
          Get a DataObject for the specified url.
 DataObject getDataObjectIfModified(String url, DataSource source, AccessData accessData, Map params, RDFContainerFactory containerFactory)
          Get a DataObject for the specified url.
 int getReadTimeout()
          Returns the read timeout
 void setConnectTimeout(int timeout)
          Sets the connection timeout
 void setReadTimeout(int timeout)
          Sets the read timeout
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

HttpAccessor

public HttpAccessor()
Method Detail

setConnectTimeout

public void setConnectTimeout(int timeout)
Sets the connection timeout

Parameters:
timeout - timeout in miliseconds

getConnectTimeout

public int getConnectTimeout()
Returns the connection timeout

Returns:
the connectino timeout

setReadTimeout

public void setReadTimeout(int timeout)
Sets the read timeout

Parameters:
timeout - timeout in miliseconds

getReadTimeout

public int getReadTimeout()
Returns the read timeout

Returns:
the read timeout

getDataObject

public DataObject getDataObject(String url,
                                DataSource source,
                                Map params,
                                RDFContainerFactory containerFactory)
                         throws UrlNotFoundException,
                                IOException
Description copied from interface: DataAccessor
Get a DataObject for the specified url.

The resulting DataObject's ID may differ from the specified url due to normalization schemes, following of redirected URLs, etc. It is required though to provide a URI through which this DataAccessor can later on also access the same resource, i.e. the URI should also be a URL.

Specific DataAccessor implementations may accept additional parameters through the params Map, e.g. to speed up this method with ready-made datastructures it can reuse. See the documentation of these implementations for information on the type of parameters they accept. However, implementations should not rely on the contents of this Map to work properly.

Specified by:
getDataObject in interface DataAccessor
Parameters:
url - The url of the requested resource.
source - The DataSource to be registered as the source of the DataObject (optional).
params - Additional parameters facilitating access to the physical resource (optional).
containerFactory - An RDFContainerFactory that delivers the RDFContainer to which the metadata of the DataObject should be added. The provided RDFContainer can later be retrieved as the DataObject's metadata container.
Returns:
A DataObject for the specified URI.
Throws:
UrlNotFoundException - When the specified url did not point to an existing resource.
IOException - When any kind of I/O error occurs.
See Also:
DataAccessor.getDataObject(String, DataSource, Map, RDFContainerFactory)

getDataObjectIfModified

public DataObject getDataObjectIfModified(String url,
                                          DataSource source,
                                          AccessData accessData,
                                          Map params,
                                          RDFContainerFactory containerFactory)
                                   throws UrlNotFoundException,
                                          IOException
Description copied from interface: DataAccessor
Get a DataObject for the specified url.

The resulting DataObject's ID may differ from the specified url due to normalization schemes, following of redirected URLs, etc. It is required though to provide a URI through which this DataAccessor can later on also access the same resource, i.e. the URI should also be a URL.

The optionally passed AccessData can be used to let the DataAccessor store information about the created DataSource. The next time it is invoked with the same URL, it can then use this information to determine whether the resource has changed or not. The DataAccessor should return null when the resource has not changed. This facilitates fast incremental crawling of DataSources. When no AccessData is specified, no change detection takes place and an AccessData is always returned.

Specific DataAccessor implementations may accept additional parameters through the params Map, e.g. to speed up this method with ready-made datastructures it can reuse. See the documentation of these implementations for information on the type of parameters they accept. However, implementations should not rely on the contents of this Map to work properly.

Specified by:
getDataObjectIfModified in interface DataAccessor
Parameters:
url - The url of the requested resource.
source - The DataSource to be registered as the source of the DataObject (optional).
accessData - Any access data obtained during the previous access to this DataObject (optional).
params - Additional parameters facilitating access to the physical resource (optional).
containerFactory - An RDFContainerFactory that delivers the RDFContainer to which the metadata of the DataObject should be added. The provided RDFContainer can later be retrieved as the DataObject's metadata container.
Returns:
A DataObject for the specified URI, or null when the binary resource has not been modified since the last access.
Throws:
UrlNotFoundException - When the specified url did not point to an existing resource.
IOException - When any kind of I/O error occurs.
See Also:
DataAccessor.getDataObjectIfModified(String, DataSource, AccessData, Map, RDFContainerFactory)


Copyright © 2010 Aperture Development Team. All Rights Reserved.