/* (c) 2014 Open Source Geospatial Foundation - all rights reserved * (c) 2001 - 2013 OpenPlans * This code is licensed under the GPL 2.0 license, available at the root * application directory. */ package org.geoserver.importer; import java.util.Iterator; /** * Data access interface for persisting imports. * * @todo refactor various queries into query object * @author Justin Deoliveira, OpenGeo */ public interface ImportStore { public interface ImportVisitor { void visit (ImportContext context); } String getName(); void init(); /** * Negotiate an ID and reserver the spot for an import. * The returned ID will be equal to or greater than the proposal. * @param id the non-null proposed ID * @return the negotiated id */ Long advanceId(Long id); ImportContext get(long id); void add(ImportContext context); void save(ImportContext context); void remove(ImportContext importContext); void removeAll(); Iterator<ImportContext> iterator(); Iterator<ImportContext> iterator(String sortBy); Iterator<ImportContext> allNonCompleteImports(); Iterator<ImportContext> importsByUser(String user); void query(ImportVisitor visitor); void destroy(); }