<?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.MethodAttributeProto</code>
 */
class MethodAttributeProto extends \Google\Protobuf\Internal\Message
{
    /**
     * Generated from protobuf field <code>string class_name = 1;</code>
     */
    private $class_name = '';
    /**
     * Generated from protobuf field <code>string method_name = 2;</code>
     */
    private $method_name = '';
    /**
     * Generated from protobuf field <code>string method_signature = 3;</code>
     */
    private $method_signature = '';
    /**
     * Generated from protobuf field <code>string method_subsignature = 4;</code>
     */
    private $method_subsignature = '';
    /**
     * Generated from protobuf field <code>repeated string paramter_types = 5;</code>
     */
    private $paramter_types;
    /**
     * Generated from protobuf field <code>string return_type = 6;</code>
     */
    private $return_type = '';
    /**
     * Generated from protobuf field <code>repeated string local_types = 7;</code>
     */
    private $local_types;
    /**
     * Generated from protobuf field <code>repeated string string_constants = 8;</code>
     */
    private $string_constants;
    /**
     * The methods that this method invokes, specially we want to check if it is a API method
     *
     * Generated from protobuf field <code>repeated string invoked_method_signatures = 9;</code>
     */
    private $invoked_method_signatures;
    /**
     * Generated from protobuf field <code>repeated string resource_refs = 10;</code>
     */
    private $resource_refs;
    /**
     * Generated from protobuf field <code>repeated string statements = 11;</code>
     */
    private $statements;
    /**
     * Generated from protobuf field <code>string modifiers = 12;</code>
     */
    private $modifiers = '';
    /**
     * Generated from protobuf field <code>.proto.Centroid centroid = 13;</code>
     */
    private $centroid = null;
    /**
     * Generated from protobuf field <code>.proto.Centroid centroid_with_invoke = 14;</code>
     */
    private $centroid_with_invoke = null;
    /**
     * Generated from protobuf field <code>repeated .proto.BasicBlockProto blocks = 15;</code>
     */
    private $blocks;

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type string $class_name
     *     @type string $method_name
     *     @type string $method_signature
     *     @type string $method_subsignature
     *     @type string[]|\Google\Protobuf\Internal\RepeatedField $paramter_types
     *     @type string $return_type
     *     @type string[]|\Google\Protobuf\Internal\RepeatedField $local_types
     *     @type string[]|\Google\Protobuf\Internal\RepeatedField $string_constants
     *     @type string[]|\Google\Protobuf\Internal\RepeatedField $invoked_method_signatures
     *           The methods that this method invokes, specially we want to check if it is a API method
     *     @type string[]|\Google\Protobuf\Internal\RepeatedField $resource_refs
     *     @type string[]|\Google\Protobuf\Internal\RepeatedField $statements
     *     @type string $modifiers
     *     @type \Proto\Centroid $centroid
     *     @type \Proto\Centroid $centroid_with_invoke
     *     @type \Proto\BasicBlockProto[]|\Google\Protobuf\Internal\RepeatedField $blocks
     * }
     */
    public function __construct($data = NULL) {
        \GPBMetadata\ClassSig::initOnce();
        parent::__construct($data);
    }

    /**
     * Generated from protobuf field <code>string class_name = 1;</code>
     * @return string
     */
    public function getClassName()
    {
        return $this->class_name;
    }

    /**
     * Generated from protobuf field <code>string class_name = 1;</code>
     * @param string $var
     * @return $this
     */
    public function setClassName($var)
    {
        GPBUtil::checkString($var, True);
        $this->class_name = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>string method_name = 2;</code>
     * @return string
     */
    public function getMethodName()
    {
        return $this->method_name;
    }

    /**
     * Generated from protobuf field <code>string method_name = 2;</code>
     * @param string $var
     * @return $this
     */
    public function setMethodName($var)
    {
        GPBUtil::checkString($var, True);
        $this->method_name = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>string method_signature = 3;</code>
     * @return string
     */
    public function getMethodSignature()
    {
        return $this->method_signature;
    }

    /**
     * Generated from protobuf field <code>string method_signature = 3;</code>
     * @param string $var
     * @return $this
     */
    public function setMethodSignature($var)
    {
        GPBUtil::checkString($var, True);
        $this->method_signature = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>string method_subsignature = 4;</code>
     * @return string
     */
    public function getMethodSubsignature()
    {
        return $this->method_subsignature;
    }

    /**
     * Generated from protobuf field <code>string method_subsignature = 4;</code>
     * @param string $var
     * @return $this
     */
    public function setMethodSubsignature($var)
    {
        GPBUtil::checkString($var, True);
        $this->method_subsignature = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>repeated string paramter_types = 5;</code>
     * @return \Google\Protobuf\Internal\RepeatedField
     */
    public function getParamterTypes()
    {
        return $this->paramter_types;
    }

    /**
     * Generated from protobuf field <code>repeated string paramter_types = 5;</code>
     * @param string[]|\Google\Protobuf\Internal\RepeatedField $var
     * @return $this
     */
    public function setParamterTypes($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
        $this->paramter_types = $arr;

        return $this;
    }

    /**
     * Generated from protobuf field <code>string return_type = 6;</code>
     * @return string
     */
    public function getReturnType()
    {
        return $this->return_type;
    }

    /**
     * Generated from protobuf field <code>string return_type = 6;</code>
     * @param string $var
     * @return $this
     */
    public function setReturnType($var)
    {
        GPBUtil::checkString($var, True);
        $this->return_type = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>repeated string local_types = 7;</code>
     * @return \Google\Protobuf\Internal\RepeatedField
     */
    public function getLocalTypes()
    {
        return $this->local_types;
    }

    /**
     * Generated from protobuf field <code>repeated string local_types = 7;</code>
     * @param string[]|\Google\Protobuf\Internal\RepeatedField $var
     * @return $this
     */
    public function setLocalTypes($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
        $this->local_types = $arr;

        return $this;
    }

    /**
     * Generated from protobuf field <code>repeated string string_constants = 8;</code>
     * @return \Google\Protobuf\Internal\RepeatedField
     */
    public function getStringConstants()
    {
        return $this->string_constants;
    }

    /**
     * Generated from protobuf field <code>repeated string string_constants = 8;</code>
     * @param string[]|\Google\Protobuf\Internal\RepeatedField $var
     * @return $this
     */
    public function setStringConstants($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
        $this->string_constants = $arr;

        return $this;
    }

    /**
     * The methods that this method invokes, specially we want to check if it is a API method
     *
     * Generated from protobuf field <code>repeated string invoked_method_signatures = 9;</code>
     * @return \Google\Protobuf\Internal\RepeatedField
     */
    public function getInvokedMethodSignatures()
    {
        return $this->invoked_method_signatures;
    }

    /**
     * The methods that this method invokes, specially we want to check if it is a API method
     *
     * Generated from protobuf field <code>repeated string invoked_method_signatures = 9;</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;
    }

    /**
     * Generated from protobuf field <code>repeated string resource_refs = 10;</code>
     * @return \Google\Protobuf\Internal\RepeatedField
     */
    public function getResourceRefs()
    {
        return $this->resource_refs;
    }

    /**
     * Generated from protobuf field <code>repeated string resource_refs = 10;</code>
     * @param string[]|\Google\Protobuf\Internal\RepeatedField $var
     * @return $this
     */
    public function setResourceRefs($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
        $this->resource_refs = $arr;

        return $this;
    }

    /**
     * Generated from protobuf field <code>repeated string statements = 11;</code>
     * @return \Google\Protobuf\Internal\RepeatedField
     */
    public function getStatements()
    {
        return $this->statements;
    }

    /**
     * Generated from protobuf field <code>repeated string statements = 11;</code>
     * @param string[]|\Google\Protobuf\Internal\RepeatedField $var
     * @return $this
     */
    public function setStatements($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
        $this->statements = $arr;

        return $this;
    }

    /**
     * Generated from protobuf field <code>string modifiers = 12;</code>
     * @return string
     */
    public function getModifiers()
    {
        return $this->modifiers;
    }

    /**
     * Generated from protobuf field <code>string modifiers = 12;</code>
     * @param string $var
     * @return $this
     */
    public function setModifiers($var)
    {
        GPBUtil::checkString($var, True);
        $this->modifiers = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>.proto.Centroid centroid = 13;</code>
     * @return \Proto\Centroid
     */
    public function getCentroid()
    {
        return $this->centroid;
    }

    /**
     * Generated from protobuf field <code>.proto.Centroid centroid = 13;</code>
     * @param \Proto\Centroid $var
     * @return $this
     */
    public function setCentroid($var)
    {
        GPBUtil::checkMessage($var, \Proto\Centroid::class);
        $this->centroid = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>.proto.Centroid centroid_with_invoke = 14;</code>
     * @return \Proto\Centroid
     */
    public function getCentroidWithInvoke()
    {
        return $this->centroid_with_invoke;
    }

    /**
     * Generated from protobuf field <code>.proto.Centroid centroid_with_invoke = 14;</code>
     * @param \Proto\Centroid $var
     * @return $this
     */
    public function setCentroidWithInvoke($var)
    {
        GPBUtil::checkMessage($var, \Proto\Centroid::class);
        $this->centroid_with_invoke = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>repeated .proto.BasicBlockProto blocks = 15;</code>
     * @return \Google\Protobuf\Internal\RepeatedField
     */
    public function getBlocks()
    {
        return $this->blocks;
    }

    /**
     * Generated from protobuf field <code>repeated .proto.BasicBlockProto blocks = 15;</code>
     * @param \Proto\BasicBlockProto[]|\Google\Protobuf\Internal\RepeatedField $var
     * @return $this
     */
    public function setBlocks($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Proto\BasicBlockProto::class);
        $this->blocks = $arr;

        return $this;
    }

}

