package kr.ac.kaist.resl.lilliput.util;
import javax.xml.datatype.DatatypeConfigurationException;
import org.fosstrak.epcis.model.ArrayOfString;
import org.fosstrak.epcis.model.Poll;
import org.fosstrak.epcis.model.QueryParam;
import org.fosstrak.epcis.model.QueryParams;
public class EPCISHelper {
public Poll createPoll(String epc) {
// construct the query parameters
QueryParam queryParam1 = new QueryParam();
queryParam1.setName("eventType");
ArrayOfString queryParamValue1 = new ArrayOfString();
queryParamValue1.getString().add("ObjectEvent");
queryParam1.setValue(queryParamValue1);
QueryParam queryParam2 = new QueryParam();
queryParam2.setName("MATCH_epc");
ArrayOfString queryParamValue2 = new ArrayOfString();
queryParamValue2.getString().add(epc);
queryParam2.setValue(queryParamValue2);
// add the query parameters to the list of parameters
QueryParams queryParams = new QueryParams();
queryParams.getParam().add(queryParam1);
queryParams.getParam().add(queryParam2);
// create the Poll object
Poll poll = new Poll();
poll.setQueryName("SimpleEventQuery");
poll.setParams(queryParams);
return poll;
}
public Poll createRecentSensingObjectPoll(String epc) {
// construct the query parameters
QueryParam queryParam1 = new QueryParam();
queryParam1.setName("eventType");
ArrayOfString queryParamValue1 = new ArrayOfString();
queryParamValue1.getString().add("SensingEvent");
queryParam1.setValue(queryParamValue1);
QueryParam queryParam2 = new QueryParam();
queryParam2.setName("MATCH_epc");
ArrayOfString queryParamValue2 = new ArrayOfString();
queryParamValue2.getString().add(epc);
queryParam2.setValue(queryParamValue2);
//Order - eventTime
QueryParam queryParam3 = new QueryParam();
queryParam3.setName("orderBy");
String queryParamValue3 = "recordTime";
queryParam3.setValue(queryParamValue3);
//OrderDirection - DESC
QueryParam queryParam4 = new QueryParam();
queryParam4.setName("orderDirection");
String queryParamValue4 = "DESC";
queryParam4.setValue(queryParamValue4);
//get just 1!
QueryParam queryParam5 = new QueryParam();
queryParam5.setName("eventCountLimit");
Integer queryParamValue5 = 6;
queryParam5.setValue(queryParamValue5);
// add the query parameters to the list of parameters
QueryParams queryParams = new QueryParams();
queryParams.getParam().add(queryParam1);
queryParams.getParam().add(queryParam2);
queryParams.getParam().add(queryParam3);
queryParams.getParam().add(queryParam4);
queryParams.getParam().add(queryParam5);
// create the Poll object
Poll poll = new Poll();
poll.setQueryName("SimpleEventQuery");
poll.setParams(queryParams);
return poll;
}
public Poll createRecentObjectPoll(String epc) {
// construct the query parameters
QueryParam queryParam1 = new QueryParam();
queryParam1.setName("eventType");
ArrayOfString queryParamValue1 = new ArrayOfString();
queryParamValue1.getString().add("ObjectEvent");
queryParam1.setValue(queryParamValue1);
QueryParam queryParam2 = new QueryParam();
queryParam2.setName("MATCH_epc");
ArrayOfString queryParamValue2 = new ArrayOfString();
queryParamValue2.getString().add(epc);
queryParam2.setValue(queryParamValue2);
//Order - eventTime
QueryParam queryParam3 = new QueryParam();
queryParam3.setName("orderBy");
String queryParamValue3 = "recordTime";
queryParam3.setValue(queryParamValue3);
//OrderDirection - DESC
QueryParam queryParam4 = new QueryParam();
queryParam4.setName("orderDirection");
String queryParamValue4 = "DESC";
queryParam4.setValue(queryParamValue4);
//get just 1!
QueryParam queryParam5 = new QueryParam();
queryParam5.setName("eventCountLimit");
Integer queryParamValue5 = 1;
queryParam5.setValue(queryParamValue5);
// add the query parameters to the list of parameters
QueryParams queryParams = new QueryParams();
queryParams.getParam().add(queryParam1);
queryParams.getParam().add(queryParam2);
queryParams.getParam().add(queryParam3);
queryParams.getParam().add(queryParam4);
queryParams.getParam().add(queryParam5);
// create the Poll object
Poll poll = new Poll();
poll.setQueryName("SimpleEventQuery");
poll.setParams(queryParams);
return poll;
}
public Poll createRecentPoll(String businessLocation) throws DatatypeConfigurationException{
//Get the most recent object event from epcis
//Order - eventTime
QueryParam queryParam2 = new QueryParam();
queryParam2.setName("orderBy");
String queryParamValue2 = "eventTime";
queryParam2.setValue(queryParamValue2);
//OrderDirection - DESC
QueryParam queryParam3 = new QueryParam();
queryParam3.setName("orderDirection");
String queryParamValue3 = "DESC";
queryParam3.setValue(queryParamValue3);
//get just 1!
QueryParam queryParam4 = new QueryParam();
queryParam4.setName("eventCountLimit");
Integer queryParamValue4 = 1;
queryParam4.setValue(queryParamValue4);
//In this businessLocation
QueryParam queryParam5 = new QueryParam();
queryParam5.setName("EQ_bizLocation");
ArrayOfString queryParamValue5 = new ArrayOfString();
queryParamValue5.getString().add(businessLocation);
queryParam5.setValue(queryParamValue5);
QueryParams queryParams = new QueryParams();
queryParams.getParam().add(queryParam2);
queryParams.getParam().add(queryParam3);
queryParams.getParam().add(queryParam4);
queryParams.getParam().add(queryParam5);
Poll poll = new Poll();
poll.setQueryName("SimpleEventQuery");
poll.setParams(queryParams);
return poll;
}
public Poll createRecentPoll() throws DatatypeConfigurationException{
//Get the most recent object event from epcis
//objectEvent
QueryParam queryParam1 = new QueryParam();
queryParam1.setName("eventType");
ArrayOfString queryParamValue1 = new ArrayOfString();
queryParamValue1.getString().add("ObjectEvent");
queryParam1.setValue(queryParamValue1);
//Order - eventTime
QueryParam queryParam2 = new QueryParam();
queryParam2.setName("orderBy");
String queryParamValue2 = "eventTime";
queryParam2.setValue(queryParamValue2);
//OrderDirection - DESC
QueryParam queryParam3 = new QueryParam();
queryParam3.setName("orderDirection");
String queryParamValue3 = "DESC";
queryParam3.setValue(queryParamValue3);
//get just 1!
QueryParam queryParam4 = new QueryParam();
queryParam4.setName("eventCountLimit");
Integer queryParamValue4 = 1;
queryParam4.setValue(queryParamValue4);
QueryParams queryParams = new QueryParams();
queryParams.getParam().add(queryParam1);
queryParams.getParam().add(queryParam2);
queryParams.getParam().add(queryParam3);
queryParams.getParam().add(queryParam4);
Poll poll = new Poll();
poll.setQueryName("SimpleEventQuery");
poll.setParams(queryParams);
return poll;
}
}