001/**
002 * This file is part of the Kompics P2P Framework.
003 *
004 * Copyright (C) 2009 Swedish Institute of Computer Science (SICS) Copyright (C)
005 * 2009 Royal Institute of Technology (KTH)
006 *
007 * Kompics is free software; you can redistribute it and/or modify it under the
008 * terms of the GNU General Public License as published by the Free Software
009 * Foundation; either version 2 of the License, or (at your option) any later
010 * version.
011 *
012 * This program is distributed in the hope that it will be useful, but WITHOUT
013 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
014 * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
015 * details.
016 *
017 * You should have received a copy of the GNU General Public License along with
018 * this program; if not, write to the Free Software Foundation, Inc., 59 Temple
019 * Place - Suite 330, Boston, MA 02111-1307, USA.
020 */
021package se.sics.kompics.simulator.stochastic.events;
022
023import java.util.LinkedList;
024
025/**
026 * The <code>StochasticProcessTerminatedEvent</code> class.
027 *
028 * @author Cosmin Arad {@literal <[email protected]>}
029 * @version $Id: StochasticProcessTerminatedEvent.java 750 2009-04-02 09:55:01Z Cosmin $
030 */
031public final class StochasticProcessTerminatedEvent extends StochasticSimulatorEvent {
032
033    private static final long serialVersionUID = -2104010717407824103L;
034
035    private final LinkedList<StochasticProcessStartEvent> startEvents;
036    private StochasticSimulationTerminatedEvent terminationEvent;
037    private StochasticTakeSnapshotEvent snapshotEvent;
038    private final String processName;
039
040    public StochasticProcessTerminatedEvent(long time, LinkedList<StochasticProcessStartEvent> startEvents,
041            String name) {
042        super(time);
043        this.startEvents = startEvents;
044        this.processName = name;
045    }
046
047    public final LinkedList<StochasticProcessStartEvent> getStartEvents() {
048        return startEvents;
049    }
050
051    @Override
052    public final void setTime(long time) {
053        if (time > getTime()) {
054            // only move time forward
055            super.setTime(time);
056        }
057    }
058
059    public String getProcessName() {
060        return processName;
061    }
062
063    public StochasticSimulationTerminatedEvent getTerminationEvent() {
064        return terminationEvent;
065    }
066
067    public void setTerminationEvent(StochasticSimulationTerminatedEvent terminationEvent) {
068        this.terminationEvent = terminationEvent;
069    }
070
071    public StochasticTakeSnapshotEvent getSnapshotEvent() {
072        return snapshotEvent;
073    }
074
075    public void setSnapshotEvent(StochasticTakeSnapshotEvent snapshotEvent) {
076        this.snapshotEvent = snapshotEvent;
077    }
078}