<?php
/**
 * Abstraktni trida pro stahovani kurzovnich listku ze stranek bank
 *
 * @date 25-02-2008
 * @version 1.0
 *
 */
abstract class ExchangeRatesFetcher
{
	/**
	 * URL, odkud se kurzy stahuji
	 * 
	 * @var string	 	 
	 */
	protected $url;
	
	/**
	 * kod banky 
	 * 
	 * @var string	 	 
	 */
	protected $bank_code;

	/**
	 * seznam kodu men, ktere chceme stahovat
	 * 
	 * @var array
	 */	 	 	 	
	protected $important_currencies = array('CAD', 'DKK', 'EUR', 'GBP', 'HUF', 'CHF', 'JPY', 'NOK', 'PLN', 'SEK', 'SKK', 'USD', 'RON', 'RUB', 'AUD');
	
	/**
	 * pole stazenych hodnot kurzu
	 * 
	 * @var array	 	 
	 */
	protected $exchange_rates = array();
	
	/**
	 * konstruktor - nastaveni vychozich hodnot
	 * 
	 * @param  string  URL, odkud se kurzy stahuji
	 */
	public function __construct($url)
	{
		$this->url = $url;
	}
	
	/**
	 * funkce vraci pole stazenych kurzu (vhodne napr. pro testovaci vypisy)
	 * 
	 * @return array/false pokud nejsou stazene kurzy vraci false, jinak vraci pole stazenych kurzu 
	 */	 	
	public function getExchangeRates()
	{
		if (is_array($this->exchange_rates)) {
			return $this->exchange_rates;
		}
		else {
			return false;
		}
	}

	/**
	 * funkce vraci kod banky
	 * 
	 * @return string 
	 */	 	
	public function getBankCode()
	{
		return $this->bank_code;
	}
	
	/**
	 * Funkce pro stahnuti kurzovniho listku
	 * 	 	
	 * Funkce stahne kurzovni listek a ulozi ho do interni promenne $exchange_rates
	 */	 	  	 	
	abstract public function fetch();
}