content: package com.stock4j.factory;
  
  import java.time.LocalDateTime;
  import java.util.List;
  import java.util.Map;
  import java.util.Set;
  
  import com.stock4j.CashFlow;
  import com.stock4j.Company;
  import com.stock4j.DividentRight;
  import com.stock4j.ExRightType;
  import com.stock4j.PeriodType;
  import com.stock4j.Quote;
  import com.stock4j.Stock;
  import com.stock4j.Tick;
  import com.stock4j.Transcation;
  import com.stock4j.exception.ErrorHttpException;
  import com.stock4j.exception.NullValueException;
  import com.stock4j.exception.UnSupportedException;
  
  /**
   * Ʊݹӿ
   * @author qq: 2429298470<br>http://www.sigmagu.com/
   * @version 0.1
   */
  public interface StockFactory {
  	
  	void config();
  	
  	/**
  	 * ȡ
  	 * @param stock 루Ʊǰ׺г
  	 * @param period  
  	 * @param size   ݴС
  	 * @param rhb   ǷȨ
  	 * @return   Kݼϣ
  	 * @throws UnSupportedException
  	 * @throws ErrorHttpException
  	 * @throws NullValueException
  	 */
  	List<Tick> listTicks(Stock stock, PeriodType period, int size, ExRightType rhb)
  			throws UnSupportedException, ErrorHttpException, NullValueException;
  
  	/**
  	 * ȡĳ֧Ʊ̿ڱ
  	 * @param stock
  	 * @return Quote
  	 * @throws ErrorHttpException 
  	 * @throws NullValueException 
  	 */
  	Quote getQuote(Stock stock)
  			throws ErrorHttpException, NullValueException, UnSupportedException;
  
  	/**
  	 * ͬʱȡ֧Ʊ̿ڱ
  	 * @param stock
  	 * @return Map<Stock, Quote>
  	 * @throws ErrorHttpException 
  	 * @throws NullValueException 
  	 */
  	Map<Stock, Quote> listQuotes(Set<Stock> stocks)
  			throws ErrorHttpException, NullValueException, UnSupportedException;
  
  	/**
  	 * ȡʱ
  	 * @param stock
  	 * @param sdate  ʼʱ
  	 * @param size   ݴС
  	 * @return List<Transcation>
  	 * @throws ErrorHttpException 
  	 * @throws NullValueException 
  	 */
  	List<Transcation> listTranscations(Stock stock, LocalDateTime sdate, int size)
  			throws ErrorHttpException, NullValueException, UnSupportedException;
  	
  	
  	/**
  	 * ȡյķʱ
  	 * @param stock
  	 * @return
  	 * @throws NullValueException
  	 * @throws UnSupportedException
  	 */
  	List<Transcation> listTodayTranscations(Stock stock)
  			throws ErrorHttpException, NullValueException, UnSupportedException;
  
  	/**
  	 * ȡĳֻƱĵʽ
  	 * @param stock
  	 * @return
  	 * @throws UnSupportedException
  	 * @throws ErrorHttpException
  	 * @throws NullValueException
  	 */
  	CashFlow getCashFlow(Stock stock)
  			throws UnSupportedException, ErrorHttpException, NullValueException;
  
  	/**
  	 * ȡĳֻƱʷʽ
  	 * @param stock
  	 * @return
  	 * @throws UnSupportedException
  	 * @throws ErrorHttpException
  	 * @throws NullValueException
  	 */
  	List<CashFlow> listCashFlows(Stock stock, int size) 
  			throws UnSupportedException, ErrorHttpException, NullValueException;
  
  	/**
  	 * ͨдƱ
  	 * @param hits
  	 * @return
  	 * @throws UnSupportedException
  	 * @throws ErrorHttpException
  	 */
  	List<Stock> suggestStocks(String hits)
  			throws UnSupportedException, ErrorHttpException;
  	
  	/**
  	 * ĳƱĹ˾ҪϢ
  	 * @param stock
  	 * @return
  	 * @throws ErrorHttpException
  	 * @throws NullValueException
  	 */
  	Company getCompanyInformation(Stock stock) 
  			throws ErrorHttpException, NullValueException, UnSupportedException;
  	
  	/**
  	 * ȡƱȨϢ
  	 * @param stock
  	 * @return
  	 * @throws UnSupportedException
  	 * @throws ErrorHttpException
  	 * @throws NullValueException
  	 */
  	List<DividentRight> listDividentRight(Stock stock)
  			throws UnSupportedException, ErrorHttpException, NullValueException;
  }
  