/***************************************************
*
* cismet GmbH, Saarbruecken, Germany
*
* ... and it just works.
*
****************************************************/
/*
* EditorLocator.java
*
* Created on 20. August 2004, 16:15
*/
package Sirius.navigator.ui.attributes.editor;
/**
* Hilfsmethoden um f\u00FCr ein bestimmtes Objekt einen passenden Editor zu finden.
*
* <p>Die Regel nach der gesucht wird, legt die entsprechende Implementierung fest.</p>
*
* @author Pascal
* @version $Revision$, $Date$
*/
public interface EditorLocator {
//~ Methods ----------------------------------------------------------------
/**
* Untersucht ein komplexes Objekt (z.B. eine Collection, Java Bean, etc.) nach einer bestimmten Regel nach
* einfachen und komplexen Editoren.
*
* <p>\u00DCber den key der Map wird im komplexen Editor (Container) des Objekts der entsprechende Wert gesetzt.
* Wenn das komplexe Objekt z.B. eine Liste ist, k\u00F6nnte der Key z.B. ein Integer Objekt sein (-> index).
* Einfachster Fall: das komplexe Objekt ist eine Map!</p>
*
* <p>Im Falle von Map und Collection soll an die beiden anderen getEditors Methoden delegiert werden.</p>
*
* @param object das komplexe Objekt das untersucht werden soll
*
* @return eine Hasmap mit passenden Editoren
*
* @see ComplexContainer.setValue(Object key, Object value)
* @see EditorLocator.getEditors(java.util.Collection collection)
* @see EditorLocator.getEditors(java.util.Map map)
*/
java.util.Map getEditors(Object object);
/**
* Wenn das komplexe Object eine Collection ist, sollte diese Methode aufgerufen werden.
*
* @param collection DOCUMENT ME!
*
* @return eine Hasmap mit passenden Editoren
*
* @see EditorLocator.getEditors(Object object)
* @pram object das komplexe Objekt ist vom Typ java.util.Collection
*/
java.util.Map getEditors(java.util.Collection collection);
/**
* Wenn das komplexe Object eine Hashmap ist, sollte diese Methode aufgerufen werden.
*
* @param map DOCUMENT ME!
*
* @return eine Hasmap mit passenden Editoren
*
* @see EditorLocator.getEditors(Object object)
* @pram object das komplexe Objekt ist vom Typ java.util.Map
*/
java.util.Map getEditors(java.util.Map map);
/**
* Versucht einen passenden einfachen oder komplexen Editor f\u00FCr das Objekt zu finden.
*
* @param object DOCUMENT ME!
*
* @return ein einfacher bzw. komplexer Editor, oder null falls kein passender Editor gefunden werden konnte.
*/
BasicEditor getEditor(Object object);
}