Package org.openstreetmap.osmosis.core.lifecycle

Examples of org.openstreetmap.osmosis.core.lifecycle.ReleasableContainer


  /**
   * {@inheritDoc}
   */
  @Override
  public DatasetContext createReader() {
    ReleasableContainer releasableContainer = new ReleasableContainer();
   
    try {
      DatasetContext reader;
     
      reader = new DatasetStoreReader(
          new NodeStorageContainer(
              releasableContainer.add(nodeObjectStore.createReader()),
              releasableContainer.add(nodeObjectOffsetIndexWriter.createReader()),
              releasableContainer.add(nodeTileIndexWriter.createReader()),
              releasableContainer.add(nodeWayIndexWriter.createReader()),
              releasableContainer.add(nodeRelationIndexWriter.createReader())),
          new WayStorageContainer(
              releasableContainer.add(wayObjectStore.createReader()),
              releasableContainer.add(wayObjectOffsetIndexWriter.createReader()),
              releasableContainer.add(wayTileIndexWriter.createReader()),
              releasableContainer.add(wayRelationIndexWriter.createReader())),
          new RelationStorageContainer(
              releasableContainer.add(relationObjectStore.createReader()),
              releasableContainer.add(relationObjectOffsetIndexWriter.createReader()),
              releasableContainer.add(relationRelationIndexWriter.createReader())),
          enableWayTileIndex
      );
     
      // Stop the release of all created objects.
      releasableContainer.clear();
     
      return reader;
     
    } finally {
      releasableContainer.release();
    }
  }
View Full Code Here


   */
  public EntityHistoryReader(ReleasableIterator<EntityHistory<T>> entityIterator,
      ReleasableIterator<DbFeatureHistory<DbFeature<Tag>>> tagIterator,
      List<FeatureHistoryPopulator<T, ?, ?>> featurePopulators) {
   
    releasableContainer = new ReleasableContainer();
   
    this.entityIterator = releasableContainer.add(entityIterator);
    tagPopulator = releasableContainer.add(new FeatureHistoryPopulator<T, Tag, DbFeature<Tag>>(tagIterator,
        new TagCollectionLoader<T>()));
    for (FeatureHistoryPopulator<T, ?, ?> featurePopulator : featurePopulators) {
View Full Code Here

   *            The prefix for the entity table name. This allows another table to be queried if
   *            necessary such as a temporary results table.
   * @return The entity iterator.
   */
  public ReleasableIterator<T> iterate(String tablePrefix) {
    ReleasableContainer releasableContainer;
   
    releasableContainer = new ReleasableContainer();
   
    try {
      ReleasableIterator<T> entityIterator;
      List<FeaturePopulator<T>> featurePopulators;
     
      // Create the featureless entity iterator but also store it temporarily in the
      // releasable container so that it will get freed if we fail during retrieval of feature
      // populators.
      entityIterator = releasableContainer.add(getFeaturelessEntity(tablePrefix));
     
      // Retrieve the feature populators also adding them to the temporary releasable container.
      featurePopulators = getFeaturePopulators(tablePrefix);
      for (FeaturePopulator<T> featurePopulator : featurePopulators) {
        releasableContainer.add(featurePopulator);
      }
     
      // Build an entity reader capable of merging all sources together.
      entityIterator = new EntityReader<T>(entityIterator, featurePopulators);
     
      // The sources are now all attached to the history reader so we don't want to release
      // them in the finally block.
      releasableContainer.clear();
     
      return entityIterator;
     
    } finally {
      releasableContainer.release();
    }
  }
View Full Code Here

      IndexStoreReader<Long, LongLongIndexElement> nodeObjectOffsetIndexReader,
      IndexStoreReader<Integer, IntegerLongIndexElement> nodeTileIndexReader,
      IndexStoreReader<Long, LongLongIndexElement> nodeWayIndexReader,
      IndexStoreReader<Long, LongLongIndexElement> nodeRelationIndexReader) {
   
    releasableContainer = new ReleasableContainer();
   
    this.nodeObjectReader = releasableContainer.add(nodeObjectReader);
    this.nodeObjectOffsetIndexReader = releasableContainer.add(nodeObjectOffsetIndexReader);
    this.nodeTileIndexReader = releasableContainer.add(nodeTileIndexReader);
    this.nodeWayIndexReader = releasableContainer.add(nodeWayIndexReader);
View Full Code Here

  public WayStorageContainer(RandomAccessObjectStoreReader<Way> wayObjectReader,
      IndexStoreReader<Long, LongLongIndexElement> wayObjectOffsetIndexReader,
      WayTileAreaIndexReader wayTileIndexReader,
      IndexStoreReader<Long, LongLongIndexElement> wayRelationIndexReader) {
   
    releasableContainer = new ReleasableContainer();
   
    this.wayObjectReader = releasableContainer.add(wayObjectReader);
    this.wayObjectOffsetIndexReader = releasableContainer.add(wayObjectOffsetIndexReader);
    this.wayTileIndexReader = releasableContainer.add(wayTileIndexReader);
    this.wayRelationIndexReader = releasableContainer.add(wayRelationIndexReader);
View Full Code Here

TOP

Related Classes of org.openstreetmap.osmosis.core.lifecycle.ReleasableContainer

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.