// **********************************************************************
//
// <copyright>
//
// BBN Technologies
// 10 Moulton Street
// Cambridge, MA 02138
// (617) 873-8000
//
// Copyright (C) BBNT Solutions LLC. All rights reserved.
//
// </copyright>
// **********************************************************************
//
// $Source: /cvs/distapps/openmap/src/openmap/com/bbn/openmap/dataAccess/dted/DTEDNameTranslator.java,v $
// $RCSfile: DTEDNameTranslator.java,v $
// $Revision: 1.4 $
// $Date: 2005/08/11 20:39:18 $
// $Author: dietrick $
//
// **********************************************************************
package com.bbn.openmap.dataAccess.dted;
import com.bbn.openmap.io.FormatException;
/**
* An interface that defines a object that knows how to define the
* name of a DTED file from a set of coordinates and dted level, and
* also knows how to translate the name of a DTED file to it's
* coverage coordinates and level. Keeps track of the file name, the
* sub-directory path from the top level dted directory to the file,
* and the location of the dted directory if it is specified. It's
* intended that a single DTEDNameTranslator be used for a single DTED
* directory containing a set of directories and files. For objects
* that want to manage a set of DTED directories, a set of
* DTEDNameTranslators are needed. This is required to allow the
* translator the ability to take a lat/lon and provide a String
* representation of what a file would be called if it were stored
* under the specified DTED directory. The translator makes no
* guarantees on whether the file actually exists.
*/
public interface DTEDNameTranslator {
/**
* Set the internal parameters based on the given file path.
*
* @param filePath a path to a dted frame file.
*/
public void set(String filePath) throws FormatException;
/**
* Sets the internal parameters given a parent DTED directory,
* latitude, longitude and level. getName can be called to fetch
* a file name for these parameters.
*
* @param dtedDir the path to the top DTED directory.
* @param lat the desired latitude, in decimal degrees.
* @param lon the desired longitude, in decimal degrees.
* @param level the DTED level (0, 1, 2).
*/
public void set(String dtedDir, double lat, double lon, int level);
/**
* Assuming that the DTED directory is set, set the other
* parameters to reveal a path to a file name, which would be
* retrieved by calling getName().
*
* @param lat the desired latitude, in decimal degrees.
* @param lon the desired longitude, in decimal degrees.
* @param level the DTED level (0, 1, 2).
*/
public void set(double lat, double lon, int level);
/**
* Set the latitude in the translator.
*
* @param lat the desired latitude, in decimal degrees.
*/
public void setLat(double lat);
/**
* Get the latitude.
*/
public double getLat();
/**
* Set the longitude in the translator.
*
* @param lon the desired longitude, in decimal degrees.
*/
public void setLon(double lon);
/**
* Get the longitude.
*/
public double getLon();
/**
* Set the DTED level in the translator.
*
* @param level the DTED level (0, 1, 2).
*/
public void setLevel(int level);
/**
* Get the DTED level set in the translator.
*/
public int getLevel();
/**
* Get the complete path to the DTED frame file based on the
* current internal settings.
*/
public String getName();
/**
* Configure the internal settings based on a path to a DTED frame
* file.
*/
public void setName(String fileName) throws FormatException;
/**
* Get the relative part of the path to the DTED frame file, from
* just under the top-level dted directory to just above the frame
* file.
*/
public String getSubDirs();
/**
* Get the file name.
*/
public String getFileName();
/**
* Set the top-level DTED directory.
*/
public void setDTEDDir(String dtedDirectory);
/**
* Get the path to the top-level DTED directory.
*/
public String getDTEDDir();
}