/***************************************************
*
* cismet GmbH, Saarbruecken, Germany
*
* ... and it just works.
*
****************************************************/
package de.cismet.tools.gui.breadcrumb;
import java.util.List;
/**
* DOCUMENT ME!
*
* @author thorsten
* @version $Revision$, $Date$
*/
public interface BreadCrumbModel {
//~ Methods ----------------------------------------------------------------
/**
* DOCUMENT ME!
*
* @param bcListener DOCUMENT ME!
*/
void addBreadCrumbModelListener(BreadCrumbModelListener bcListener);
/**
* DOCUMENT ME!
*
* @param bcListener DOCUMENT ME!
*/
void removeBreadCrumbModelListener(BreadCrumbModelListener bcListener);
/**
* DOCUMENT ME!
*
* @return DOCUMENT ME!
*/
int getSize();
/**
* DOCUMENT ME!
*
* @param position DOCUMENT ME!
*
* @return DOCUMENT ME!
*/
BreadCrumb getCrumbAt(int position);
/**
* DOCUMENT ME!
*
* @param bc DOCUMENT ME!
*
* @return DOCUMENT ME!
*/
int getPositionOf(BreadCrumb bc);
/**
* DOCUMENT ME!
*
* @param bc DOCUMENT ME!
*/
void appendCrumb(BreadCrumb bc);
/**
* DOCUMENT ME!
*
* @param bc DOCUMENT ME!
*/
void startWithNewCrumb(BreadCrumb bc);
/**
* DOCUMENT ME!
*
* @param bc DOCUMENT ME!
*/
void removeTill(BreadCrumb bc);
/**
* DOCUMENT ME!
*
* @return DOCUMENT ME!
*/
List<BreadCrumb> getAllCrumbs();
/**
* DOCUMENT ME!
*
* @return DOCUMENT ME!
*/
BreadCrumb getLastCrumb();
/**
* DOCUMENT ME!
*
* @return DOCUMENT ME!
*/
BreadCrumb getFirstCrumb();
/**
* DOCUMENT ME!
*/
void clear();
}