// This software is released into the Public Domain. See copying.txt for details. package org.openstreetmap.osmosis.set.v0_6; import java.util.Map; import org.openstreetmap.osmosis.core.container.v0_6.ChangeContainer; import org.openstreetmap.osmosis.set.v0_6.impl.ChangeSimplifierImpl; import org.openstreetmap.osmosis.core.sort.v0_6.SortedHistoryChangePipeValidator; import org.openstreetmap.osmosis.core.task.v0_6.ChangeSink; import org.openstreetmap.osmosis.core.task.v0_6.ChangeSinkChangeSource; /** * Looks at a sorted change stream and condenses multiple changes for a single entity into a single * change. * * @author Brett Henderson */ public class ChangeSimplifier implements ChangeSinkChangeSource { private SortedHistoryChangePipeValidator orderingValidator; private ChangeSimplifierImpl changeSimplifier; /** * Creates a new instance. */ public ChangeSimplifier() { orderingValidator = new SortedHistoryChangePipeValidator(); changeSimplifier = new ChangeSimplifierImpl(); orderingValidator.setChangeSink(changeSimplifier); } /** * {@inheritDoc} */ @Override public void initialize(Map<String, Object> metaData) { orderingValidator.initialize(metaData); } /** * {@inheritDoc} */ @Override public void process(ChangeContainer change) { orderingValidator.process(change); } /** * {@inheritDoc} */ @Override public void complete() { orderingValidator.complete(); } /** * {@inheritDoc} */ @Override public void close() { orderingValidator.close(); } /** * {@inheritDoc} */ @Override public void setChangeSink(ChangeSink changeSink) { changeSimplifier.setChangeSink(changeSink); } }