private KeyPrefix getKeyPrefix() {
        final KeyPrefix prefix;

        if (currentTags == null || currentTags.isEmpty()) {
            if (key == null) {
                error(LogUtil.message("Histogram 'key' is null for {}", mapName));
                prefix = null;
            } else {
                prefix = KeyPrefix.create(key);
            }
        } else {
            prefix = KeyPrefix.create(currentTags);
        }
        return prefix;
    }
This method applies a post processing function if we are currently within
a function element. At this stage we should have details of the function
to apply from the corresponding start element and content to apply it to
from the characters event.

@param uri       The element's Namespace URI, or the empty string.
@param localName The element's local key, or the empty string.
@param qName     The element's qualified (prefixed) key, or the empty string.
@throws SAXException The client may throw an exception during processing.
@see AbstractXMLFilter#endElement(String,
String, String)
stroom-state/stroom-planb-impl/src/main/java/stroom/planb/impl/pipeline/PlanBFilter.java