/**
*
*/
package er.neo4jadaptor.query.neo4j_eval.retrievers;
import java.util.Iterator;
import org.neo4j.graphdb.GraphDatabaseService;
import org.neo4j.graphdb.Node;
import org.neo4j.graphdb.Relationship;
import com.webobjects.eoaccess.EORelationship;
import er.neo4jadaptor.utils.iteration.Iterators;
/**
* Retrieves EO relationship destination, where the source object is representing a record
* from some join entity.
*
* @author Jedrzej Sobanski
*
*/
public class RelationshipToNode extends RelationshipRetriever<Relationship, Node> {
private final String propertyName;
public RelationshipToNode(EORelationship rel) {
propertyName = rel.sourceAttributes().get(0).name();
}
public Iterator<Node> retrieve(Relationship rel) {
long nodeId = ((Number) rel.getProperty(propertyName)).longValue();
GraphDatabaseService db = rel.getGraphDatabase();
return Iterators.singleton(db.getNodeById(nodeId));
}
@Override
public String toString() {
return "relationship-to-node through " + propertyName;
}
}