// ********************************************************************** // // <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/proj/ProjectionLoader.java,v $ // $RCSfile: ProjectionLoader.java,v $ // $Revision: 1.4 $ // $Date: 2009/01/21 01:24:41 $ // $Author: dietrick $ // // ********************************************************************** package com.bbn.openmap.proj; import java.util.Properties; /** * A ProjectionLoader is a class that knows how to create projection * classes for given parameters. The ProjectionFactory used to have * projection classes hard-coded into it, but it now uses * ProjectionLoaders to create different projections for it. It can * provide the Class to use for a certain projection, and can provide * a name and description to use for GUIs. The ProjectionFactory looks * for these in the MapHandler. * * @see ProjectionFactory * @see BasicProjectionLoader */ public interface ProjectionLoader { /** * Get a class name to use for the projection. This will be used * as a key in the projection factory. */ public Class<? extends Projection> getProjectionClass(); /** * Get a pretty name for the projection. */ public String getPrettyName(); /** * Get a description for the projection. */ public String getDescription(); /** * Create the projection with the given parameters. * * @throws ProjectionException if a parameter is missing or invalid */ public Projection create(Properties props) throws ProjectionException; }