org.cpsolver.ifs.example.jobshop

## Class Job

- java.lang.Object
- - org.cpsolver.ifs.model.Constraint<Operation,Location>
  - - org.cpsolver.ifs.example.jobshop.Job

- All Implemented Interfaces:
    Comparable<Constraint<Operation,Location>>

      public class Job
      extends Constraint<Operation,Location>

  Job constraint.
  Each job contians a given set of operations (variables). A job constraint is satisfied, if all operations of the job do not overlap in time and are processed in the given order.
  Version:
    IFS 1.3 (Iterative Forward Search)
    Copyright (C) 2006 - 2014 Tomáš Müller
    muller@unitime.org
    http://muller.unitime.org
    This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.
    This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
    You should have received a copy of the GNU Lesser General Public License along with this library; if not see http://www.gnu.org/licenses/.
  Author:
    Tomáš Müller

- - ### Field Summary

    - ### Fields inherited from class org.cpsolver.ifs.model.Constraint

      `iConstraintListeners, iId`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `Job(int jobNumber)` Constructor

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `computeConflicts(Assignment<Operation,Location> assignment, Location location, Set<Location> conflicts)` Adds conflicting operations into the set of conflicts.
    `int` | `countOperations()` Count job operations for the job (i.e., the number of variables in this constraint)
    `int` | `getDueTime()` Get due time
    `int` | `getJobNumner()` Get job number
    `String` | `getName()` Name of the job (e.g.
    `Operation` | `getOperation(int opNumber)` Get operation of the given index (0..countOperations()-1)
    `boolean` | `inConflict(Assignment<Operation,Location> assignment, Location location)` True if there is an operation from the same job which violates with the given assignment.
    `boolean` | `isConsistent(Location location1, Location location2)` True if the two assignments (placement of opeartions of the same job in time) violates each other.
    `void` | `setDueTime(int dueTime)` Set due time
    `String` | `toString()` String representation -- for debuging and printing purposes

    - ### Methods inherited from class org.cpsolver.ifs.model.Constraint

      `addConstraintListener, addVariable, assigned, assignedVariables, compareTo, computeConflictsNoForwardCheck, constraintListeners, countAssignedVariables, countVariables, equals, getDescription, getId, getModel, hashCode, isHard, removeConstraintListener, removeVariable, setModel, unassigned, variables`

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### Job

          public Job(int jobNumber)

      Constructor
      Parameters:
        `jobNumber` - job number

  - ### Method Detail

    - #### setDueTime

          public void setDueTime(int dueTime)

      Set due time
      Parameters:
        `dueTime` - due time

    - #### getDueTime

          public int getDueTime()

      Get due time
      Returns:
        due time

    - #### getJobNumner

          public int getJobNumner()

      Get job number
      Returns:
        job number

    - #### countOperations

          public int countOperations()

      Count job operations for the job (i.e., the number of variables in this constraint)
      Returns:
        number of operations in the problem

    - #### getOperation

          public Operation getOperation(int opNumber)

      Get operation of the given index (0..countOperations()-1)
      Parameters:
        `opNumber` - operation number
      Returns:
        operation

    - #### computeConflicts

          public void computeConflicts(Assignment<Operation,Location> assignment,
                                       Location location,
                                       Set<Location> conflicts)

      Adds conflicting operations into the set of conflicts.
      Specified by:
        `computeConflicts` in class `Constraint<Operation,Location>`
      Parameters:
        `assignment` - current assignment
        `location` - value to be assigned to its variable
        `conflicts` - resultant set of conflicting values

    - #### inConflict

          public boolean inConflict(Assignment<Operation,Location> assignment,
                                    Location location)

      True if there is an operation from the same job which violates with the given assignment.
      Overrides:
        `inConflict` in class `Constraint<Operation,Location>`
      Parameters:
        `assignment` - current assignment
        `location` - given value
      Returns:
        true if there is a conflict with other assigned variables of the constraint

    - #### isConsistent

          public boolean isConsistent(Location location1,
                                      Location location2)

      True if the two assignments (placement of opeartions of the same job in time) violates each other.
      Overrides:
        `isConsistent` in class `Constraint<Operation,Location>`
      Parameters:
        `location1` - a value
        `location2` - a value
      Returns:
        true if the constraint is ok with the assignment

    - #### toString

          public String toString()

      String representation -- for debuging and printing purposes
      Overrides:
        `toString` in class `Object`

    - #### getName

          public String getName()

      Name of the job (e.g. J10 where 10 is the job number)
      Overrides:
        `getName` in class `Constraint<Operation,Location>`
      Returns:
        constraint name