## Uses of Class
org.cpsolver.ifs.assignment.context.AssignmentContextReference

- Packages that use AssignmentContextReference
  Package | Description
  --- | ---
  org.cpsolver.ifs.assignment | An assignment holds current values of all the variables of a model.
  org.cpsolver.ifs.assignment.context | Assignment context can be used by a class (e.g., a constraint, a extension, a neighborhood selection, or a criterion) to contain any assignment dependent data.
  org.cpsolver.ifs.criteria | IFS Criteria.
  org.cpsolver.ifs.model | IFS Model (description of a problem)

- - ### Uses of AssignmentContextReference in org.cpsolver.ifs.assignment

    Methods in org.cpsolver.ifs.assignment with parameters of type AssignmentContextReference
    Modifier and Type | Method and Description
    --- | ---
    `<C extends AssignmentContext> void` | Assignment.`clearContext(AssignmentContextReference<V,T,C> reference)` Clear an assignment context that is associated with the given a reference.
    `<C extends AssignmentContext> void` | AssignmentAbstract.`clearContext(AssignmentContextReference<V,T,C> reference)`
    `<C extends AssignmentContext> C` | Assignment.`getAssignmentContext(AssignmentContextReference<V,T,C> reference)` Assignment context for a reference.
    `<C extends AssignmentContext> C` | AssignmentAbstract.`getAssignmentContext(AssignmentContextReference<V,T,C> reference)`

  - ### Uses of AssignmentContextReference in org.cpsolver.ifs.assignment.context

    Methods in org.cpsolver.ifs.assignment.context that return AssignmentContextReference
    Modifier and Type | Method and Description
    --- | ---
    `AssignmentContextReference<V,T,C>` | AbstractClassWithContext.`getAssignmentContextReference()`
    `AssignmentContextReference<V,T,C>` | BinaryConstraintWithContext.`getAssignmentContextReference()`
    `AssignmentContextReference<V,T,C>` | ConstraintWithContext.`getAssignmentContextReference()`
    `AssignmentContextReference<V,T,C>` | ExtensionWithContext.`getAssignmentContextReference()`
    `AssignmentContextReference<V,T,C>` | HasAssignmentContext.`getAssignmentContextReference()` Returns an assignment context reference
    `AssignmentContextReference<V,T,C>` | ModelWithContext.`getAssignmentContextReference()`
    `AssignmentContextReference<V,T,C>` | NeighbourSelectionWithContext.`getAssignmentContextReference()`
    `AssignmentContextReference<V,T,C>` | VariableWithContext.`getAssignmentContextReference()`

    Methods in org.cpsolver.ifs.assignment.context with parameters of type AssignmentContextReference
    Modifier and Type | Method and Description
    --- | ---
    `<C extends AssignmentContext> void` | AssignmentContextHolderArray.`clearContext(AssignmentContextReference<V,T,C> reference)`
    `<C extends AssignmentContext> void` | AssignmentContextHolderMap.`clearContext(AssignmentContextReference<V,T,C> reference)`
    `<C extends AssignmentContext> void` | DefaultParallelAssignmentContextHolder.`clearContext(AssignmentContextReference<V,T,C> reference)`
    `<C extends AssignmentContext> void` | DefaultSingleAssignmentContextHolder.`clearContext(AssignmentContextReference<V,T,C> reference)`
    `<U extends AssignmentContext> void` | AssignmentContextHolder.`clearContext(AssignmentContextReference<V,T,U> reference)` Clear an assignment context that is associated with the given a reference.
    `<U extends AssignmentContext> U` | AssignmentContextHolder.`getAssignmentContext(Assignment<V,T> assignment, AssignmentContextReference<V,T,U> reference)` Return assignment context for the given assignment and reference.
    `<U extends AssignmentContext> U` | AssignmentContextHolderArray.`getAssignmentContext(Assignment<V,T> assignment, AssignmentContextReference<V,T,U> reference)`
    `<U extends AssignmentContext> U` | AssignmentContextHolderMap.`getAssignmentContext(Assignment<V,T> assignment, AssignmentContextReference<V,T,U> reference)`
    `<U extends AssignmentContext> U` | DefaultParallelAssignmentContextHolder.`getAssignmentContext(Assignment<V,T> assignment, AssignmentContextReference<V,T,U> reference)`
    `<U extends AssignmentContext> U` | DefaultSingleAssignmentContextHolder.`getAssignmentContext(Assignment<V,T> assignment, AssignmentContextReference<V,T,U> reference)`
    `<U extends AssignmentContext> U` | InheritedAssignmentContextHolder.`getAssignmentContext(Assignment<V,T> assignment, AssignmentContextReference<V,T,U> reference)` If the `getParent()` implements the `CanInheritContext` interface, this method will use the `CanInheritContext.inheritAssignmentContext(Assignment, AssignmentContext)` instead of the `HasAssignmentContext.createAssignmentContext(Assignment)` to create a new context.
    `void` | AbstractClassWithContext.`setAssignmentContextReference(AssignmentContextReference<V,T,C> reference)`
    `void` | BinaryConstraintWithContext.`setAssignmentContextReference(AssignmentContextReference<V,T,C> reference)`
    `void` | ConstraintWithContext.`setAssignmentContextReference(AssignmentContextReference<V,T,C> reference)`
    `void` | ExtensionWithContext.`setAssignmentContextReference(AssignmentContextReference<V,T,C> reference)`
    `void` | HasAssignmentContext.`setAssignmentContextReference(AssignmentContextReference<V,T,C> reference)` Store an assignment context reference that was given for the class by the `Model.createReference(HasAssignmentContext)`.
    `void` | ModelWithContext.`setAssignmentContextReference(AssignmentContextReference<V,T,C> reference)`
    `void` | NeighbourSelectionWithContext.`setAssignmentContextReference(AssignmentContextReference<V,T,C> reference)`
    `void` | VariableWithContext.`setAssignmentContextReference(AssignmentContextReference<V,T,C> reference)`

  - ### Uses of AssignmentContextReference in org.cpsolver.ifs.criteria

    Methods in org.cpsolver.ifs.criteria that return AssignmentContextReference
    Modifier and Type | Method and Description
    --- | ---
    `AssignmentContextReference<V,T,AbstractCriterion.ValueContext>` | AbstractCriterion.`getAssignmentContextReference()`

    Methods in org.cpsolver.ifs.criteria with parameters of type AssignmentContextReference
    Modifier and Type | Method and Description
    --- | ---
    `void` | AbstractCriterion.`setAssignmentContextReference(AssignmentContextReference<V,T,AbstractCriterion.ValueContext> reference)`

  - ### Uses of AssignmentContextReference in org.cpsolver.ifs.model

    Methods in org.cpsolver.ifs.model that return AssignmentContextReference
    Modifier and Type | Method and Description
    --- | ---
    `<C extends AssignmentContext> AssignmentContextReference<V,T,C>` | Model.`createReference(HasAssignmentContext<V,T,C> parent)` Create a reference to an assignment context for a class that is in a need of one.
    `<C extends AssignmentContext> AssignmentContextReference<V,T,C>` | Model.`removeReference(HasAssignmentContext<V,T,C> parent)` Remove a reference to an assignment context for the model