<?php
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/cloud/talent/v4beta1/job_service.proto

namespace Google\Cloud\Talent\V4beta1\SearchJobsResponse;

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

/**
 * Job entry with metadata inside [SearchJobsResponse][google.cloud.talent.v4beta1.SearchJobsResponse].
 *
 * Generated from protobuf message <code>google.cloud.talent.v4beta1.SearchJobsResponse.MatchingJob</code>
 */
class MatchingJob extends \Google\Protobuf\Internal\Message
{
    /**
     * Job resource that matches the specified [SearchJobsRequest][google.cloud.talent.v4beta1.SearchJobsRequest].
     *
     * Generated from protobuf field <code>.google.cloud.talent.v4beta1.Job job = 1;</code>
     */
    private $job = null;
    /**
     * A summary of the job with core information that's displayed on the search
     * results listing page.
     *
     * Generated from protobuf field <code>string job_summary = 2;</code>
     */
    private $job_summary = '';
    /**
     * Contains snippets of text from the [Job.title][google.cloud.talent.v4beta1.Job.title] field most
     * closely matching a search query's keywords, if available. The matching
     * query keywords are enclosed in HTML bold tags.
     *
     * Generated from protobuf field <code>string job_title_snippet = 3;</code>
     */
    private $job_title_snippet = '';
    /**
     * Contains snippets of text from the [Job.description][google.cloud.talent.v4beta1.Job.description] and similar
     * fields that most closely match a search query's keywords, if available.
     * All HTML tags in the original fields are stripped when returned in this
     * field, and matching query keywords are enclosed in HTML bold tags.
     *
     * Generated from protobuf field <code>string search_text_snippet = 4;</code>
     */
    private $search_text_snippet = '';
    /**
     * Commute information which is generated based on specified
     *  [CommuteFilter][google.cloud.talent.v4beta1.CommuteFilter].
     *
     * Generated from protobuf field <code>.google.cloud.talent.v4beta1.SearchJobsResponse.CommuteInfo commute_info = 5;</code>
     */
    private $commute_info = null;

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type \Google\Cloud\Talent\V4beta1\Job $job
     *           Job resource that matches the specified [SearchJobsRequest][google.cloud.talent.v4beta1.SearchJobsRequest].
     *     @type string $job_summary
     *           A summary of the job with core information that's displayed on the search
     *           results listing page.
     *     @type string $job_title_snippet
     *           Contains snippets of text from the [Job.title][google.cloud.talent.v4beta1.Job.title] field most
     *           closely matching a search query's keywords, if available. The matching
     *           query keywords are enclosed in HTML bold tags.
     *     @type string $search_text_snippet
     *           Contains snippets of text from the [Job.description][google.cloud.talent.v4beta1.Job.description] and similar
     *           fields that most closely match a search query's keywords, if available.
     *           All HTML tags in the original fields are stripped when returned in this
     *           field, and matching query keywords are enclosed in HTML bold tags.
     *     @type \Google\Cloud\Talent\V4beta1\SearchJobsResponse\CommuteInfo $commute_info
     *           Commute information which is generated based on specified
     *            [CommuteFilter][google.cloud.talent.v4beta1.CommuteFilter].
     * }
     */
    public function __construct($data = NULL) {
        \GPBMetadata\Google\Cloud\Talent\V4Beta1\JobService::initOnce();
        parent::__construct($data);
    }

    /**
     * Job resource that matches the specified [SearchJobsRequest][google.cloud.talent.v4beta1.SearchJobsRequest].
     *
     * Generated from protobuf field <code>.google.cloud.talent.v4beta1.Job job = 1;</code>
     * @return \Google\Cloud\Talent\V4beta1\Job
     */
    public function getJob()
    {
        return isset($this->job) ? $this->job : null;
    }

    public function hasJob()
    {
        return isset($this->job);
    }

    public function clearJob()
    {
        unset($this->job);
    }

    /**
     * Job resource that matches the specified [SearchJobsRequest][google.cloud.talent.v4beta1.SearchJobsRequest].
     *
     * Generated from protobuf field <code>.google.cloud.talent.v4beta1.Job job = 1;</code>
     * @param \Google\Cloud\Talent\V4beta1\Job $var
     * @return $this
     */
    public function setJob($var)
    {
        GPBUtil::checkMessage($var, \Google\Cloud\Talent\V4beta1\Job::class);
        $this->job = $var;

        return $this;
    }

    /**
     * A summary of the job with core information that's displayed on the search
     * results listing page.
     *
     * Generated from protobuf field <code>string job_summary = 2;</code>
     * @return string
     */
    public function getJobSummary()
    {
        return $this->job_summary;
    }

    /**
     * A summary of the job with core information that's displayed on the search
     * results listing page.
     *
     * Generated from protobuf field <code>string job_summary = 2;</code>
     * @param string $var
     * @return $this
     */
    public function setJobSummary($var)
    {
        GPBUtil::checkString($var, True);
        $this->job_summary = $var;

        return $this;
    }

    /**
     * Contains snippets of text from the [Job.title][google.cloud.talent.v4beta1.Job.title] field most
     * closely matching a search query's keywords, if available. The matching
     * query keywords are enclosed in HTML bold tags.
     *
     * Generated from protobuf field <code>string job_title_snippet = 3;</code>
     * @return string
     */
    public function getJobTitleSnippet()
    {
        return $this->job_title_snippet;
    }

    /**
     * Contains snippets of text from the [Job.title][google.cloud.talent.v4beta1.Job.title] field most
     * closely matching a search query's keywords, if available. The matching
     * query keywords are enclosed in HTML bold tags.
     *
     * Generated from protobuf field <code>string job_title_snippet = 3;</code>
     * @param string $var
     * @return $this
     */
    public function setJobTitleSnippet($var)
    {
        GPBUtil::checkString($var, True);
        $this->job_title_snippet = $var;

        return $this;
    }

    /**
     * Contains snippets of text from the [Job.description][google.cloud.talent.v4beta1.Job.description] and similar
     * fields that most closely match a search query's keywords, if available.
     * All HTML tags in the original fields are stripped when returned in this
     * field, and matching query keywords are enclosed in HTML bold tags.
     *
     * Generated from protobuf field <code>string search_text_snippet = 4;</code>
     * @return string
     */
    public function getSearchTextSnippet()
    {
        return $this->search_text_snippet;
    }

    /**
     * Contains snippets of text from the [Job.description][google.cloud.talent.v4beta1.Job.description] and similar
     * fields that most closely match a search query's keywords, if available.
     * All HTML tags in the original fields are stripped when returned in this
     * field, and matching query keywords are enclosed in HTML bold tags.
     *
     * Generated from protobuf field <code>string search_text_snippet = 4;</code>
     * @param string $var
     * @return $this
     */
    public function setSearchTextSnippet($var)
    {
        GPBUtil::checkString($var, True);
        $this->search_text_snippet = $var;

        return $this;
    }

    /**
     * Commute information which is generated based on specified
     *  [CommuteFilter][google.cloud.talent.v4beta1.CommuteFilter].
     *
     * Generated from protobuf field <code>.google.cloud.talent.v4beta1.SearchJobsResponse.CommuteInfo commute_info = 5;</code>
     * @return \Google\Cloud\Talent\V4beta1\SearchJobsResponse\CommuteInfo
     */
    public function getCommuteInfo()
    {
        return isset($this->commute_info) ? $this->commute_info : null;
    }

    public function hasCommuteInfo()
    {
        return isset($this->commute_info);
    }

    public function clearCommuteInfo()
    {
        unset($this->commute_info);
    }

    /**
     * Commute information which is generated based on specified
     *  [CommuteFilter][google.cloud.talent.v4beta1.CommuteFilter].
     *
     * Generated from protobuf field <code>.google.cloud.talent.v4beta1.SearchJobsResponse.CommuteInfo commute_info = 5;</code>
     * @param \Google\Cloud\Talent\V4beta1\SearchJobsResponse\CommuteInfo $var
     * @return $this
     */
    public function setCommuteInfo($var)
    {
        GPBUtil::checkMessage($var, \Google\Cloud\Talent\V4beta1\SearchJobsResponse\CommuteInfo::class);
        $this->commute_info = $var;

        return $this;
    }

}

// Adding a class alias for backwards compatibility with the previous class name.
class_alias(MatchingJob::class, \Google\Cloud\Talent\V4beta1\SearchJobsResponse_MatchingJob::class);

