// Path: src/main/java/nl/uva/larissa/repository/StatementFilter.java
// public class StatementFilter {
// 
// 	private String statementId;
// 	private String voidedStatementId;
// 	// TODO or Identified Group!
// 	private Agent agent;
// 	private IRI verb;
// 	private IRI activity;
// 	// UUID
// 	private String registration;
// 	private Boolean relatedActivities;
// 	private Boolean relatedAgents;
// 	private Date since;
// 	private Date until;
// 	private Integer limit;
// 	// TODO enum?
// 	private String format;
// 	private Boolean ascending;
// 
// 	// for more-URL
// 	@QueryParam("startId")
// 	private String startId;
// 
// 	public StatementFilter() {
// 	}
// 
// 	public StatementFilter(StatementFilter filter) {
// 		statementId = filter.getStatementId();
// 		voidedStatementId = filter.getVoidedStatementid();
// 		agent = filter.getAgent();
// 		verb = filter.getVerb();
// 		activity = filter.getActivity();
// 		registration = filter.getRegistration();
// 		relatedActivities = filter.getRelatedActivities();
// 		relatedAgents = filter.getRelatedAgents();
// 		since = filter.getSince();
// 		until = filter.getUntil();
// 		limit = filter.getLimit();
// 		format = filter.getFormat();
// 		ascending= filter.getAscending();
// 		startId = filter.getStartId();
// 	}
// 
// 	public String getStatementId() {
// 		return statementId;
// 	}
// 
// 	public void setStatementId(String statementId) {
// 		this.statementId = statementId;
// 	}
// 
// 	public String getVoidedStatementid() {
// 		return voidedStatementId;
// 	}
// 
// 	public void setVoidedStatementid(String voidedStatementId) {
// 		this.voidedStatementId = voidedStatementId;
// 	}
// 
// 	public Agent getAgent() {
// 		return agent;
// 	}
// 
// 	public void setAgent(Agent agent) {
// 		this.agent = agent;
// 	}
// 
// 	public IRI getVerb() {
// 		return verb;
// 	}
// 
// 	public void setVerb(IRI verb) {
// 		this.verb = verb;
// 	}
// 
// 	public IRI getActivity() {
// 		return activity;
// 	}
// 
// 	public void setActivity(IRI activity) {
// 		this.activity = activity;
// 	}
// 
// 	public String getRegistration() {
// 		return registration;
// 	}
// 
// 	public void setRegistration(String registration) {
// 		this.registration = registration;
// 	}
// 
// 	public Boolean getRelatedActivities() {
// 		return relatedActivities;
// 	}
// 
// 	public void setRelatedActivities(Boolean relatedActivities) {
// 		this.relatedActivities = relatedActivities;
// 	}
// 
// 	public Boolean getRelatedAgents() {
// 		return relatedAgents;
// 	}
// 
// 	public void setRelatedAgents(Boolean relatedAgents) {
// 		this.relatedAgents = relatedAgents;
// 	}
// 
// 	public String getVoidedStatementId() {
// 		return voidedStatementId;
// 	}
// 
// 	@Override
// 	public String toString() {
// 		return "StatementFilter [statementId=" + statementId
// 				+ ", voidedStatementId=" + voidedStatementId + ", agent="
// 				+ agent + ", verb=" + verb + ", activity=" + activity
// 				+ ", registration=" + registration + ", relatedActivities="
// 				+ relatedActivities + ", relatedAgents=" + relatedAgents
// 				+ ", since=" + since + ", until=" + until + ", limit=" + limit
// 				+ ", format=" + format + ", ascending=" + ascending
// 				+ ", startId=" + startId + "]";
// 	}
// 
// 	public void setVoidedStatementId(String voidedStatementId) {
// 		this.voidedStatementId = voidedStatementId;
// 	}
// 
// 	public Date getSince() {
// 		return since;
// 	}
// 
// 	public void setSince(Date since) {
// 		this.since = since;
// 	}
// 
// 	public Date getUntil() {
// 		return until;
// 	}
// 
// 	public void setUntil(Date until) {
// 		this.until = until;
// 	}
// 
// 	public Integer getLimit() {
// 		return limit;
// 	}
// 
// 	public void setLimit(Integer limit) {
// 		this.limit = limit;
// 	}
// 
// 	public String getFormat() {
// 		return format;
// 	}
// 
// 	public void setFormat(String format) {
// 		this.format = format;
// 	}
// 
// 	public String getStartId() {
// 		return startId;
// 	}
// 
// 	public void setStartId(String startId) {
// 		this.startId = startId;
// 	}
// 
// 	public Boolean getAscending() {
// 		return ascending;
// 	}
// 
// 	public void setAscending(Boolean ascending) {
// 		this.ascending = ascending;
// 	}
// 
// }


import nl.uva.larissa.repository.StatementFilter;
package nl.uva.larissa.repository.couchdb;


public class QueryResolver implements IQueryResolver {

	static String DESIGN_ID = "_design/statements";

