<?php
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: class_sig.proto

namespace Proto;

use Google\Protobuf\Internal\GPBType;
use Google\Protobuf\Internal\RepeatedField;
use Google\Protobuf\Internal\GPBUtil;

/**
 * Generated from protobuf message <code>proto.BasicBlockProto</code>
 */
class BasicBlockProto extends \Google\Protobuf\Internal\Message
{
    /**
     * x, sequence number, use deterministic depth-first traversal to assign sequence number
     *
     * Generated from protobuf field <code>int32 sequence_number = 1;</code>
     */
    private $sequence_number = 0;
    /**
     * incoming edges, in degree is the number of incoming edges for a basic block
     *
     * Generated from protobuf field <code>int32 in_degree = 2;</code>
     */
    private $in_degree = 0;
    /**
     * y, outgoing edges, out degree is the number of outgoing edges in basic block
     *
     * Generated from protobuf field <code>int32 out_degree = 3;</code>
     */
    private $out_degree = 0;
    /**
     * incoming edges, doesn't include exceptional edges
     *
     * Generated from protobuf field <code>int32 in_degree_unexceptional = 4;</code>
     */
    private $in_degree_unexceptional = 0;
    /**
     * y, outgoing edges, doesn't include exceptional edges
     *
     * Generated from protobuf field <code>int32 out_degree_unexceptional = 5;</code>
     */
    private $out_degree_unexceptional = 0;
    /**
     * z, loop depth of the node, depth is the depth of loop
     *
     * Generated from protobuf field <code>int32 loop_depth = 6;</code>
     */
    private $loop_depth = 0;
    /**
     * w, number of statements, total number of statements
     *
     * Generated from protobuf field <code>int32 stmt_count = 7;</code>
     */
    private $stmt_count = 0;
    /**
     * w', list of invoked method signatures
     *
     * Generated from protobuf field <code>repeated string invoked_method_signatures = 8;</code>
     */
    private $invoked_method_signatures;
    /**
     * predecessors, represented using sequence number
     *
     * Generated from protobuf field <code>repeated int32 predecessors = 9;</code>
     */
    private $predecessors;
    /**
     * successors, represented using sequence number
     *
     * Generated from protobuf field <code>repeated int32 successors = 10;</code>
     */
    private $successors;
    /**
     * the dominator sequence number, used for debugging!
     *
     * Generated from protobuf field <code>int32 dominator_sequence_number = 11;</code>
     */
    private $dominator_sequence_number = 0;

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type int $sequence_number
     *           x, sequence number, use deterministic depth-first traversal to assign sequence number
     *     @type int $in_degree
     *           incoming edges, in degree is the number of incoming edges for a basic block
     *     @type int $out_degree
     *           y, outgoing edges, out degree is the number of outgoing edges in basic block
     *     @type int $in_degree_unexceptional
     *           incoming edges, doesn't include exceptional edges
     *     @type int $out_degree_unexceptional
     *           y, outgoing edges, doesn't include exceptional edges
     *     @type int $loop_depth
     *           z, loop depth of the node, depth is the depth of loop
     *     @type int $stmt_count
     *           w, number of statements, total number of statements
     *     @type string[]|\Google\Protobuf\Internal\RepeatedField $invoked_method_signatures
     *           w', list of invoked method signatures
     *     @type int[]|\Google\Protobuf\Internal\RepeatedField $predecessors
     *           predecessors, represented using sequence number
     *     @type int[]|\Google\Protobuf\Internal\RepeatedField $successors
     *           successors, represented using sequence number
     *     @type int $dominator_sequence_number
     *           the dominator sequence number, used for debugging!
     * }
     */
    public function __construct($data = NULL) {
        \GPBMetadata\ClassSig::initOnce();
        parent::__construct($data);
    }

    /**
     * x, sequence number, use deterministic depth-first traversal to assign sequence number
     *
     * Generated from protobuf field <code>int32 sequence_number = 1;</code>
     * @return int
     */
    public function getSequenceNumber()
    {
        return $this->sequence_number;
    }

    /**
     * x, sequence number, use deterministic depth-first traversal to assign sequence number
     *
     * Generated from protobuf field <code>int32 sequence_number = 1;</code>
     * @param int $var
     * @return $this
     */
    public function setSequenceNumber($var)
    {
        GPBUtil::checkInt32($var);
        $this->sequence_number = $var;

        return $this;
    }

    /**
     * incoming edges, in degree is the number of incoming edges for a basic block
     *
     * Generated from protobuf field <code>int32 in_degree = 2;</code>
     * @return int
     */
    public function getInDegree()
    {
        return $this->in_degree;
    }

    /**
     * incoming edges, in degree is the number of incoming edges for a basic block
     *
     * Generated from protobuf field <code>int32 in_degree = 2;</code>
     * @param int $var
     * @return $this
     */
    public function setInDegree($var)
    {
        GPBUtil::checkInt32($var);
        $this->in_degree = $var;

        return $this;
    }

    /**
     * y, outgoing edges, out degree is the number of outgoing edges in basic block
     *
     * Generated from protobuf field <code>int32 out_degree = 3;</code>
     * @return int
     */
    public function getOutDegree()
    {
        return $this->out_degree;
    }

    /**
     * y, outgoing edges, out degree is the number of outgoing edges in basic block
     *
     * Generated from protobuf field <code>int32 out_degree = 3;</code>
     * @param int $var
     * @return $this
     */
    public function setOutDegree($var)
    {
        GPBUtil::checkInt32($var);
        $this->out_degree = $var;

        return $this;
    }

    /**
     * incoming edges, doesn't include exceptional edges
     *
     * Generated from protobuf field <code>int32 in_degree_unexceptional = 4;</code>
     * @return int
     */
    public function getInDegreeUnexceptional()
    {
        return $this->in_degree_unexceptional;
    }

    /**
     * incoming edges, doesn't include exceptional edges
     *
     * Generated from protobuf field <code>int32 in_degree_unexceptional = 4;</code>
     * @param int $var
     * @return $this
     */
    public function setInDegreeUnexceptional($var)
    {
        GPBUtil::checkInt32($var);
        $this->in_degree_unexceptional = $var;

        return $this;
    }

    /**
     * y, outgoing edges, doesn't include exceptional edges
     *
     * Generated from protobuf field <code>int32 out_degree_unexceptional = 5;</code>
     * @return int
     */
    public function getOutDegreeUnexceptional()
    {
        return $this->out_degree_unexceptional;
    }

    /**
     * y, outgoing edges, doesn't include exceptional edges
     *
     * Generated from protobuf field <code>int32 out_degree_unexceptional = 5;</code>
     * @param int $var
     * @return $this
     */
    public function setOutDegreeUnexceptional($var)
    {
        GPBUtil::checkInt32($var);
        $this->out_degree_unexceptional = $var;

        return $this;
    }

    /**
     * z, loop depth of the node, depth is the depth of loop
     *
     * Generated from protobuf field <code>int32 loop_depth = 6;</code>
     * @return int
     */
    public function getLoopDepth()
    {
        return $this->loop_depth;
    }

    /**
     * z, loop depth of the node, depth is the depth of loop
     *
     * Generated from protobuf field <code>int32 loop_depth = 6;</code>
     * @param int $var
     * @return $this
     */
    public function setLoopDepth($var)
    {
        GPBUtil::checkInt32($var);
        $this->loop_depth = $var;

        return $this;
    }

    /**
     * w, number of statements, total number of statements
     *
     * Generated from protobuf field <code>int32 stmt_count = 7;</code>
     * @return int
     */
    public function getStmtCount()
    {
        return $this->stmt_count;
    }

    /**
     * w, number of statements, total number of statements
     *
     * Generated from protobuf field <code>int32 stmt_count = 7;</code>
     * @param int $var
     * @return $this
     */
    public function setStmtCount($var)
    {
        GPBUtil::checkInt32($var);
        $this->stmt_count = $var;

        return $this;
    }

    /**
     * w', list of invoked method signatures
     *
     * Generated from protobuf field <code>repeated string invoked_method_signatures = 8;</code>
     * @return \Google\Protobuf\Internal\RepeatedField
     */
    public function getInvokedMethodSignatures()
    {
        return $this->invoked_method_signatures;
    }

    /**
     * w', list of invoked method signatures
     *
     * Generated from protobuf field <code>repeated string invoked_method_signatures = 8;</code>
     * @param string[]|\Google\Protobuf\Internal\RepeatedField $var
     * @return $this
     */
    public function setInvokedMethodSignatures($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
        $this->invoked_method_signatures = $arr;

        return $this;
    }

    /**
     * predecessors, represented using sequence number
     *
     * Generated from protobuf field <code>repeated int32 predecessors = 9;</code>
     * @return \Google\Protobuf\Internal\RepeatedField
     */
    public function getPredecessors()
    {
        return $this->predecessors;
    }

    /**
     * predecessors, represented using sequence number
     *
     * Generated from protobuf field <code>repeated int32 predecessors = 9;</code>
     * @param int[]|\Google\Protobuf\Internal\RepeatedField $var
     * @return $this
     */
    public function setPredecessors($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::INT32);
        $this->predecessors = $arr;

        return $this;
    }

    /**
     * successors, represented using sequence number
     *
     * Generated from protobuf field <code>repeated int32 successors = 10;</code>
     * @return \Google\Protobuf\Internal\RepeatedField
     */
    public function getSuccessors()
    {
        return $this->successors;
    }

    /**
     * successors, represented using sequence number
     *
     * Generated from protobuf field <code>repeated int32 successors = 10;</code>
     * @param int[]|\Google\Protobuf\Internal\RepeatedField $var
     * @return $this
     */
    public function setSuccessors($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::INT32);
        $this->successors = $arr;

        return $this;
    }

    /**
     * the dominator sequence number, used for debugging!
     *
     * Generated from protobuf field <code>int32 dominator_sequence_number = 11;</code>
     * @return int
     */
    public function getDominatorSequenceNumber()
    {
        return $this->dominator_sequence_number;
    }

    /**
     * the dominator sequence number, used for debugging!
     *
     * Generated from protobuf field <code>int32 dominator_sequence_number = 11;</code>
     * @param int $var
     * @return $this
     */
    public function setDominatorSequenceNumber($var)
    {
        GPBUtil::checkInt32($var);
        $this->dominator_sequence_number = $var;

        return $this;
    }

}

