EJBMoordb ofrece la interfaz IController, con una serie de métodos para la implementación de Controller en aplicaciones Java EE.
Nota: No se declara solo se implementa en los controller.
public interface IController<T> {
//action= new, search, writable, ("edit", entity)
public String prepare(String action, Object... item) ;
public String isNew();
public void reset();
public String showAll();
public String save();
public String edit();
// public String prepareEdit(Object item);
/*
donotleave= true se queda en el form false = salta al formulario list
reset = true resetea el formulario (view), list reset = false;
removeFromList= true remueve de la lista se llama desde el list.
*/
public String delete(Object item, Boolean donotleave, Boolean reset, Boolean removeFromList);
public String deleteAll();
public String print();
public String printAll();
//public void handleSelect(SelectEvent event);
public String last();
public String first();
public String next();
public String back();
public String skip(Integer page);
public void move();
}
IError
Para los Controller que no tienen todos los métodos estándar y necesitan para usarse desde los catch() para enviar la información del método actual.
public interface IError<T> {
public default String nameOfClassAndMethod() {
final StackTraceElement e = Thread.currentThread().getStackTrace()[2];
final String s = e.getClassName();
return s.substring(s.lastIndexOf('.') + 1, s.length()) + "." + e.getMethodName();
}
public default String nameOfClass() {
final StackTraceElement e = Thread.currentThread().getStackTrace()[2];
final String s = e.getClassName();
return s.substring(s.lastIndexOf('.') + 1, s.length()) ;
}
public default String nameOfMethod() {
final StackTraceElement e = Thread.currentThread().getStackTrace()[2];
final String s = e.getClassName();
return e.getMethodName();
}
}