// This software is released into the Public Domain. See copying.txt for details. package org.openstreetmap.osmosis.core.filter.common; import org.openstreetmap.osmosis.core.OsmosisRuntimeException; /** * Creates IdTracker implementation instances depending on the requested id * tracker type. * * @author Brett Henderson */ public final class IdTrackerFactory { /** * This class cannot be instantiated. */ private IdTrackerFactory() { } /** * Creates the requested id tracker type. * * @param idTrackerType * The type of id tracker to instantiate. * @return The new id tracker. */ public static IdTracker createInstance(IdTrackerType idTrackerType) { if (IdTrackerType.BitSet.equals(idTrackerType)) { return new BitSetIdTracker(); } else if (IdTrackerType.IdList.equals(idTrackerType)) { return new ListIdTracker(); } else if (IdTrackerType.Dynamic.equals(idTrackerType)) { return new DynamicIdTracker(); } else { throw new OsmosisRuntimeException("The IdTrackerType " + idTrackerType + " is not recognised."); } } }