if (nlActions != null) {
for (int i=0;i<nlActions.getLength();i++) {
Node ndAction = nlActions.item(i);
String typeName = xpath.evaluate("@typeName",ndAction);
String handle = xpath.evaluate("@handle",ndAction);
StringSet ids = new StringSet();
tOptions.setDeletionIDs(ids);
// find the constraint node
locator = "csw:Constraint";
Node ndConstraint = (Node)xpath.evaluate(locator,ndAction,XPathConstants.NODE);
if (ndConstraint == null) {
String msg = "The parameter was missing - "+locator;
throw new OwsException(OwsException.OWSCODE_MissingParameterValue,locator,msg);
}
// constraint version
//String cVersion = xpath.evaluate("@version",ndConstraint);
// csw:CqlText
locator = "csw:CqlText";
Node ndCql = (Node)xpath.evaluate(locator,ndConstraint,XPathConstants.NODE);
if (ndCql != null) {
//String cql = Val.chkStr(ndCql.getTextContent());
String msg = "Delete transactions based upon "+locator+" are not supported.";
throw new OwsException(OwsException.OWSCODE_OperationNotSupported,locator,msg);
} else {
// ogc:Filter
locator = "ogc:Filter";
Node ndFilter = (Node)xpath.evaluate(locator,ndConstraint,XPathConstants.NODE);
if (ndFilter == null) {
String msg = "The parameter was missing - "+locator;
throw new OwsException(OwsException.OWSCODE_MissingParameterValue,locator,msg);
} else {
this.parseDeletionIds(ndFilter,xpath,ids);
}
}
// execute the delete
if (ids.size() > 0) {
this.executeDelete(context,publisher,typeName,handle,ids.toArray(new String[0]));
} else {
String msg = "No Ids were specified for deletion.";
throw new OwsException(msg);
}
}