Source of file SCO.php
Size: 11,550 Bytes - Last Modified: 2018-11-03T09:50:48-04:00
G:/AdobeConnectClient/src/Entities/SCO.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638 | <?php namespace AdobeConnectClient\Entities; use DateTimeInterface; use DateTimeImmutable; use DomainException; use AdobeConnectClient\ArrayableInterface; use AdobeConnectClient\Helpers\ValueTransform as VT; use AdobeConnectClient\Traits\Arrayable as ArrayableTrait; /** * Adobe Connect SCO * * See {@link https://helpx.adobe.com/adobe-connect/webservices/common-xml-elements-attributes.html#type} * */ class SCO implements ArrayableInterface { use ArrayableTrait; /** * A viewable file uploaded to the server. * For example, an FLV file, an HTML file, an image, a pod, and so on. * @var string */ const TYPE_CONTENT = 'content'; /** * A curriculum. * @var string */ const TYPE_CURRICULUM = 'curriculum'; /** * An event. * @var string */ const TYPE_EVENT = 'event'; /** * A folder on the server’s hard disk that contains content. * @var string */ const TYPE_FOLDER = 'folder'; /** * A reference to another SCO. These links are used by curriculums to link to other SCOs. * When content is added to a curriculum, a link is created from the curriculum to the content. * @var string */ const TYPE_LINK = 'link'; /** * An Adobe Connect meeting. * @var string */ const TYPE_MEETING = 'meeting'; /** * One occurrence of a recurring Adobe Connect meeting. * @var string */ const TYPE_SESSION = 'session'; /** * The root of a folder hierarchy. A tree’s root is treated as an independent hierarchy; * you can’t determine the parent folder of a tree from inside the tree. * @var string */ const TYPE_TREE = 'tree'; /** * @var int */ protected $accountId = null; /** * @var bool */ protected $disabled = null; /** * @var int */ protected $displaySeq = null; /** * @var int */ protected $folderId = null; /** * @var string */ protected $icon = null; /** * @var string */ protected $lang = null; /** * @var int */ protected $maxRetries = null; /** * @var int */ protected $scoId = null; /** * @var int */ protected $sourceScoId = null; /** * @var string */ protected $type = null; /** * @var string */ protected $version = null; /** * @var DateTimeImmutable */ protected $dateCreated = null; /** * @var DateTimeImmutable */ protected $dateModified = null; /** * @var string */ protected $description = null; /** * @var string */ protected $name = null; /** * @var string */ protected $urlPath = null; /** * @var DateTimeImmutable */ protected $dateBegin = null; /** * @var DateTimeImmutable */ protected $dateEnd = null; /** * @var bool */ protected $meetingPodsLayoutsLocked = null; /** * @var bool */ protected $updateLinkedItem = null; /** * Create a new SCO Instance * * @return SCO */ public static function instance() { return new static; } /** * Get the Account ID * * @return int */ public function getAccountId() { return $this->accountId; } /** * Get the disabled indicator * * @return bool */ public function getDisabled() { return $this->disabled; } /** * Get the display sequence * * @return int */ public function getDisplaySeq() { return $this->displaySeq; } /** * Get the Folder ID * * @return int */ public function getFolderId() { return $this->folderId; } /** * Get the icon * * @return string */ public function getIcon() { return $this->icon; } /** * Get the language * * @return string */ public function getLang() { return $this->lang; } /** * Get the max retries * * @return int */ public function getMaxRetries() { return $this->maxRetries; } /** * Get the SCO ID * * @return int */ public function getScoId() { return $this->scoId; } /** * Get the Source ID * * @return int */ public function getSourceScoId() { return $this->sourceScoId; } /** * Get the type * * @return string */ public function getType() { return $this->type; } /** * Get the version * * @return string */ public function getVersion() { return $this->version; } /** * Get the Creation Date * * @return DateTimeImmutable */ public function getDateCreated() { return $this->dateCreated; } /** * Get the Modified date * * @return DateTimeImmutable */ public function getDateModified() { return $this->dateModified; } /** * Get the description * * @return string */ public function getDescription() { return $this->description; } /** * Get the name * * @return string */ public function getName() { return $this->name; } /** * Get the URL * * @return string */ public function getUrlPath() { return $this->urlPath; } /** * Get the time Begins the meeting * * @return DateTimeImmutable */ public function getDateBegin() { return $this->dateBegin; } /** * Get the time End the meeting * * @return DateTimeImmutable */ public function getDateEnd() { return $this->dateEnd; } /** * Get the Pod layout locked status * * @return bool */ public function getMeetingPodsLayoutsLocked() { return $this->meetingPodsLayoutsLocked; } /** * Get the linked item update status * * @return bool */ public function getUpdateLinkedItem() { return $this->updateLinkedItem; } /** * Set the Account ID * * @param int $accountId The account ID * @return SCO */ public function setAccountId($accountId) { $this->accountId = (int) $accountId; return $this; } /** * Set the disabled status * * @param bool $disabled * @return SCO */ public function setDisabled($disabled) { $this->disabled = VT::toBool($disabled); return $this; } /** * Set the Display Sequence * * @param int $displaySeq * @return SCO */ public function setDisplaySeq($displaySeq) { $this->displaySeq = (int) $displaySeq; return $this; } /** * Set the Folder ID * * @param int $folderId * @return SCO */ public function setFolderId($folderId) { $this->folderId = (int) $folderId; return $this; } /** * Set the Icon * * @param string $icon * @return SCO */ public function setIcon($icon) { $this->icon = (string) $icon; return $this; } /** * Set the Language * * @param string $lang * @return SCO */ public function setLang($lang) { $this->lang = (string) $lang; return $this; } /** * Set the Max retries * * @param int $maxRetries * @return SCO */ public function setMaxRetries($maxRetries) { $this->maxRetries = (int) $maxRetries; return $this; } /** * Set the SCO ID * * @param int $scoId * @return SCO */ public function setScoId($scoId) { $this->scoId = (int) $scoId; return $this; } /** * Set the Source ID * @param int $sourceScoId * @return SCO */ public function setSourceScoId($sourceScoId) { $this->sourceScoId = (int) $sourceScoId; return $this; } /** * Set the Type * * @param string $type * @return SCO * @throws DomainException */ public function setType($type) { if (!in_array( $type, [ self::TYPE_CONTENT, self::TYPE_CURRICULUM, self::TYPE_EVENT, self::TYPE_FOLDER, self::TYPE_LINK, self::TYPE_MEETING, self::TYPE_SESSION, self::TYPE_TREE ] )) { throw new DomainException("{$type} isn't a valid SCO Type"); } $this->type = $type; return $this; } /** * Set the Version * * @param string $version * @return SCO */ public function setVersion($version) { $this->version = (string) $version; return $this; } /** * Set the Created Date * * @param DateTimeInterface|string $dateCreated * @return SCO */ public function setDateCreated($dateCreated) { $this->dateCreated = VT::toDateTimeImmutable($dateCreated); return $this; } /** * Set the Modified Date * * @param DateTimeInterface|string $dateModified * @return SCO */ public function setDateModified($dateModified) { $this->dateModified = VT::toDateTimeImmutable($dateModified); return $this; } /** * Set the Description * * @param string $description * @return SCO */ public function setDescription($description) { $this->description = (string) $description; return $this; } /** * Set the Name * * @param string $name * @return SCO */ public function setName($name) { $this->name = (string) $name; return $this; } /** * Set the URL * * @param string $urlPath * @return SCO */ public function setUrlPath($urlPath) { $this->urlPath = (string) $urlPath; return $this; } /** * Set the time Meeting begin * * @param DateTimeInterface|string $dateBegin * @return SCO */ public function setDateBegin($dateBegin) { $this->dateBegin = VT::toDateTimeImmutable($dateBegin); return $this; } /** * Set the time Meeting end * * @param DateTimeInterface|string $dateEnd * @return SCO */ public function setDateEnd($dateEnd) { $this->dateEnd = VT::toDateTimeImmutable($dateEnd); return $this; } /** * Set the Pods Layout locked status * * @param bool $meetingPodsLayoutsLocked * @return SCO */ public function setMeetingPodsLayoutsLocked($meetingPodsLayoutsLocked) { $this->meetingPodsLayoutsLocked = VT::toBool($meetingPodsLayoutsLocked); return $this; } /** * Set the linked item status * * @param bool $updateLinkedItem * @return SCO */ public function setUpdateLinkedItem($updateLinkedItem) { $this->updateLinkedItem = VT::toBool($updateLinkedItem); return $this; } } |