All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.vertexium.FindPathOptions Maven / Gradle / Ivy

There is a newer version: 4.10.0
Show newest version
package org.vertexium;

public class FindPathOptions {
    private final String sourceVertexId;
    private final String destVertexId;
    private final int maxHops;
    private String[] labels;
    private String[] excludedLabels;
    private ProgressCallback progressCallback;
    private boolean getAnyPath;

    /**
     * @param sourceVertexId The source vertex id to start the search from.
     * @param destVertexId   The destination vertex id to get to.
     * @param maxHops        The maximum number of hops to make before giving up.
     */
    public FindPathOptions(String sourceVertexId, String destVertexId, int maxHops) {
        this.sourceVertexId = sourceVertexId;
        this.destVertexId = destVertexId;
        this.maxHops = maxHops;
        this.getAnyPath = false;
    }

    /**
     * @param sourceVertexId The source vertex id to start the search from.
     * @param destVertexId   The destination vertex id to get to.
     * @param maxHops        The maximum number of hops to make before giving up.
     * @param getAnyPath     Return as soon as the first path is found
     */
    public FindPathOptions(String sourceVertexId, String destVertexId, int maxHops, boolean getAnyPath) {
        this.sourceVertexId = sourceVertexId;
        this.destVertexId = destVertexId;
        this.maxHops = maxHops;
        this.getAnyPath = getAnyPath;
    }

    public String getSourceVertexId() {
        return sourceVertexId;
    }

    public String getDestVertexId() {
        return destVertexId;
    }

    public int getMaxHops() {
        return maxHops;
    }

    public String[] getLabels() {
        return labels;
    }

    public boolean isGetAnyPath() {
        return getAnyPath;
    }

    /**
     * Edge labels to include, if null any label will be traversed
     */
    public FindPathOptions setLabels(String... labels) {
        this.labels = labels;
        return this;
    }

    public String[] getExcludedLabels() {
        return excludedLabels;
    }

    /**
     * Edge labels to be excluded from traversal
     */
    public FindPathOptions setExcludedLabels(String... excludedLabels) {
        this.excludedLabels = excludedLabels;
        return this;
    }

    public ProgressCallback getProgressCallback() {
        return progressCallback;
    }

    public FindPathOptions setProgressCallback(ProgressCallback progressCallback) {
        this.progressCallback = progressCallback;
        return this;
    }

    @Override
    public String toString() {
        return "FindPathOptions{" +
            "sourceVertexId='" + sourceVertexId + '\'' +
            ", destVertexId='" + destVertexId + '\'' +
            ", maxHops=" + maxHops +
            '}';
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy