//**********************************************************************
//
//<copyright>
//
//BBN Technologies
//10 Moulton Street
//Cambridge, MA 02138
//(617) 873-8000
//
//Copyright (C) BBNT Solutions LLC. All rights reserved.
//
//</copyright>
//**********************************************************************
//
//$Source:
///cvs/darwars/ambush/aar/src/com/bbn/ambush/mission/MissionHandler.java,v
//$
//$RCSfile: MissionHandler.java,v $
//$Revision: 1.10 $
//$Date: 2004/10/21 20:08:31 $
//$Author: dietrick $
//
//**********************************************************************
package com.bbn.openmap.dataAccess.mapTile;
import com.bbn.openmap.omGraphics.OMGraphicList;
import com.bbn.openmap.proj.Projection;
/**
* An object that fetches tiles for a given projection. It could cache the
* tiles, it can get them from anywhere it might want to.
*
* @author dietrick
*/
public interface MapTileFactory {
/**
* Create an OMGraphicList with a set of tiles on it.
*
* @param proj
* @return OMGraphicList that was created.
*/
OMGraphicList getTiles(Projection proj);
/**
* Create an OMGraphicList that covers the projection with tiles that suit
* the specified zoom level.
*/
OMGraphicList getTiles(Projection proj, int zoomLevel);
/**
* Add tiles to OMGraphicList provided that suit the given projection.
*
* @param proj
* @param list
* @return the OMGraphicList provided.
*/
OMGraphicList getTiles(Projection proj, int zoomLevel, OMGraphicList list);
/**
* Set a MapTileRequestor in the tile factory that should be told to repaint
* when new tiles become available, and to check with during the tile fetch
* whether to keep going or not. listUpdate will be called when a new tile
* has been added to the OMGraphicList passed in the getTiles method, and
* shouldContinue will be called during stable times during the getTiles
* fetch.
*
* @param requestor
* callback MapTileRequestor to ask status questions.
*/
void setMapTileRequester(MapTileRequester requestor);
/**
* Tell the factory to clean up resources.
*/
void reset();
/**
* Get object that handles empty tiles.
*
* @return EmptyTileHandler used by the factory.
*/
EmptyTileHandler getEmptyTileHandler();
}