+private:
+ Pointer0Type ptr0;
+ Pointer1Type ptr1;
+};
+
+
+/**
+Base class for data loaders. To give loading capabilities to a class, create a
+public Loader class in it, derived from this class. Typically a loader object
+contains a reference to the loaded object. To make use of loading directly
+into data members, the Loader class must have a get_object() member function,
+returning that reference. If direct loading of pointers is desired, the Loader
+class must also have a get_collection() member function, returning a collection
+to get pointers from.
+*/
+class Loader
+{
+public:
+ /**
+ Loads data from a statement. This is normally only used by the Loader class
+ itself for loading sub-items, but needs to be public so it can be accessed
+ in derived objects.
+ */
+ void load(const Statement &st);
+
+ /**
+ Loads statements from a parser.
+ */
+ void load(Parser &p);
+
+ virtual ~Loader();