/**
Devuelve la referencia de la instancia de nuestra aplicacion
*/
- static Application& getApp() throw(RuntimeException);
+ static Application& getApp() noexcept(false);
- /**
- Patron para obtener facilmente la instancia de un determinado componente.
- Estos dos parametros suelen ser sustituidos por la macro C <b>FILE_LOCATION</b>.
-
- \param fromFile Fichero desde el que se invoca a este metodo
- \param fromLine Numero de linea desde el que se invoca a este metodo.
-
- \return La instancia del componente de la clase recibida como parametro.
- \warning La clase T de implementar un metodo de la forma:
- \code
- static const char* getClassName () throw ();
- \endcode
- \see Component
- */
- template <typename T> static T* component(const char* fromFile, const int fromLine)
- throw(anna::RuntimeException) {
- return component<T> (T::getClassName(), fromFile, fromLine);
- }
/**
- Patron para obtener facilmente la instancia de un determinado componente.
- Estos dos parametros suelen ser sustituidos por la macro C <b>FILE_LOCATION</b>.
- \param className Nombre del componente buscado.
- \param fromFile Fichero desde el que se invoca a este metodo
- \param fromLine Numero de linea desde el que se invoca a este metodo.
+ Pattern to obtain a multi named application component instance easily.
+ Parameters are usually replaced by the macro C <b>FILE_LOCATION</b>.
+
+ \param className Application component class name
+ \param fromFile File which called the method
+ \param fromLine Line number within the file from where the method is called.
- \return La instancia del componente de la clase recibida como parametro.
+ \return Application component instance for the class provided at the pattern
\see Component
*/
- template <typename T> static T* component(const char* className, const char* fromFile, const int fromLine)
- throw(anna::RuntimeException) {
+ template <typename T> static T* componentByName(const char *className, const char* fromFile, const int fromLine)
+ noexcept(false) {
T* result = static_cast <T*>(functions::getApp().find(className));
if(result == NULL) {
}
};
+ /**
+ Pattern to obtain a single named application component instance easily.
+ Parameters are usually replaced by the macro C <b>FILE_LOCATION</b>.
+
+ \param fromFile File which called the method
+ \param fromLine Line number within the file from where the method is called.
+
+ \return Application component instance for the class provided at the pattern
+ \warning T class must implement a method in the form:
+ \code
+ static const char* getClassName () ;
+ \endcode
+ \see Component
+ */
+ template <typename T> static T* component(const char* fromFile, const int fromLine)
+ noexcept(false) {
+ return functions::componentByName<T> (T::getClassName(), fromFile, fromLine);
+ }
+
}
}