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