/**
  * @param Partner $partner
  */
 public function apply(Partner $partner)
 {
     if ($this->isNull('max')) {
         $this->max = null;
     }
     if ($this->isNull('overagePrice')) {
         $this->overagePrice = null;
     }
     if ($this->isNull('overageUnit')) {
         $this->overageUnit = null;
     }
     switch ($this->type) {
         case KalturaSystemPartnerLimitType::ENTRIES:
             $partner->setEntriesQuota($this->max);
             $partner->setEntriesOveragePrice($this->overagePrice);
             $partner->setEntriesOverageUnit($this->overageUnit);
             break;
         case KalturaSystemPartnerLimitType::MONTHLY_STREAM_ENTRIES:
             $partner->setStreamEntriesQuota($this->max);
             $partner->setStreamEntriesOveragePrice($this->overagePrice);
             $partner->setStreamEntriesOverageUnit($this->overageUnit);
             break;
         case KalturaSystemPartnerLimitType::MONTHLY_BANDWIDTH:
             $partner->setBandwidthQuota($this->max);
             $partner->setBandwidthOveragePrice($this->overagePrice);
             $partner->setBandwidthOverageUnit($this->overageUnit);
             break;
         case KalturaSystemPartnerLimitType::PUBLISHERS:
             $partner->setPublishersQuota($this->max);
             $partner->setPublishersOveragePrice($this->overagePrice);
             $partner->setPublishersOverageUnit($this->overageUnit);
             break;
         case KalturaSystemPartnerLimitType::LOGIN_USERS:
             $partner->setLoginUsersQuota($this->max);
             $partner->setLoginUsersOveragePrice($this->overagePrice);
             $partner->setLoginUsersOverageUnit($this->overageUnit);
             break;
         case KalturaSystemPartnerLimitType::ADMIN_LOGIN_USERS:
             $partner->setAdminLoginUsersQuota($this->max);
             $partner->setAdminLoginUsersOveragePrice($this->overagePrice);
             $partner->setAdminLoginUsersOverageUnit($this->overageUnit);
             break;
         case KalturaSystemPartnerLimitType::BULK_SIZE:
             $partner->setMaxBulkSize($this->max);
             $partner->setMaxBulkSizeOveragePrice($this->overagePrice);
             $partner->setMaxBulkSizeOverageUnit($this->overageUnit);
             break;
         case KalturaSystemPartnerLimitType::MONTHLY_STORAGE:
             $partner->setMonthlyStorage($this->max);
             $partner->setMonthlyStorageOveragePrice($this->overagePrice);
             $partner->setMonthlyStorageOverageUnit($this->overageUnit);
             break;
         case KalturaSystemPartnerLimitType::MONTHLY_STORAGE_AND_BANDWIDTH:
             $partner->setMonthlyStorageAndBandwidth($this->max);
             $partner->setMonthlyStorageAndBandwidthOveragePrice($this->overagePrice);
             $partner->setMonthlyStorageAndBandwidthOverageUnit($this->overageUnit);
             break;
         case KalturaSystemPartnerLimitType::END_USERS:
             $partner->setEndUsers($this->max);
             $partner->setEndUsersOveragePrice($this->overagePrice);
             $partner->setEndUsersOverageUnit($this->overageUnit);
             break;
     }
     parent::apply($partner);
 }