package org.ariadne_eu.utils.registry;
import java.util.ArrayList;
import java.util.List;
public class Sqi {
boolean _annonymous;
String _mode;
List<String> _queryLanguage;
List<String> _resultFormat;
List<String> _supportedAsynchronousMethod;
List<String> _supportedSynchronousMethod;
String _persistentSessionId;
String _sessionService;
String _queryService;
public Sqi(){
_queryLanguage = new ArrayList<String>();
_resultFormat = new ArrayList<String>();
_supportedAsynchronousMethod = new ArrayList<String>();
_supportedSynchronousMethod = new ArrayList<String>();
}
public void setAnnonymousIdentification(){
_annonymous = true;
}
public void setRequiredIdentification(){
_annonymous = false;
}
public boolean getAnnonymousIdentification(){
return _annonymous;
}
public void setModeSynchronous(){
_mode = "synchronous";
setQueryLanguageSynchronousMethod();
setResultsFormatSynchronousMethod();
setMaxQueryResultsSynchronousMethod();
setMaxDurationSynchronousMethod();
setResultsSetSizeSynchronousMethod();
synchronousQuerySynchronousMethod();
getTotalResultsCountSynchronousMethod();
}
public void setModeAsynchronous(){
_mode = "asynchronous";
setQueryLanguageAsynchronousMethod();
setResultsFormatAsynchronousMethod();
setMaxQueryResultsAsynchronousMethod();
setMaxDurationAsynchronousMethod();
asynchronousQueryAsynchronousMethod();
setTotalResultsCountAsynchronousMethod();
}
public String getMode(){
return _mode;
}
public void setPersistentSessionId(String persistentSessionId){
_persistentSessionId=persistentSessionId;
}
public void setSessionService(String sessionService){
_sessionService = sessionService;
}
public String getPresistentService(){
return _persistentSessionId;
}
public String getSessionService(){
return _sessionService;
}
public void setQueryService(String queryService){
_queryService = queryService;
}
public String getQueryService(){
return _queryService;
}
public void addQueryLanguage(String language){
_queryLanguage.add(language);
}
public ArrayList<String> getQueryLanguage(){
return (ArrayList<String>)_queryLanguage;
}
public void addResultsFormat(String format){
_resultFormat.add(format);
}
public ArrayList<String> getResultsFormat(){
return (ArrayList<String>)_resultFormat;
}
public void setQueryLanguageSynchronousMethod(){
_supportedSynchronousMethod.add("setQueryLanguage");
}
public void setResultsFormatSynchronousMethod(){
_supportedSynchronousMethod.add("setResultsFormat");
}
public void setMaxQueryResultsSynchronousMethod(){
_supportedSynchronousMethod.add("setMaxQueryResults");
}
public void setMaxDurationSynchronousMethod(){
_supportedSynchronousMethod.add("setMaxDuration");
}
public void setResultsSetSizeSynchronousMethod(){
_supportedSynchronousMethod.add("setResultsSetSize");
}
public void synchronousQuerySynchronousMethod(){
_supportedSynchronousMethod.add("synchronousQuery");
}
public void getTotalResultsCountSynchronousMethod(){
_supportedSynchronousMethod.add("getTotalResultsCount");
}
public void setQueryLanguageAsynchronousMethod(){
_supportedAsynchronousMethod.add("setQueryLanguage");
}
public void setResultsFormatAsynchronousMethod(){
_supportedAsynchronousMethod.add("setResultsFormat");
}
public void setMaxQueryResultsAsynchronousMethod(){
_supportedAsynchronousMethod.add("setMaxQueryResults");
}
public void setMaxDurationAsynchronousMethod(){
_supportedAsynchronousMethod.add("setMaxDuration");
}
public void asynchronousQueryAsynchronousMethod(){
_supportedAsynchronousMethod.add("asynchronousQuery");
}
public void setTotalResultsCountAsynchronousMethod(){
_supportedAsynchronousMethod.add("setSourceLocation");
}
public ArrayList<String> getSynchronousMethodsSupported(){
return (ArrayList<String>)_supportedSynchronousMethod;
}
public ArrayList<String> getAsynchronousMethodsSupported(){
return (ArrayList<String>)_supportedAsynchronousMethod;
}
public String getXMLSqi(String tab){
String xml = "";
xml = tab+"<sqi xmlns=\"http://www.imsglobal.org/services/lode/imslosqi-1p0_v1p0\" xsi:schemaLocation=\"http://www.imsglobal.org/services/lode/imslosqi-1p0_v1p0 http://fire.eun.org/xsd/registry/imslosqi-1p0_v1p0.xsd \">\n";
xml += tab+ "\t<anonymous>"+_annonymous+"</anonymous>\n" ;
xml += tab+ "\t<mode>"+_mode+"</mode>\n" ;
for (int i=0;i<_queryLanguage.size();i++){
xml += tab+"\t<queryLanguage>"+ ((String)_queryLanguage.get(i))+"</queryLanguage>\n";
}
for (int i=0;i<_resultFormat.size();i++){
xml += tab+ ("\t<resultFormat>"+_resultFormat.get(i)+"</resultFormat>\n");
}
for (int i=0;i<_supportedSynchronousMethod.size();i++){
xml += tab+ ("\t<supportedSynchronousMethod>"+_supportedSynchronousMethod.get(i)+"</supportedSynchronousMethod>\n");
}
for (int i=0;i<_supportedAsynchronousMethod.size();i++){
xml += tab+ ("\t<supportedAsynchronousMethod>"+_supportedAsynchronousMethod.get(i)+"</supportedAsynchronousMethod>\n");
}
xml += tab+"\t<sessionService>"+_sessionService+"</sessionService>\n" +
tab+"\t<queryService>"+_queryService+"</queryService>\n" +
tab+"</sqi>\n";
return xml;
}
}