/**
* Sets the returnables for the active discovery query.
* @param context the operation context
*/
public void setReturnables(OperationContext context) {
QueryOptions qOptions = context.getRequestOptions().getQueryOptions();
CoreQueryables queryables = this.queryables;
DiscoveryQuery query = this.getDiscoveryQuery();
String elementSetType = qOptions.getElementSetType();
if (elementSetType == null) {
boolean isDublinCore = qOptions.isDublinCoreResponse();
StringSet elementNames = qOptions.getElementNames();
boolean hasElementNames = (elementNames != null) && (elementNames.size() > 0);
if (isDublinCore && hasElementNames) {
AliasedDiscoverables aliased = this.queryables.getAllAliased();
query.setReturnables(new Discoverables());
for (String elementName: elementNames) {
Discoverable discoverable = aliased.get(elementName);
if (discoverable != null) {
query.getReturnables().add(discoverable);
}
}
} else {
qOptions.setElementSetType(CswConstants.ElementSetType_Summary);
query.setReturnables(queryables.getSummary());
}
} else {
if (elementSetType.equalsIgnoreCase(CswConstants.ElementSetType_Brief)) {