--- /dev/null
+// ANNA - Anna is Not Nothingness Anymore //
+// //
+// (c) Copyright 2005-2015 Eduardo Ramos Testillano & Francisco Ruiz Rayo //
+// //
+// See project site at http://redmine.teslayout.com/projects/anna-suite //
+// See accompanying file LICENSE or copy at http://www.teslayout.com/projects/public/anna.LICENSE //
+
+
+#ifndef anna_dbos_Creator_hpp
+#define anna_dbos_Creator_hpp
+
+#include <anna/dbos/Accesor.hpp>
+
+namespace anna {
+
+namespace dbos {
+
+/**
+ Interfaz que deben cumplir los objetos encargados de crear un nuevo objeto que sera ubicado
+ en el area de almacenamiento asociado a un medio fisico.
+*/
+class Creator : public Accesor {
+public:
+ /**
+ Metodo de debemos re-escribir para devolver el nombre completo del selector de recursos.
+ Para evitar ambigüedades este nombre deberia incluir la lista completa de \em namespaces
+ a la que pertenece la clase.
+ \return Una cadena con el nombre de este selector.
+ */
+ virtual const char* getClassName() const throw() { return "anna::dbos::Creator"; }
+
+protected:
+ /**
+ Constructor.
+ \param database Base de datos asociada a este cargador y que deberia servir para
+ obtener los datos de un objeto. Debe tener la misma disponibilidad que este cargador.
+ \param id Identificador de este accesor.
+ */
+ Creator(dbms::Database& database, const Id id = 0) : Accesor(database, id) {;}
+
+ /**
+ Constructor.
+ \param id Identificador de este accesor.
+ */
+ Creator(const Id id = 0) : Accesor(id) {;}
+
+ /**
+ Devuelve el indice usado para ubicar en memoria el objeto que vamos a cargar.
+ @return El indice usado para ubicar en memoria el objeto que vamos a cargar.
+ */
+ virtual Index getIndex() const throw(RuntimeException) = 0;
+
+private:
+ dbms::Statement* initialize(dbms::Database&) throw(RuntimeException) { return NULL;}
+
+ friend class StorageArea;
+};
+
+}
+}
+
+#endif
+
+
+