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;

    /**
     * @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;
    }

    public String getSourceVertexId() {
        return sourceVertexId;
    }

    public String getDestVertexId() {
        return destVertexId;
    }

    public int getMaxHops() {
        return maxHops;
    }

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

    /**
     * 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;
    }
}

@@ -1745,11 +1745,281 @@
 s;%0A    %7D
+%0A%0A    @Override%0A    public String toString() %7B%0A        return %22FindPathOptions%7B%22 +%0A                %22sourceVertexId='%22 + sourceVertexId + '%5C'' +%0A                %22, destVertexId='%22 + destVertexId + '%5C'' +%0A                %22, maxHops=%22 + maxHops +%0A                '%7D';%0A    %7D
 %0A%7D%0A

add toString method to FindPathOptions