
jasima.shopSim.core.Job Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jasima-main Show documentation
Show all versions of jasima-main Show documentation
JAva SImulatior for MAnufacturing and logistics - A framework for discrete event simulation and computer experiments with a main focus on modelling and analyzing logistic/manufacturing systems.
/*******************************************************************************
* Copyright (c) 2010-2013 Torsten Hildebrandt and jasima contributors
*
* This file is part of jasima, v1.0.
*
* jasima is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* jasima 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with jasima. If not, see .
*
* $Id: Job.java 123 2013-07-08 09:27:56Z [email protected] $
*******************************************************************************/
package jasima.shopSim.core;
import jasima.core.util.observer.Notifier;
import jasima.core.util.observer.NotifierAdapter;
import jasima.core.util.observer.NotifierListener;
import jasima.shopSim.core.Job.JobEvent;
import java.util.HashMap;
/**
* Main work unit in a shop.
*
* @author Torsten Hildebrandt
* @version "$Id: Job.java 123 2013-07-08 09:27:56Z [email protected] $"
*/
public class Job extends PrioRuleTarget implements Cloneable,
Notifier {
/** Base class for workstation events. */
public static class JobEvent {
}
// constants for events thrown by a job
public static final JobEvent JOB_RELEASED = new JobEvent();
public static final JobEvent JOB_FINISHED = new JobEvent();
public static final JobEvent JOB_ARRIVED_IN_QUEUE = new JobEvent();
public static final JobEvent JOB_REMOVED_FROM_QUEUE = new JobEvent();
public static final JobEvent JOB_START_OPERATION = new JobEvent();
public static final JobEvent JOB_END_OPERATION = new JobEvent();
private final JobShop shop;
private double arriveTime; // arrival time at current machine
private WorkStation currMachine;
// when will job finish processing on its current machine (if started)
private double startTime;
private double finishTime;
private int taskNumber; // current operation
private double relDate;
private double dueDate;
private int jobNum; // global number of job in system
private int jobType;
private double weight = 1.0d;
private Operation[] ops;
private double[] opDueDates;
private boolean isFuture = false;
private String name = null;
// we cache the value returned by remainingProcTime()
private double remProcTime = -1.0d;
private Job future;
private HashMap
© 2015 - 2025 Weber Informatics LLC | Privacy Policy