package com.gx.obe.evaluation.step.inter;

import java.util.List;

import com.gx.obe.web.entity.CheckResult;
import com.gx.obe.web.entity.DictionaryValue;
import com.gx.obe.web.entity.Supplier;
import com.gx.obe.web.entity.boq.ConstructProject;
import com.gx.obe.web.entity.evaluation.EvaluationStep;
import com.gx.obe.web.entity.tender.TenderProjectEntity;

public interface IChecker {
	
	public void init(TenderProjectEntity tenderProject, Supplier supplier, EvaluationStep evaluationStep, DictionaryValue dictionaryValue, CheckResult checkResult, ConstructProject constructProject);
	
	public void check(TenderProjectEntity tenderProject, Supplier supplier, EvaluationStep evaluationStep, DictionaryValue dictionaryValue);
	
//	public <T> List<T> getCheckResultDetailList();
	
	public <T> List<T> getCheckResultDetailTreeList();
	
	public <T> List<T> getCheckResultErrorList();
	
	public CheckResult getCheckResult();
	
	public void setCheckResult(CheckResult checkResult);
	
	public Supplier getSupplier();
	
	public EvaluationStep getEvaluationStep();
	
	public DictionaryValue getDictionaryValue();
	
	public int getErrorCount();
	
	public void addBillItemCacheListener(BillCheckerCache cacheListener);
	
	public void startCheck(ConstructProject constructProject);
	
	public void stopCheck();
	
}
