@Override
    public Optional<RefDataValue> supplyValue() {
        // try each of our proxies in turn and as soon as one finds a result break out
        Optional<RefDataValue> optResult = Optional.empty();
        for (RefDataValueProxy refDataValueProxy : refDataValueProxies) {

            LOGGER.trace("Attempting to supplyValue with sub-proxy {}", refDataValueProxy);
            optResult = refDataValueProxy.supplyValue();
            if (optResult.isPresent()) {
                LOGGER.trace("Found result with sub-proxy {}", refDataValueProxy);
                break;
            }
        }
        return optResult;
    }
Merge the two proxies into one combined one that will use each contained proxy to try to get a value.
Argument order is CRITICAL to ensure lookups are done in the correct order.

@param existingRefDataValueProxy The existing
@param newRefDataValueProxy
@return
stroom-pipeline/src/main/java/stroom/pipeline/refdata/store/MultiRefDataValueProxy.java