<?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.PkgClassMethodResult</code>
 */
class PkgClassMethodResult extends \Google\Protobuf\Internal\Message
{
    /**
     * Package information
     *
     * Generated from protobuf field <code>string pkg_name = 1;</code>
     */
    private $pkg_name = '';
    /**
     * Generated from protobuf field <code>string pkg_version = 2;</code>
     */
    private $pkg_version = '';
    /**
     * Generated from protobuf field <code>.proto.Language language = 3;</code>
     */
    private $language = 0;
    /**
     * Generated from protobuf field <code>string input_path = 4;</code>
     */
    private $input_path = '';
    /**
     * Generic feature result. Note, java wraps everything in classes, so methods related fields are empty.
     *
     * Generated from protobuf field <code>repeated .proto.ClassAttributeProto classes = 5;</code>
     */
    private $classes;
    /**
     * Generated from protobuf field <code>repeated .proto.MethodAttributeProto methods = 6;</code>
     */
    private $methods;
    /**
     * Generated from protobuf field <code>repeated .proto.ClassRelationProto class_pairs = 7;</code>
     */
    private $class_pairs;
    /**
     * Generated from protobuf field <code>repeated .proto.MethodRelationProto method_pairs = 8;</code>
     */
    private $method_pairs;
    /**
     * Generated from protobuf field <code>repeated .proto.ClassMethodRelationProto class_method_pairs = 9;</code>
     */
    private $class_method_pairs;
    /**
     * Generated from protobuf field <code>repeated .proto.MethodClassRelationProto method_class_pairs = 10;</code>
     */
    private $method_class_pairs;
    /**
     * Generated from protobuf field <code>uint64 timestamp = 11;</code>
     */
    private $timestamp = 0;

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type string $pkg_name
     *           Package information
     *     @type string $pkg_version
     *     @type int $language
     *     @type string $input_path
     *     @type \Proto\ClassAttributeProto[]|\Google\Protobuf\Internal\RepeatedField $classes
     *           Generic feature result. Note, java wraps everything in classes, so methods related fields are empty.
     *     @type \Proto\MethodAttributeProto[]|\Google\Protobuf\Internal\RepeatedField $methods
     *     @type \Proto\ClassRelationProto[]|\Google\Protobuf\Internal\RepeatedField $class_pairs
     *     @type \Proto\MethodRelationProto[]|\Google\Protobuf\Internal\RepeatedField $method_pairs
     *     @type \Proto\ClassMethodRelationProto[]|\Google\Protobuf\Internal\RepeatedField $class_method_pairs
     *     @type \Proto\MethodClassRelationProto[]|\Google\Protobuf\Internal\RepeatedField $method_class_pairs
     *     @type int|string $timestamp
     * }
     */
    public function __construct($data = NULL) {
        \GPBMetadata\ClassSig::initOnce();
        parent::__construct($data);
    }

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

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

        return $this;
    }

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

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

        return $this;
    }

    /**
     * Generated from protobuf field <code>.proto.Language language = 3;</code>
     * @return int
     */
    public function getLanguage()
    {
        return $this->language;
    }

    /**
     * Generated from protobuf field <code>.proto.Language language = 3;</code>
     * @param int $var
     * @return $this
     */
    public function setLanguage($var)
    {
        GPBUtil::checkEnum($var, \Proto\Language::class);
        $this->language = $var;

        return $this;
    }

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

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

        return $this;
    }

    /**
     * Generic feature result. Note, java wraps everything in classes, so methods related fields are empty.
     *
     * Generated from protobuf field <code>repeated .proto.ClassAttributeProto classes = 5;</code>
     * @return \Google\Protobuf\Internal\RepeatedField
     */
    public function getClasses()
    {
        return $this->classes;
    }

    /**
     * Generic feature result. Note, java wraps everything in classes, so methods related fields are empty.
     *
     * Generated from protobuf field <code>repeated .proto.ClassAttributeProto classes = 5;</code>
     * @param \Proto\ClassAttributeProto[]|\Google\Protobuf\Internal\RepeatedField $var
     * @return $this
     */
    public function setClasses($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Proto\ClassAttributeProto::class);
        $this->classes = $arr;

        return $this;
    }

    /**
     * Generated from protobuf field <code>repeated .proto.MethodAttributeProto methods = 6;</code>
     * @return \Google\Protobuf\Internal\RepeatedField
     */
    public function getMethods()
    {
        return $this->methods;
    }

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

        return $this;
    }

    /**
     * Generated from protobuf field <code>repeated .proto.ClassRelationProto class_pairs = 7;</code>
     * @return \Google\Protobuf\Internal\RepeatedField
     */
    public function getClassPairs()
    {
        return $this->class_pairs;
    }

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

        return $this;
    }

    /**
     * Generated from protobuf field <code>repeated .proto.MethodRelationProto method_pairs = 8;</code>
     * @return \Google\Protobuf\Internal\RepeatedField
     */
    public function getMethodPairs()
    {
        return $this->method_pairs;
    }

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

        return $this;
    }

    /**
     * Generated from protobuf field <code>repeated .proto.ClassMethodRelationProto class_method_pairs = 9;</code>
     * @return \Google\Protobuf\Internal\RepeatedField
     */
    public function getClassMethodPairs()
    {
        return $this->class_method_pairs;
    }

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

        return $this;
    }

    /**
     * Generated from protobuf field <code>repeated .proto.MethodClassRelationProto method_class_pairs = 10;</code>
     * @return \Google\Protobuf\Internal\RepeatedField
     */
    public function getMethodClassPairs()
    {
        return $this->method_class_pairs;
    }

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

        return $this;
    }

    /**
     * Generated from protobuf field <code>uint64 timestamp = 11;</code>
     * @return int|string
     */
    public function getTimestamp()
    {
        return $this->timestamp;
    }

    /**
     * Generated from protobuf field <code>uint64 timestamp = 11;</code>
     * @param int|string $var
     * @return $this
     */
    public function setTimestamp($var)
    {
        GPBUtil::checkUint64($var);
        $this->timestamp = $var;

        return $this;
    }

}

