<?php

/**
 * OpenKM, Open Knowledge Management System S.L.  (http://www.openkm.com)
 * Copyright (c) 2006-2023
 *
 * No bytes were intentionally harmed during the development of this application.
 *
 * This program is commercial software; you can use it under the terms of the
 * EULA - OpenKM SDK End User License Agreement as published by OpenKM Knowledge Management System S.L.
 *
 * This program 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
 * EULA - OpenKM SDK End User License Agreement for more details:
 * http://docs.openkm.com/kcenter/view/licenses/eula-openkm-sdk-end-user-license-agreement.html
 */

namespace openkm\bean;

/**
 * ProcessDefinition
 *
 * @author sochoa
 */
class ProcessInstance {

    private $id;
    private $version;
    private $key;
    private $start;
    private $end;
    private $ended;
    private $suspended;
    private $rootToken;
    private $variables = [];
    private $allTokens = [];
    private $processDefinition;

    function __construct() {
        
    }

    function getId() {
        return $this->id;
    }

    function getVersion() {
        return $this->version;
    }

    function getKey() {
        return $this->key;
    }

    function getStart() {
        return $this->start;
    }

    function getEnd() {
        return $this->end;
    }

    function isEnded() {
        return $this->ended;
    }

    function isSuspended() {
        return $this->suspended;
    }

    function getRootToken() {
        return $this->rootToken;
    }

    function getVariables() {
        return $this->variables;
    }

    function getAllTokens() {
        return $this->allTokens;
    }

    function getProcessDefinition() {
        return $this->processDefinition;
    }

    function setId($id) {
        $this->id = $id;
    }

    function setVersion($version) {
        $this->version = $version;
    }

    function setKey($key) {
        $this->key = $key;
    }

    function setStart($start) {
        $this->start = $start;
    }

    function setEnd($end) {
        $this->end = $end;
    }

    function setEnded($ended) {
        $this->ended = $ended;
    }

    function setSuspended($suspended) {
        $this->suspended = $suspended;
    }

    function setRootToken(Token $rootToken) {
        $this->rootToken = $rootToken;
    }

    function setVariables($variables = []) {
        $this->variables = $variables;
    }

    function setAllTokens($allTokens = []) {
        $this->allTokens = $allTokens;
    }

    function setProcessDefinition(ProcessDefinition $processDefinition) {
        $this->processDefinition = $processDefinition;
    }

}
