/**
 * 
 */
package org.yacos.core.evaluation;


import java.util.List;

import javax.ejb.Remote;

/**
 * @author christiancorsano
 *
 */
@Remote
public interface IEvaluationManager {
	
	public Criterion addCriterion(String name, Integer min_rating,
			Integer max_rating, int confId);
	public Criterion getCriterion(int criterionId);
	public void updateCriterion(Criterion criterion);
	public void removeCriterion(int criterionId);
	public List<Criterion> getCriterions(int confId);
	
	/*
	 * Return a list of all the existing criterions
	 */
	public List<Criterion> getCriterions();
	
	public Report addReport(int articleId, String commentPCMember, String commentAuthor, 
			List<Rating> ratings, String userLogin);
	public void updateReport(Report report);
	public void removeReport(int reportId);
	public Report getReport(int reportId);
	public Report getReportforArticleAndReferee(int articleId, String refereeLogin);
	public List<Report> getReportsForArticle(int articleId);
	public List<Report> getReportsForReferee(String refereeLogin);
	
	public Rating addRating(Integer value,Integer criterionId,Integer reportId);
	public void removeRating(Criterion criterion,Report report);
	public Rating updateRating(Rating rating);
	public List<Rating> getRatingForReport(Integer reportId);
}
