Upgraded minimum requirement for Neo4j

This commit upgrades the minimum requiremnt for Neo4J to be in alignment
with the rest of the Spring IO platform.  Because of this, the Neo4J4
module has been removed since the main line is now at the current level.
This commit is contained in:
Michael Minella
2016-12-22 09:48:35 -06:00
parent eb509dd741
commit 9d9218b7a9
6 changed files with 31 additions and 352 deletions

View File

@@ -18,58 +18,25 @@ package org.springframework.batch.item.data;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.Map;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.data.neo4j.conversion.DefaultConverter;
import org.springframework.data.neo4j.conversion.Result;
import org.springframework.data.neo4j.conversion.ResultConverter;
import org.springframework.util.ClassUtils;
//
//import org.springframework.data.neo4j.conversion.ResultConverter;
/**
* <p>
* Extensions of the {@link AbstractNeo4jItemReader} intended for use with versions of
* Spring Data Neo4J &lt; 4. Conversions of the results are done using an external
* {@link ResultConverter}.
* Extensions of the {@link AbstractNeo4jItemReader}.
* </p>
*
* @author Michael Minella
* @see org.springframework.batch.item.data.Neo4j4ItemReader
*/
public class Neo4jItemReader<T> extends AbstractNeo4jItemReader {
protected Log logger = LogFactory.getLog(getClass());
private ResultConverter<Map<String, Object>, T> resultConverter;
public Neo4jItemReader() {
setName(ClassUtils.getShortName(Neo4jItemReader.class));
}
/**
* Set the converter used to convert node to the targetType. By
* default, {@link DefaultConverter} is used.
*
* @param resultConverter the converter to use.
*/
public void setResultConverter(ResultConverter<Map<String, Object>, T> resultConverter) {
this.resultConverter = resultConverter;
}
@Override
protected Iterator<T> doPageRead() {
Result<Map<String, Object>> queryResults = getTemplate().query(
generateLimitCypherQuery(), getParameterValues());
Iterable queryResults = getTemplate().queryForObjects(
getTargetType(), generateLimitCypherQuery(), getParameterValues());
if(queryResults != null) {
if (resultConverter != null) {
return queryResults.to(getTargetType(), resultConverter).iterator();
}
else {
return queryResults.to(getTargetType()).iterator();
}
return queryResults.iterator();
}
else {
return new ArrayList<T>().iterator();