org.openstreetmap.osmosis.core.pgsql.v0_6.impl
Class PostgreSqlDatasetContext

java.lang.Object
  extended by org.openstreetmap.osmosis.core.pgsql.v0_6.impl.PostgreSqlDatasetContext
All Implemented Interfaces:
DatasetContext, Completable, Releasable

public class PostgreSqlDatasetContext
extends java.lang.Object
implements DatasetContext

Provides read-only access to a PostgreSQL dataset store. Each thread accessing the store must create its own reader. It is important that all iterators obtained from this reader are released before releasing the reader itself.

Author:
Brett Henderson

Constructor Summary
PostgreSqlDatasetContext(DatabaseLoginCredentials loginCredentials, DatabasePreferences preferences)
          Creates a new instance.
 
Method Summary
 void complete()
          Ensures that all information is fully persisted.
 Node getNode(long id)
          Deprecated. 
 EntityManager<Node> getNodeManager()
          Returns the manager for manipulating node instances.
 Relation getRelation(long id)
          Deprecated. 
 EntityManager<Relation> getRelationManager()
          Returns the manager for manipulating relation instances.
 Way getWay(long id)
          Deprecated. 
 EntityManager<Way> getWayManager()
          Returns the manager for manipulating way instances.
 ReleasableIterator<EntityContainer> iterate()
          Allows the entire dataset to be iterated across.
 ReleasableIterator<EntityContainer> iterateBoundingBox(double left, double right, double top, double bottom, boolean completeWays)
          Allows all data within a bounding box to be iterated across.
 void release()
          Performs resource cleanup tasks such as closing files, or database connections.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PostgreSqlDatasetContext

public PostgreSqlDatasetContext(DatabaseLoginCredentials loginCredentials,
                                DatabasePreferences preferences)
Creates a new instance.

Parameters:
loginCredentials - Contains all information required to connect to the database.
preferences - Contains preferences configuring database behaviour.
Method Detail

getNode

@Deprecated
public Node getNode(long id)
Deprecated. 

Retrieves a specific node by its identifier.

Specified by:
getNode in interface DatasetContext
Parameters:
id - The id of the node.
Returns:
The node.

getWay

@Deprecated
public Way getWay(long id)
Deprecated. 

Retrieves a specific way by its identifier.

Specified by:
getWay in interface DatasetContext
Parameters:
id - The id of the way.
Returns:
The way.

getRelation

@Deprecated
public Relation getRelation(long id)
Deprecated. 

Retrieves a specific relation by its identifier.

Specified by:
getRelation in interface DatasetContext
Parameters:
id - The id of the relation.
Returns:
The relation.

getNodeManager

public EntityManager<Node> getNodeManager()
Returns the manager for manipulating node instances.

Specified by:
getNodeManager in interface DatasetContext
Returns:
The node manager.

getWayManager

public EntityManager<Way> getWayManager()
Returns the manager for manipulating way instances.

Specified by:
getWayManager in interface DatasetContext
Returns:
The way manager.

getRelationManager

public EntityManager<Relation> getRelationManager()
Returns the manager for manipulating relation instances.

Specified by:
getRelationManager in interface DatasetContext
Returns:
The relation manager.

iterate

public ReleasableIterator<EntityContainer> iterate()
Allows the entire dataset to be iterated across.

Specified by:
iterate in interface DatasetContext
Returns:
An iterator pointing to the start of the collection.

iterateBoundingBox

public ReleasableIterator<EntityContainer> iterateBoundingBox(double left,
                                                              double right,
                                                              double top,
                                                              double bottom,
                                                              boolean completeWays)
Allows all data within a bounding box to be iterated across.

Specified by:
iterateBoundingBox in interface DatasetContext
Parameters:
left - The longitude marking the left edge of the bounding box.
right - The longitude marking the right edge of the bounding box.
top - The latitude marking the top edge of the bounding box.
bottom - The latitude marking the bottom edge of the bounding box.
completeWays - If true, all nodes within the ways will be returned even if they lie outside the box.
Returns:
An iterator pointing to the start of the result data.

complete

public void complete()
Ensures that all information is fully persisted. This includes database commits, file buffer flushes, etc. Implementations must call complete on any nested Completable objects. Where the releasable method of a Releasable class should be called within a finally block, this method should typically be the final statement within the try block.

Specified by:
complete in interface Completable

release

public void release()
Performs resource cleanup tasks such as closing files, or database connections. This must be called after all processing is complete and may be called multiple times. Implementations must call release on any nested Releasable objects. It should be called within a finally block to ensure it is called in exception scenarios.

Specified by:
release in interface Releasable