# Hierarchy For Package org.cpsolver.ifs.assignment.context

Package Hierarchies:

- All Packages

## Class Hierarchy

- java.lang.Object
  - org.cpsolver.ifs.assignment.context.AbstractClassWithContext<V,T,C> (implements org.cpsolver.ifs.assignment.context.CanHoldContext, org.cpsolver.ifs.assignment.context.HasAssignmentContext<V,T,C>)
  - org.cpsolver.ifs.assignment.context.AssignmentContextHelper
  - org.cpsolver.ifs.assignment.context.AssignmentContextHolderArray<V,T> (implements org.cpsolver.ifs.assignment.context.AssignmentContextHolder<V,T>)
  - org.cpsolver.ifs.assignment.context.AssignmentContextHolderMap<V,T> (implements org.cpsolver.ifs.assignment.context.AssignmentContextHolder<V,T>)
    - org.cpsolver.ifs.assignment.context.DefaultParallelAssignmentContextHolder<V,T>
      - org.cpsolver.ifs.assignment.context.InheritedAssignmentContextHolder<V,T>
    - org.cpsolver.ifs.assignment.context.DefaultSingleAssignmentContextHolder<V,T>
  - org.cpsolver.ifs.assignment.context.AssignmentContextReference<V,T,C>
  - org.cpsolver.ifs.model.Constraint<V,T> (implements java.lang.Comparable<T>)
    - org.cpsolver.ifs.model.BinaryConstraint<V,T>
      - org.cpsolver.ifs.assignment.context.BinaryConstraintWithContext<V,T,C> (implements org.cpsolver.ifs.assignment.context.CanHoldContext, org.cpsolver.ifs.assignment.context.HasAssignmentContext<V,T,C>)
    - org.cpsolver.ifs.assignment.context.ConstraintWithContext<V,T,C> (implements org.cpsolver.ifs.assignment.context.CanHoldContext, org.cpsolver.ifs.assignment.context.HasAssignmentContext<V,T,C>)
  - org.cpsolver.ifs.extension.Extension<V,T> (implements org.cpsolver.ifs.model.ModelListener<V,T>)
    - org.cpsolver.ifs.assignment.context.ExtensionWithContext<V,T,C> (implements org.cpsolver.ifs.assignment.context.CanHoldContext, org.cpsolver.ifs.assignment.context.HasAssignmentContext<V,T,C>)
  - org.cpsolver.ifs.assignment.context.InheritedAssignmentContextHolder.VersionedContext<U> (implements org.cpsolver.ifs.assignment.context.AssignmentContext)
  - org.cpsolver.ifs.model.Model<V,T>
    - org.cpsolver.ifs.assignment.context.ModelWithContext<V,T,C> (implements org.cpsolver.ifs.assignment.context.CanHoldContext, org.cpsolver.ifs.assignment.context.HasAssignmentContext<V,T,C>)
  - org.cpsolver.ifs.assignment.context.NeighbourSelectionWithContext<V,T,C> (implements org.cpsolver.ifs.assignment.context.CanHoldContext, org.cpsolver.ifs.assignment.context.HasAssignmentContext<V,T,C>, org.cpsolver.ifs.heuristics.NeighbourSelection<V,T>)
  - org.cpsolver.ifs.model.Variable<V,T> (implements java.lang.Comparable<T>)
    - org.cpsolver.ifs.assignment.context.VariableWithContext<V,T,C> (implements org.cpsolver.ifs.assignment.context.CanHoldContext, org.cpsolver.ifs.assignment.context.HasAssignmentContext<V,T,C>)

## Interface Hierarchy

- org.cpsolver.ifs.assignment.context.AssignmentContext
  - org.cpsolver.ifs.assignment.context.AssignmentConstraintContext<V,T>
- org.cpsolver.ifs.assignment.context.AssignmentContextHolder<V,T>
- org.cpsolver.ifs.assignment.context.CanHoldContext
- org.cpsolver.ifs.assignment.context.CanInheritContext<V,T,C>
- org.cpsolver.ifs.assignment.context.HasAssignmentContext<V,T,C>

## Enum Hierarchy

- java.lang.Object
  - java.lang.Enum<E> (implements java.lang.Comparable<T>, java.io.Serializable)
    - org.cpsolver.ifs.assignment.context.ModelWithContext.ContextUpdateType