package gov.nist.registry.common2.registry;
import gov.nist.registry.common2.exception.XdsInternalException;
import gov.nist.registry.common2.xml.Util;
import java.util.List;
import org.apache.axiom.om.OMElement;
public class AdhocQueryResponse extends Response {
OMElement queryResult = null;
public AdhocQueryResponse(short version, RegistryErrorList rel) throws XdsInternalException {
super(version, rel);
init(version);
}
public AdhocQueryResponse(short version) throws XdsInternalException {
super(version);
init(version);
}
public OMElement getRoot() { return queryResult; }
private void init(short version) {
if (version == version_2) {
response = MetadataSupport.om_factory.createOMElement("RegistryResponse", ebRSns);
OMElement ahqr = MetadataSupport.om_factory.createOMElement("AdhocQueryResponse", ebQns);
response.addChild(ahqr);
OMElement sqr = null;
sqr = MetadataSupport.om_factory.createOMElement("SQLQueryResult", ebQns);
queryResult = sqr;
ahqr.addChild(sqr);
} else {
response = MetadataSupport.om_factory.createOMElement("AdhocQueryResponse", ebQns);
}
}
// called to get parent element of query results
public OMElement getQueryResult() {
if (queryResult != null)
return queryResult;
if (version == version_2) {
OMElement adhocQueryResponse = MetadataSupport.om_factory.createOMElement("AdhocQueryResponse", ebQns);
response.addChild(adhocQueryResponse);
queryResult = MetadataSupport.om_factory.createOMElement("SQLQueryResult", ebQns);
adhocQueryResponse.addChild(queryResult);
} else { // add RegistryObjectList
queryResult = MetadataSupport.om_factory.createOMElement("RegistryObjectList", ebRIMns);
//response.addChild(queryResult);
}
return queryResult;
}
public void addQueryResults(OMElement metadata) throws XdsInternalException {
OMElement res = getQueryResult(); // used for side effect if v3 and error - must
// still have empty RegistryObjectList after RegistryErrorList
if (metadata != null)
res.addChild(Util.deep_copy(metadata));
}
public void addQueryResults(List<OMElement> metadatas) throws XdsInternalException {
OMElement res = getQueryResult(); // used for side effect if v3 and error - must
// still have empty RegistryObjectList after RegistryErrorList
if (metadatas != null)
for (int i=0; i<metadatas.size(); i++) {
res.addChild(Util.deep_copy((OMElement) metadatas.get(i)));
}
}
}