Package org.hibernate.ogm.datastore.neo4j.dialect.impl

Source Code of org.hibernate.ogm.datastore.neo4j.dialect.impl.MapsTupleIterator

/*
* Hibernate OGM, Domain model persistence for NoSQL datastores
*
* License: GNU Lesser General Public License (LGPL), version 2.1 or later
* See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
*/
package org.hibernate.ogm.datastore.neo4j.dialect.impl;

import java.util.Map;

import org.hibernate.ogm.datastore.map.impl.MapTupleSnapshot;
import org.hibernate.ogm.dialect.query.spi.ClosableIterator;
import org.hibernate.ogm.model.spi.Tuple;
import org.neo4j.cypher.javacompat.ExecutionResult;
import org.neo4j.graphdb.ResourceIterator;

/**
* Iterates over the results of a native query when each result is not mapped by an entity
*
* @author Davide D'Alto
*/
public class MapsTupleIterator implements ClosableIterator<Tuple> {

  private final ResourceIterator<Map<String, Object>> iterator;

  public MapsTupleIterator(ExecutionResult result) {
    this.iterator = result.iterator();
  }

  @Override
  public boolean hasNext() {
    return iterator.hasNext();
  }

  @Override
  public Tuple next() {
    return convert( iterator.next() );
  }

  protected Tuple convert(Map<String, Object> next) {
    return new Tuple( new MapTupleSnapshot( next ) );
  }

  @Override
  public void remove() {
    iterator.remove();
  }

  @Override
  public void close() {
    iterator.close();
  }
}
TOP

Related Classes of org.hibernate.ogm.datastore.neo4j.dialect.impl.MapsTupleIterator

TOP
Copyright © 2018 www.massapi.com. 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.