/*
 * SoilDatabase.java
 *
 * Created on April 19, 2007, 2:30 PM
 *
 */

package usda.weru.soil;

import javax.swing.ProgressMonitor;
import javax.swing.tree.MutableTreeNode;
import javax.swing.tree.TreeNode;

/**
 *
 * @author Joseph Levin
 */
public interface SoilDatabase {
    /**
     * Creates new node instances for this soil database.  Some databases may
     * return more than one node for the database.
     * @return new instances of nodes for this database
     */
    public MutableTreeNode[] createNodes();

	/**
	 *
	 * @param node
	 * @return
	 */
	public boolean isSoil(TreeNode node);

	/**
	 *
	 * @param node
	 * @param progress
	 * @return
	 */
	public IFC getIfcFromNode(TreeNode node, ProgressMonitor progress);

	/**
	 *
	 */
	public void dispose();
}
