package cgeo.geocaching.files; import cgeo.geocaching.models.Geocache; import cgeo.geocaching.utils.DisposableHandler; import android.os.Handler; import java.io.IOException; import java.util.Collection; abstract class AbstractImportGpxThread extends AbstractImportThread { protected AbstractImportGpxThread(final int listId, final Handler importStepHandler, final DisposableHandler progressHandler) { super(listId, importStepHandler, progressHandler); } @Override protected Collection<Geocache> doImport() throws IOException, ParserException { try { // try to parse cache file as GPX 10 return doImport(new GPX10Parser(listId)); } catch (final ParserException ignored) { // didn't work -> lets try GPX11 return doImport(new GPX11Parser(listId)); } } protected abstract Collection<Geocache> doImport(GPXParser parser) throws IOException, ParserException; }