// This software is released into the Public Domain. See copying.txt for details.
package org.openstreetmap.osmosis.dataset.v0_6.impl;
import org.openstreetmap.osmosis.core.domain.v0_6.Relation;
import org.openstreetmap.osmosis.core.lifecycle.Closeable;
import org.openstreetmap.osmosis.core.lifecycle.ReleasableContainer;
import org.openstreetmap.osmosis.core.store.IndexStoreReader;
import org.openstreetmap.osmosis.core.store.LongLongIndexElement;
import org.openstreetmap.osmosis.core.store.RandomAccessObjectStoreReader;
/**
* Holds references to all of the node storage related classes.
*
* @author Brett Henderson
*/
public class RelationStorageContainer implements Closeable {
private ReleasableContainer releasableContainer;
private RandomAccessObjectStoreReader<Relation> relationObjectReader;
private IndexStoreReader<Long, LongLongIndexElement> relationObjectOffsetIndexReader;
private IndexStoreReader<Long, LongLongIndexElement> relationRelationIndexReader;
/**
* Creates a new instance.
*
* @param relationObjectReader
* The raw relation objects.
* @param relationObjectOffsetIndexReader
* The relation object offsets.
* @param relationRelationIndexReader
* The relation to relation index.
*/
public RelationStorageContainer(RandomAccessObjectStoreReader<Relation> relationObjectReader,
IndexStoreReader<Long, LongLongIndexElement> relationObjectOffsetIndexReader,
IndexStoreReader<Long, LongLongIndexElement> relationRelationIndexReader) {
releasableContainer = new ReleasableContainer();
this.relationObjectReader = releasableContainer.add(relationObjectReader);
this.relationObjectOffsetIndexReader = releasableContainer.add(relationObjectOffsetIndexReader);
this.relationRelationIndexReader = releasableContainer.add(relationRelationIndexReader);
}
/**
* Gets the raw relation reader.
*
* @return The raw relation reader.
*/
public RandomAccessObjectStoreReader<Relation> getRelationObjectReader() {
return relationObjectReader;
}
/**
* Gets the relation object offset reader.
*
* @return The relation object offset reader.
*/
public IndexStoreReader<Long, LongLongIndexElement> getRelationObjectOffsetIndexReader() {
return relationObjectOffsetIndexReader;
}
/**
* Gets the relation to relation index reader.
*
* @return The relation to relation index reader.
*/
public IndexStoreReader<Long, LongLongIndexElement> getRelationRelationIndexReader() {
return relationRelationIndexReader;
}
/**
* {@inheritDoc}
*/
@Override
public void close() {
releasableContainer.close();
}
}