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