private ArrayList<Segment> createFalseSegments(Node node, boolean isOrigin) { ArrayList<Long> segmentIds = null; LinkedList<SpeedFunction> speedFunctions = null; int speedLimit = -1; Segment segment; ArrayList<Segment> retSegments = new ArrayList<>(); if (isOrigin) { if (!segments .stream() .anyMatch( (Segment s) -> { return s.mOrigin == node.id; })) { segmentIds = findSegmetsEdgeIsPartOf(node, isOrigin); } } else { if (!segments .stream() .anyMatch( (Segment s) -> { return s.mDestination == node.id; })) { segmentIds = findSegmetsEdgeIsPartOf(node, isOrigin); } } if (segmentIds != null) { for (long l : segmentIds) { segment = createSegmentFromEdges(node.id, l, isOrigin); try { speedFunctions = db.ReadSpeedFunctionsForSegment(l); speedLimit = db.ReadSpeedLimit(l); } catch (SQLException e) { e.printStackTrace(); } fakeCosts.add(new CostFunction(segment, speedFunctions, speedLimit)); retSegments.add(segment); } return retSegments; } return null; }