/* * 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.remote.http.dialect.impl; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import org.hibernate.ogm.datastore.map.impl.MapTupleSnapshot; import org.hibernate.ogm.datastore.neo4j.remote.common.dialect.impl.RemoteNeo4jMapsTupleIterator; import org.hibernate.ogm.datastore.neo4j.remote.http.json.impl.Row; import org.hibernate.ogm.datastore.neo4j.remote.http.json.impl.StatementResult; import org.hibernate.ogm.model.spi.TupleSnapshot; /** * Iterates over the results of a native query when each result is not mapped by an entity * * @author Davide D'Alto */ public class HttpNeo4jMapsTupleIterator extends RemoteNeo4jMapsTupleIterator<Row> { public HttpNeo4jMapsTupleIterator(StatementResult result) { super( result.getData().iterator(), result.getColumns() ); } @Override protected TupleSnapshot tupleSnapshot(Row next, List<String> keys) { // Requires a LinkedHashMap as the order of the entries is important Map<String, Object> properties = new LinkedHashMap<>(); for ( int i = 0; i < keys.size(); i++ ) { properties.put( keys.get( i ), next.getRow().get( i ) ); } return new MapTupleSnapshot( properties ); } }