org.chocosolver.solver.variables.delta.IGraphDeltaMonitor Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of choco-solver Show documentation
Show all versions of choco-solver Show documentation
Open-source constraint solver.
/*
* This file is part of choco-solver, http://choco-solver.org/
*
* Copyright (c) 2023, IMT Atlantique. All rights reserved.
*
* Licensed under the BSD 4-clause license.
*
* See LICENSE file in the project root for full license information.
*/
package org.chocosolver.solver.variables.delta;
import org.chocosolver.solver.exception.ContradictionException;
import org.chocosolver.solver.variables.events.GraphEventType;
import org.chocosolver.util.procedure.IntProcedure;
import org.chocosolver.util.procedure.PairProcedure;
/**
* Interface for Graph Delta Monitor.
* Adapted from choco-graph. Original authors: Jean-Guillaume Fages and Charles Prud'homme.
*/
public interface IGraphDeltaMonitor extends IDeltaMonitor{
/**
* Applies proc to every vertex which has just been removed or enforced, depending on evt.
*
* @param proc an incremental procedure over vertices
* @param evt either ENFORCENODE or REMOVENODE
* @throws ContradictionException if a failure occurs
*/
void forEachNode(IntProcedure proc, GraphEventType evt) throws ContradictionException;
/**
* Applies proc to every edge which has just been removed or enforced, depending on evt.
*
* @param proc an incremental procedure over edges
* @param evt either ENFORCE_EDGE or REMOVE_EDGE
* @throws ContradictionException if a failure occurs
*/
void forEachEdge(PairProcedure proc, GraphEventType evt) throws ContradictionException;
}