final DocumentImpl module = getContext().getBroker().getResource(moduleUri, Permission.READ);
if(xqueryRegistry.isXquery(module)) {
final SignatureDetail signatureDetail = extractSignatureDetail(resourceFunctionIdentifier);
if(signatureDetail != null) {
try {
final RestXqService serviceToRegister = findService(xqueryRegistry.findServices(getContext().getBroker(), module).iterator(), signatureDetail);
if(serviceToRegister != null) {
xqueryRegistry.registerServices(context.getBroker(), Collections.singletonList(serviceToRegister));
result = BooleanValue.TRUE;
} else {
result = BooleanValue.FALSE;
}
} catch(final ExQueryException exqe) {
LOG.warn(exqe.getMessage(), exqe);
result = BooleanValue.FALSE;
}
} else {
result = BooleanValue.FALSE;
}
} else {
result = Sequence.EMPTY_SEQUENCE;
}
} else if(isCalledAs(qnDeregisterResourceFunction.getLocalName())) {
//TODO
final String resourceFunctionIdentifier = args[1].getStringValue();
final SignatureDetail signatureDetail = extractSignatureDetail(resourceFunctionIdentifier);
if(signatureDetail != null) {
final RestXqService serviceToDeregister = findService(xqueryRegistry.registered(context.getBroker()), signatureDetail);
if(serviceToDeregister != null) {
xqueryRegistry.deregisterService(context.getBroker(), serviceToDeregister);
result = BooleanValue.TRUE;
} else {
result = BooleanValue.FALSE;