public static function fromAssociativeArray($firehoundBlobArray)
 {
     $name = isset($firehoundBlobArray[self::NAME]) ? $firehoundBlobArray[self::NAME] : null;
     $identifier = isset($firehoundBlobArray[self::IDENTIFIER]) ? $firehoundBlobArray[self::IDENTIFIER] : null;
     $startDate = isset($firehoundBlobArray[self::START_DATE]) ? $firehoundBlobArray[self::START_DATE] : null;
     $endDate = isset($firehoundBlobArray[self::END_DATE]) ? $firehoundBlobArray[self::END_DATE] : null;
     $budgets = null;
     if (isset($firehoundBlobArray[self::BUDGETS]) && is_array($firehoundBlobArray[self::BUDGETS])) {
         $budgets = array();
         foreach ($firehoundBlobArray[self::BUDGETS] as $key => $budgetArray) {
             $budgets[$key] = Budget::fromAssociativeArray($budgetArray);
         }
     }
     $budget = is_array($budgets) ? $budgets : null;
     $targeting = isset($firehoundBlobArray[self::TARGETING]) ? Targeting::fromAssociativeArray($firehoundBlobArray[self::TARGETING]) : null;
     $platformTargeting = isset($firehoundBlobArray[self::PLATFORM_TARGETING]) ? PlatformTargeting::fromAssociativeArray($firehoundBlobArray[self::PLATFORM_TARGETING]) : null;
     $exchangeTargeting = isset($firehoundBlobArray[self::EXCHANGE_TARGETING]) ? ExchangeTargeting::fromAssociativeArray($firehoundBlobArray[self::EXCHANGE_TARGETING]) : null;
     $creative = self::getCreativeFromBlobArray($firehoundBlobArray);
     $context = isset($firehoundBlobArray[self::CONTEXT]) ? Context::fromAssociativeArray($firehoundBlobArray[self::CONTEXT]) : null;
     $firehoundBlob = new FirehoundBlob($name, $identifier, $startDate, $endDate, $budget, $targeting, $platformTargeting, $exchangeTargeting, $creative, $context);
     return $firehoundBlob;
 }