	@Override
// Path: src/main/java/nl/uva/larissa/repository/StatementFilter.java
// public class StatementFilter {
// 
// 	private String statementId;
// 	private String voidedStatementId;
// 	// TODO or Identified Group!
// 	private Agent agent;
// 	private IRI verb;
// 	private IRI activity;
// 	// UUID
// 	private String registration;
// 	private Boolean relatedActivities;
// 	private Boolean relatedAgents;
// 	private Date since;
// 	private Date until;
// 	private Integer limit;
// 	// TODO enum?
// 	private String format;
// 	private Boolean ascending;
// 
// 	// for more-URL
// 	@QueryParam("startId")
// 	private String startId;
// 
// 	public StatementFilter() {
// 	}
// 
// 	public StatementFilter(StatementFilter filter) {
// 		statementId = filter.getStatementId();
// 		voidedStatementId = filter.getVoidedStatementid();
// 		agent = filter.getAgent();
// 		verb = filter.getVerb();
// 		activity = filter.getActivity();
// 		registration = filter.getRegistration();
// 		relatedActivities = filter.getRelatedActivities();
// 		relatedAgents = filter.getRelatedAgents();
// 		since = filter.getSince();
// 		until = filter.getUntil();
// 		limit = filter.getLimit();
// 		format = filter.getFormat();
// 		ascending= filter.getAscending();
// 		startId = filter.getStartId();
// 	}
// 
// 	public String getStatementId() {
// 		return statementId;
// 	}
// 
// 	public void setStatementId(String statementId) {
// 		this.statementId = statementId;
// 	}
// 
// 	public String getVoidedStatementid() {
// 		return voidedStatementId;
// 	}
// 
// 	public void setVoidedStatementid(String voidedStatementId) {
// 		this.voidedStatementId = voidedStatementId;
// 	}
// 
// 	public Agent getAgent() {
// 		return agent;
// 	}
// 
// 	public void setAgent(Agent agent) {
// 		this.agent = agent;
// 	}
// 
// 	public IRI getVerb() {
// 		return verb;
// 	}
// 
// 	public void setVerb(IRI verb) {
// 		this.verb = verb;
// 	}
// 
// 	public IRI getActivity() {
// 		return activity;
// 	}
// 
// 	public void setActivity(IRI activity) {
// 		this.activity = activity;
// 	}
// 
// 	public String getRegistration() {
// 		return registration;
// 	}
// 
// 	public void setRegistration(String registration) {
// 		this.registration = registration;
// 	}
// 
// 	public Boolean getRelatedActivities() {
// 		return relatedActivities;
// 	}
// 
// 	public void setRelatedActivities(Boolean relatedActivities) {
// 		this.relatedActivities = relatedActivities;
// 	}
// 
// 	public Boolean getRelatedAgents() {
// 		return relatedAgents;
// 	}
// 
// 	public void setRelatedAgents(Boolean relatedAgents) {
// 		this.relatedAgents = relatedAgents;
// 	}
// 
// 	public String getVoidedStatementId() {
// 		return voidedStatementId;
// 	}
// 
// 	@Override
// 	public String toString() {
// 		return "StatementFilter [statementId=" + statementId
// 				+ ", voidedStatementId=" + voidedStatementId + ", agent="
// 				+ agent + ", verb=" + verb + ", activity=" + activity
// 				+ ", registration=" + registration + ", relatedActivities="
// 				+ relatedActivities + ", relatedAgents=" + relatedAgents
// 				+ ", since=" + since + ", until=" + until + ", limit=" + limit
// 				+ ", format=" + format + ", ascending=" + ascending
// 				+ ", startId=" + startId + "]";
// 	}
// 
// 	public void setVoidedStatementId(String voidedStatementId) {
// 		this.voidedStatementId = voidedStatementId;
// 	}
// 
// 	public Date getSince() {
// 		return since;
// 	}
// 
// 	public void setSince(Date since) {
// 		this.since = since;
// 	}
// 
// 	public Date getUntil() {
// 		return until;
// 	}
// 
// 	public void setUntil(Date until) {
// 		this.until = until;
// 	}
// 
// 	public Integer getLimit() {
// 		return limit;
// 	}
// 
// 	public void setLimit(Integer limit) {
// 		this.limit = limit;
// 	}
// 
// 	public String getFormat() {
// 		return format;
// 	}
// 
// 	public void setFormat(String format) {
// 		this.format = format;
// 	}
// 
// 	public String getStartId() {
// 		return startId;
// 	}
// 
// 	public void setStartId(String startId) {
// 		this.startId = startId;
// 	}
// 
// 	public Boolean getAscending() {
// 		return ascending;
// 	}
// 
// 	public void setAscending(Boolean ascending) {
// 		this.ascending = ascending;
// 	}
// 
// }


// Path: src/main/java/nl/uva/larissa/repository/couchdb/QueryResolver.java
import nl.uva.larissa.repository.StatementFilter;

package nl.uva.larissa.repository.couchdb;


public class QueryResolver implements IQueryResolver {

	static String DESIGN_ID = "_design/statements";

	@Override
	public StatementResultQuery resolve(StatementFilter filter) {