package eu.dnetlib.openaire.exporter;

import java.util.regex.Pattern;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

public class ProjectQueryParams {
	private String fundingProgramme = null;
	private String specificProgramme = null;
	private String subdivision = null;
	private String startFrom = null;
	private String startUntil = null;
	private String endFrom = null;
	private String endUntil = null;
	
	private static final Log log = LogFactory.getLog(ProjectQueryParams.class); // NOPMD by marko on 11/24/08 5:02 PM
	
	public String getFundingProgramme() {
		return fundingProgramme;
	}
	public void setFundingProgramme(String fundingProgramme) {
		this.fundingProgramme = verifyParam(fundingProgramme);
	}
	public String getSpecificProgramme() {
		return specificProgramme;
	}
	public void setSpecificProgramme(String specificProgramme) {
		this.specificProgramme = verifyParam(specificProgramme);
	}
	public String getSubdivision() {
		return subdivision;
	}
	public void setSubdivision(String subdivision) {
		this.subdivision = verifyParam(subdivision);
	}
	public String getStartFrom() {
		return startFrom;
	}
	public void setStartFrom(String startFrom) {
		this.startFrom = verifyParam(startFrom);
	}
	public String getStartUntil() {
		return startUntil;
	}
	public void setStartUntil(String startUntil) {
		this.startUntil = verifyParam(startUntil);
	}
	public String getEndFrom() {
		return endFrom;
	}
	public void setEndFrom(String endFrom) {
		this.endFrom = verifyParam(endFrom);
	}
	public String getEndUntil() {
		return endUntil;
	}
	public void setEndUntil(String endUntil) {
		this.endUntil = verifyParam(endUntil);
	}

	private String verifyParam(String p) {
		Pattern pattern = Pattern.compile("(\\w|\\-){1,32}");

		log.debug("TESTING SQL PARAM:" + p);
		if (p != null && !pattern.matcher(p).matches())
			throw new IllegalArgumentException("Parameter contains an invalid character");
		log.debug("TEST OK");

		return p;
	}

}
