public function fromObject($sourceObject)
 {
     parent::fromObject($sourceObject);
     $this->mediaFiles = KalturaDistributionRemoteMediaFileArray::fromDbArray($sourceObject->getMediaFiles());
     if (!$this->distributionProfileId) {
         return;
     }
     if (!$this->entryDistributionId) {
         return;
     }
     $distributionProfile = DistributionProfilePeer::retrieveByPK($this->distributionProfileId);
     if (!$distributionProfile || $distributionProfile->getStatus() != DistributionProfileStatus::ENABLED) {
         return;
     }
     $this->distributionProfile = KalturaDistributionProfileFactory::createKalturaDistributionProfile($distributionProfile->getProviderType());
     $this->distributionProfile->fromObject($distributionProfile);
     $entryDistribution = EntryDistributionPeer::retrieveByPK($this->entryDistributionId);
     if ($entryDistribution) {
         $this->entryDistribution = new KalturaEntryDistribution();
         $this->entryDistribution->fromObject($entryDistribution);
     }
     $providerType = $sourceObject->getProviderType();
     if ($providerType) {
         if ($providerType == KalturaDistributionProviderType::GENERIC) {
             $this->providerData = new KalturaGenericDistributionJobProviderData($this);
         } else {
             $this->providerData = KalturaPluginManager::loadObject('KalturaDistributionJobProviderData', $providerType, array($this));
         }
         $providerData = $sourceObject->getProviderData();
         if ($this->providerData && $providerData && $providerData instanceof kDistributionJobProviderData) {
             $this->providerData->fromObject($providerData);
         }
     }
 }
 public function fromObject($source_object)
 {
     parent::fromObject($source_object);
     $this->fieldConfigArray = KalturaDistributionFieldConfigArray::fromDbArray($source_object->getFieldConfigArray());
     $this->itemXpathsToExtend = KalturaStringArray::fromStringArray($source_object->getItemXpathsToExtend());
 }
 public function fromObject($object)
 {
     parent::fromObject($object);
     foreach (self::$actions as $action) {
         $actionAttribute = "{$action}Action";
         if (!$this->{$actionAttribute}) {
             $this->{$actionAttribute} = new KalturaGenericDistributionProfileAction();
         }
         $reflector = KalturaTypeReflectorCacher::get(get_class($this->{$actionAttribute}));
         $properties = $reflector->getProperties();
         foreach ($this->{$actionAttribute}->getMapBetweenObjects() as $this_prop => $object_prop) {
             if (is_numeric($this_prop)) {
                 $this_prop = $object_prop;
             }
             if (!isset($properties[$this_prop]) || $properties[$this_prop]->isWriteOnly()) {
                 continue;
             }
             $getter_callback = array($object, "get{$object_prop}");
             if (is_callable($getter_callback)) {
                 $value = call_user_func($getter_callback, $action);
                 if ($properties[$this_prop]->isDynamicEnum()) {
                     $propertyType = $properties[$this_prop]->getType();
                     $enumType = call_user_func(array($propertyType, 'getEnumClass'));
                     $value = kPluginableEnumsManager::coreToApi($enumType, $value);
                 }
                 $this->{$actionAttribute}->{$this_prop} = $value;
             } else {
                 KalturaLog::alert("getter for property [{$object_prop}] was not found on object class [" . get_class($object) . "]");
             }
         }
     }
     $this->updateRequiredEntryFields = implode(',', $object->getUpdateRequiredEntryFields());
     $this->updateRequiredMetadataXPaths = implode(',', $object->getUpdateRequiredMetadataXPaths());
 }