<?php
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# NO CHECKED-IN PROTOBUF GENCODE
# source: analyticsTrigger.proto

namespace Rv\Analytics\Trigger;

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

/**
 * Generated from protobuf message <code>rv.analytics.Trigger.Action</code>
 */
class Action extends \Google\Protobuf\Internal\Message
{
    protected $Component;

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type \Rv\Analytics\Trigger\Action\ClearLayer $clear
     *     @type \Rv\Analytics\TriggerMediaInformation $media
     *     @type \Rv\Analytics\Trigger\Action\MediaBinPlaylist $media_bin_playlist
     *     @type \Rv\Analytics\Trigger\Action\AudioBinPlaylist $audio_bin_playlist
     *     @type \Rv\Analytics\Trigger\Action\Stage $stage
     *     @type \Rv\Analytics\Trigger\Action\Timer $timer
     *     @type \Rv\Analytics\Trigger\Action\Prop $prop
     *     @type \Rv\Analytics\Trigger\Action\Look $look
     *     @type \Rv\Analytics\Trigger\Action\Message $message
     *     @type \Rv\Analytics\Trigger\Action\Communications $communications
     *     @type \Rv\Analytics\Trigger\Action\SlideDestination $slide_destination
     *     @type \Rv\Analytics\Trigger\Action\Macro $macro
     *     @type \Rv\Analytics\Trigger\Action\ClearGroup $clear_group
     *     @type \Rv\Analytics\Trigger\Action\CaptureStart $capture_start
     *     @type \Rv\Analytics\Trigger\Action\CaptureStop $capture_stop
     * }
     */
    public function __construct($data = NULL) {
        \GPBMetadata\AnalyticsTrigger::initOnce();
        parent::__construct($data);
    }

    /**
     * Generated from protobuf field <code>.rv.analytics.Trigger.Action.ClearLayer clear = 1;</code>
     * @return \Rv\Analytics\Trigger\Action\ClearLayer|null
     */
    public function getClear()
    {
        return $this->readOneof(1);
    }

    public function hasClear()
    {
        return $this->hasOneof(1);
    }

    /**
     * Generated from protobuf field <code>.rv.analytics.Trigger.Action.ClearLayer clear = 1;</code>
     * @param \Rv\Analytics\Trigger\Action\ClearLayer $var
     * @return $this
     */
    public function setClear($var)
    {
        GPBUtil::checkMessage($var, \Rv\Analytics\Trigger\Action\ClearLayer::class);
        $this->writeOneof(1, $var);

        return $this;
    }

    /**
     * Generated from protobuf field <code>.rv.analytics.TriggerMediaInformation media = 2;</code>
     * @return \Rv\Analytics\TriggerMediaInformation|null
     */
    public function getMedia()
    {
        return $this->readOneof(2);
    }

    public function hasMedia()
    {
        return $this->hasOneof(2);
    }

    /**
     * Generated from protobuf field <code>.rv.analytics.TriggerMediaInformation media = 2;</code>
     * @param \Rv\Analytics\TriggerMediaInformation $var
     * @return $this
     */
    public function setMedia($var)
    {
        GPBUtil::checkMessage($var, \Rv\Analytics\TriggerMediaInformation::class);
        $this->writeOneof(2, $var);

        return $this;
    }

    /**
     * Generated from protobuf field <code>.rv.analytics.Trigger.Action.MediaBinPlaylist media_bin_playlist = 3;</code>
     * @return \Rv\Analytics\Trigger\Action\MediaBinPlaylist|null
     */
    public function getMediaBinPlaylist()
    {
        return $this->readOneof(3);
    }

    public function hasMediaBinPlaylist()
    {
        return $this->hasOneof(3);
    }

    /**
     * Generated from protobuf field <code>.rv.analytics.Trigger.Action.MediaBinPlaylist media_bin_playlist = 3;</code>
     * @param \Rv\Analytics\Trigger\Action\MediaBinPlaylist $var
     * @return $this
     */
    public function setMediaBinPlaylist($var)
    {
        GPBUtil::checkMessage($var, \Rv\Analytics\Trigger\Action\MediaBinPlaylist::class);
        $this->writeOneof(3, $var);

        return $this;
    }

    /**
     * Generated from protobuf field <code>.rv.analytics.Trigger.Action.AudioBinPlaylist audio_bin_playlist = 4;</code>
     * @return \Rv\Analytics\Trigger\Action\AudioBinPlaylist|null
     */
    public function getAudioBinPlaylist()
    {
        return $this->readOneof(4);
    }

    public function hasAudioBinPlaylist()
    {
        return $this->hasOneof(4);
    }

    /**
     * Generated from protobuf field <code>.rv.analytics.Trigger.Action.AudioBinPlaylist audio_bin_playlist = 4;</code>
     * @param \Rv\Analytics\Trigger\Action\AudioBinPlaylist $var
     * @return $this
     */
    public function setAudioBinPlaylist($var)
    {
        GPBUtil::checkMessage($var, \Rv\Analytics\Trigger\Action\AudioBinPlaylist::class);
        $this->writeOneof(4, $var);

        return $this;
    }

    /**
     * Generated from protobuf field <code>.rv.analytics.Trigger.Action.Stage stage = 5;</code>
     * @return \Rv\Analytics\Trigger\Action\Stage|null
     */
    public function getStage()
    {
        return $this->readOneof(5);
    }

    public function hasStage()
    {
        return $this->hasOneof(5);
    }

    /**
     * Generated from protobuf field <code>.rv.analytics.Trigger.Action.Stage stage = 5;</code>
     * @param \Rv\Analytics\Trigger\Action\Stage $var
     * @return $this
     */
    public function setStage($var)
    {
        GPBUtil::checkMessage($var, \Rv\Analytics\Trigger\Action\Stage::class);
        $this->writeOneof(5, $var);

        return $this;
    }

    /**
     * Generated from protobuf field <code>.rv.analytics.Trigger.Action.Timer timer = 6;</code>
     * @return \Rv\Analytics\Trigger\Action\Timer|null
     */
    public function getTimer()
    {
        return $this->readOneof(6);
    }

    public function hasTimer()
    {
        return $this->hasOneof(6);
    }

    /**
     * Generated from protobuf field <code>.rv.analytics.Trigger.Action.Timer timer = 6;</code>
     * @param \Rv\Analytics\Trigger\Action\Timer $var
     * @return $this
     */
    public function setTimer($var)
    {
        GPBUtil::checkMessage($var, \Rv\Analytics\Trigger\Action\Timer::class);
        $this->writeOneof(6, $var);

        return $this;
    }

    /**
     * Generated from protobuf field <code>.rv.analytics.Trigger.Action.Prop prop = 7;</code>
     * @return \Rv\Analytics\Trigger\Action\Prop|null
     */
    public function getProp()
    {
        return $this->readOneof(7);
    }

    public function hasProp()
    {
        return $this->hasOneof(7);
    }

    /**
     * Generated from protobuf field <code>.rv.analytics.Trigger.Action.Prop prop = 7;</code>
     * @param \Rv\Analytics\Trigger\Action\Prop $var
     * @return $this
     */
    public function setProp($var)
    {
        GPBUtil::checkMessage($var, \Rv\Analytics\Trigger\Action\Prop::class);
        $this->writeOneof(7, $var);

        return $this;
    }

    /**
     * Generated from protobuf field <code>.rv.analytics.Trigger.Action.Look look = 8;</code>
     * @return \Rv\Analytics\Trigger\Action\Look|null
     */
    public function getLook()
    {
        return $this->readOneof(8);
    }

    public function hasLook()
    {
        return $this->hasOneof(8);
    }

    /**
     * Generated from protobuf field <code>.rv.analytics.Trigger.Action.Look look = 8;</code>
     * @param \Rv\Analytics\Trigger\Action\Look $var
     * @return $this
     */
    public function setLook($var)
    {
        GPBUtil::checkMessage($var, \Rv\Analytics\Trigger\Action\Look::class);
        $this->writeOneof(8, $var);

        return $this;
    }

    /**
     * Generated from protobuf field <code>.rv.analytics.Trigger.Action.Message message = 9;</code>
     * @return \Rv\Analytics\Trigger\Action\Message|null
     */
    public function getMessage()
    {
        return $this->readOneof(9);
    }

    public function hasMessage()
    {
        return $this->hasOneof(9);
    }

    /**
     * Generated from protobuf field <code>.rv.analytics.Trigger.Action.Message message = 9;</code>
     * @param \Rv\Analytics\Trigger\Action\Message $var
     * @return $this
     */
    public function setMessage($var)
    {
        GPBUtil::checkMessage($var, \Rv\Analytics\Trigger\Action\Message::class);
        $this->writeOneof(9, $var);

        return $this;
    }

    /**
     * Generated from protobuf field <code>.rv.analytics.Trigger.Action.Communications communications = 10;</code>
     * @return \Rv\Analytics\Trigger\Action\Communications|null
     */
    public function getCommunications()
    {
        return $this->readOneof(10);
    }

    public function hasCommunications()
    {
        return $this->hasOneof(10);
    }

    /**
     * Generated from protobuf field <code>.rv.analytics.Trigger.Action.Communications communications = 10;</code>
     * @param \Rv\Analytics\Trigger\Action\Communications $var
     * @return $this
     */
    public function setCommunications($var)
    {
        GPBUtil::checkMessage($var, \Rv\Analytics\Trigger\Action\Communications::class);
        $this->writeOneof(10, $var);

        return $this;
    }

    /**
     * Generated from protobuf field <code>.rv.analytics.Trigger.Action.SlideDestination slide_destination = 11;</code>
     * @return \Rv\Analytics\Trigger\Action\SlideDestination|null
     */
    public function getSlideDestination()
    {
        return $this->readOneof(11);
    }

    public function hasSlideDestination()
    {
        return $this->hasOneof(11);
    }

    /**
     * Generated from protobuf field <code>.rv.analytics.Trigger.Action.SlideDestination slide_destination = 11;</code>
     * @param \Rv\Analytics\Trigger\Action\SlideDestination $var
     * @return $this
     */
    public function setSlideDestination($var)
    {
        GPBUtil::checkMessage($var, \Rv\Analytics\Trigger\Action\SlideDestination::class);
        $this->writeOneof(11, $var);

        return $this;
    }

    /**
     * Generated from protobuf field <code>.rv.analytics.Trigger.Action.Macro macro = 12;</code>
     * @return \Rv\Analytics\Trigger\Action\Macro|null
     */
    public function getMacro()
    {
        return $this->readOneof(12);
    }

    public function hasMacro()
    {
        return $this->hasOneof(12);
    }

    /**
     * Generated from protobuf field <code>.rv.analytics.Trigger.Action.Macro macro = 12;</code>
     * @param \Rv\Analytics\Trigger\Action\Macro $var
     * @return $this
     */
    public function setMacro($var)
    {
        GPBUtil::checkMessage($var, \Rv\Analytics\Trigger\Action\Macro::class);
        $this->writeOneof(12, $var);

        return $this;
    }

    /**
     * Generated from protobuf field <code>.rv.analytics.Trigger.Action.ClearGroup clear_group = 13;</code>
     * @return \Rv\Analytics\Trigger\Action\ClearGroup|null
     */
    public function getClearGroup()
    {
        return $this->readOneof(13);
    }

    public function hasClearGroup()
    {
        return $this->hasOneof(13);
    }

    /**
     * Generated from protobuf field <code>.rv.analytics.Trigger.Action.ClearGroup clear_group = 13;</code>
     * @param \Rv\Analytics\Trigger\Action\ClearGroup $var
     * @return $this
     */
    public function setClearGroup($var)
    {
        GPBUtil::checkMessage($var, \Rv\Analytics\Trigger\Action\ClearGroup::class);
        $this->writeOneof(13, $var);

        return $this;
    }

    /**
     * Generated from protobuf field <code>.rv.analytics.Trigger.Action.CaptureStart capture_start = 14;</code>
     * @return \Rv\Analytics\Trigger\Action\CaptureStart|null
     */
    public function getCaptureStart()
    {
        return $this->readOneof(14);
    }

    public function hasCaptureStart()
    {
        return $this->hasOneof(14);
    }

    /**
     * Generated from protobuf field <code>.rv.analytics.Trigger.Action.CaptureStart capture_start = 14;</code>
     * @param \Rv\Analytics\Trigger\Action\CaptureStart $var
     * @return $this
     */
    public function setCaptureStart($var)
    {
        GPBUtil::checkMessage($var, \Rv\Analytics\Trigger\Action\CaptureStart::class);
        $this->writeOneof(14, $var);

        return $this;
    }

    /**
     * Generated from protobuf field <code>.rv.analytics.Trigger.Action.CaptureStop capture_stop = 15;</code>
     * @return \Rv\Analytics\Trigger\Action\CaptureStop|null
     */
    public function getCaptureStop()
    {
        return $this->readOneof(15);
    }

    public function hasCaptureStop()
    {
        return $this->hasOneof(15);
    }

    /**
     * Generated from protobuf field <code>.rv.analytics.Trigger.Action.CaptureStop capture_stop = 15;</code>
     * @param \Rv\Analytics\Trigger\Action\CaptureStop $var
     * @return $this
     */
    public function setCaptureStop($var)
    {
        GPBUtil::checkMessage($var, \Rv\Analytics\Trigger\Action\CaptureStop::class);
        $this->writeOneof(15, $var);

        return $this;
    }

    /**
     * @return string
     */
    public function getComponent()
    {
        return $this->whichOneof("Component");
    }

}

