00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef _UPDATEFACTORY_HPP
00023 #define _UPDATEFACTORY_HPP
00024
00025 #include <xqilla/framework/XQillaExport.hpp>
00026 #include <xqilla/schema/DocumentCache.hpp>
00027
00028 #include <xercesc/util/XMemory.hpp>
00029
00030 class PendingUpdateList;
00031 class PendingUpdate;
00032 class DynamicContext;
00033
00034 class XQILLA_API UpdateFactory : public XERCES_CPP_NAMESPACE_QUALIFIER XMemory
00035 {
00036 public:
00037 virtual ~UpdateFactory() {}
00038
00039 virtual void applyUpdates(const PendingUpdateList &pul, DynamicContext *context, DocumentCache::ValidationMode valMode);
00040 virtual void checkUpdates(const PendingUpdateList &pul, DynamicContext *context, DocumentCache::ValidationMode valMode) {}
00041
00042 virtual void applyPut(const PendingUpdate &update, DynamicContext *context) = 0;
00043 virtual void applyInsertInto(const PendingUpdate &update, DynamicContext *context) = 0;
00044 virtual void applyInsertAttributes(const PendingUpdate &update, DynamicContext *context) = 0;
00045 virtual void applyReplaceValue(const PendingUpdate &update, DynamicContext *context) = 0;
00046 virtual void applyRename(const PendingUpdate &update, DynamicContext *context) = 0;
00047 virtual void applyDelete(const PendingUpdate &update, DynamicContext *context) = 0;
00048 virtual void applyInsertBefore(const PendingUpdate &update, DynamicContext *context) = 0;
00049 virtual void applyInsertAfter(const PendingUpdate &update, DynamicContext *context) = 0;
00050 virtual void applyInsertAsFirst(const PendingUpdate &update, DynamicContext *context) = 0;
00051 virtual void applyInsertAsLast(const PendingUpdate &update, DynamicContext *context) = 0;
00052 virtual void applyReplaceNode(const PendingUpdate &update, DynamicContext *context) = 0;
00053 virtual void applyReplaceAttribute(const PendingUpdate &update, DynamicContext *context) = 0;
00054 virtual void applyReplaceElementContent(const PendingUpdate &update, DynamicContext *context) = 0;
00055
00056 virtual void completeUpdate(DynamicContext *context) = 0;
00057
00058 protected:
00059 DocumentCache::ValidationMode valMode_;
00060 };
00061
00062 #endif