@Override public void mergeNamespaces(N target, Collection<N> sources) throws Exception { if (sources == null || sources.isEmpty()) { return; // nothing to do } final StateTable<K, N, SV> map = stateTable; SV merged = null; // merge the sources for (N source : sources) { // get and remove the next source per namespace/key SV sourceState = map.removeAndGetOld(source); if (merged != null && sourceState != null) { merged = mergeState(merged, sourceState); } else if (merged == null) { merged = sourceState; } } // merge into the target, if needed if (merged != null) { map.transform(target, merged, mergeTransformation); } }
@Override public void mergeNamespaces(N target, Collection<N> sources) throws Exception { if (sources == null || sources.isEmpty()) { return; // nothing to do } final StateTable<K, N, SV> map = stateTable; SV merged = null; // merge the sources for (N source : sources) { // get and remove the next source per namespace/key SV sourceState = map.removeAndGetOld(source); if (merged != null && sourceState != null) { merged = mergeState(merged, sourceState); } else if (merged == null) { merged = sourceState; } } // merge into the target, if needed if (merged != null) { map.transform(target, merged, mergeTransformation); } }
@Override public void mergeNamespaces(N target, Collection<N> sources) throws Exception { if (sources == null || sources.isEmpty()) { return; // nothing to do } final StateTable<K, N, SV> map = stateTable; SV merged = null; // merge the sources for (N source : sources) { // get and remove the next source per namespace/key SV sourceState = map.removeAndGetOld(source); if (merged != null && sourceState != null) { merged = mergeState(merged, sourceState); } else if (merged == null) { merged = sourceState; } } // merge into the target, if needed if (merged != null) { map.transform(target, merged, mergeTransformation); } }
@Override public void mergeNamespaces(N target, Collection<N> sources) throws Exception { if (sources == null || sources.isEmpty()) { return; // nothing to do } final StateTable<K, N, SV> map = stateTable; SV merged = null; // merge the sources for (N source : sources) { // get and remove the next source per namespace/key SV sourceState = map.removeAndGetOld(source); if (merged != null && sourceState != null) { merged = mergeState(merged, sourceState); } else if (merged == null) { merged = sourceState; } } // merge into the target, if needed if (merged != null) { map.transform(target, merged, mergeTransformation); } }