class JsonContextUpdater implements OnOperationCompleteListener, JsonContextReferenceParser {

    protected static String getReferenceName(JsonReferenceReplacer jsonReferenceReplacer, String reference)
    {
        // extract the name only (removes the reference cruft and any path on it)
        String referenceName = jsonReferenceReplacer.getReferenceName(reference);
        if(referenceName != null)
        {
            // TODO: if we end up with other suffix values this should be broken out...
            // OUTPUT_SUFFIX is generally appended to the reference. Remove it so it is just the operation name.
            return referenceName.endsWith(OperationReference.OUTPUT.getSuffix())
                   ? referenceName.substring(0, referenceName.length() - OperationReference.OUTPUT.getSuffix().length())
                   : referenceName;
        }
        else
        {
            throw new RuntimeException(String.format("Invalid reference name found: %1$s", reference));
        }
    }

    public  JsonContextUpdater(ExecutorContext executorContext);

}