AbstractMatrixAlgorithm.java
- /* This file is part of Openrouteservice.
- *
- * Openrouteservice is free software; you can redistribute it and/or modify it under the terms of the
- * GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1
- * of the License, or (at your option) any later version.
- * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
- * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- * See the GNU Lesser General Public License for more details.
- * You should have received a copy of the GNU Lesser General Public License along with this library;
- * if not, see <https://www.gnu.org/licenses/>.
- */
- package org.heigit.ors.matrix.algorithms;
- import com.graphhopper.GraphHopper;
- import com.graphhopper.routing.util.FlagEncoder;
- import com.graphhopper.routing.weighting.Weighting;
- import com.graphhopper.storage.Graph;
- import org.heigit.ors.exceptions.MaxVisitedNodesExceededException;
- import org.heigit.ors.matrix.MatrixRequest;
- public abstract class AbstractMatrixAlgorithm implements MatrixAlgorithm {
- protected GraphHopper graphHopper;
- protected Graph graph;
- protected FlagEncoder encoder;
- protected Weighting weighting;
- protected int visitedNodes = 0;
- protected int maxVisitedNodes = Integer.MAX_VALUE;
- public void init(MatrixRequest req, GraphHopper gh, Graph graph, FlagEncoder encoder, Weighting weighting) {
- graphHopper = gh;
- this.graph = graph;
- this.encoder = encoder;
- this.weighting = weighting;
- this.maxVisitedNodes = req.getMaximumVisitedNodes();
- }
- protected boolean isMaxVisitedNodesExceeded() {
- if (visitedNodes > maxVisitedNodes)
- throw new MaxVisitedNodesExceededException();
- return false;
- }
- }