summaryrefslogtreecommitdiffstats
path: root/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ChangeSummaryImpl.h
diff options
context:
space:
mode:
Diffstat (limited to 'tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ChangeSummaryImpl.h')
-rw-r--r--tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ChangeSummaryImpl.h404
1 files changed, 0 insertions, 404 deletions
diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ChangeSummaryImpl.h b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ChangeSummaryImpl.h
deleted file mode 100644
index ad63a65cc1..0000000000
--- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ChangeSummaryImpl.h
+++ /dev/null
@@ -1,404 +0,0 @@
-/*
- *
- * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/* $Rev$ $Date: 2005/12/22 16:54:14 $ */
-
-#ifndef _CHANGESUMMARYIMPL_H_
-#define _CHANGESUMMARYIMPL_H_
-
-#include "commonj/sdo/disable_warn.h"
-
-
-#include "commonj/sdo/ChangedDataObjectListImpl.h"
-#include "commonj/sdo/SettingList.h"
-#include "commonj/sdo/ChangeSummary.h"
-#include "commonj/sdo/RefCountingPointer.h"
-#include "commonj/sdo/SDOXMLString.h"
-
-#include <map>
-
-using namespace std;
-namespace commonj{
-namespace sdo {
-
-
- /**
- * ChangeLogItem is a part of a change summary.
- * The change summary consisists of change items,
- * deletion items and creation items. They are held in three
- * lists as they have slightly different contents.
- * The change log items hold old values for all the changes to
- * properties of the data object concerned.
- */
-
- class changeLogItem {
-
- public:
-
- changeLogItem(const Type& tp, const Property& prop,SequencePtr seq,
- DataObjectImpl* cont = 0 );
- changeLogItem(const changeLogItem& cin);
- ~changeLogItem();
- DataObjectImpl* getOldContainer();
- const Property& getOldContainmentProperty();
- const Type& getOldType();
- SettingList& getSettings();
- SequencePtr getSequence();
-
- private:
-
- const Property& theOldContainmentProperty;
- DataObjectImpl* theOldContainer;
- const Type& theType;
- SettingList theSettings;
- SequencePtr theSequence;
- };
-
- /**
- * CreateLogItem is a part of a change summary.
- * The change summary consisists of change items,
- * deletion items and creation items. They are held in three
- * lists as they have slightly different contents.
- * The create log items hold the data object itself,
- * and details of its container.
- */
-
-
- class createLogItem {
-
- public:
-
- createLogItem(const Type& tp, const Property& prop, DataObjectImpl* cont = 0);
-
-
- DataObjectImpl* getOldContainer();
- const Property& getOldContainmentProperty();
- const Type& getOldType();
-
- private:
-
- const Property& theOldContainmentProperty;
- DataObjectImpl* theOldContainer;
- const Type& theType;
- };
-
- /**
- * DeleteLogItem is a part of a change summary.
- * The change summary consisists of change items,
- * deletion items and creation items. They are held in three
- * lists as they have slightly different contents.
- * The delete log items hold the old data object , and
- * details of the properties as they were before deletion
- */
-
- class deleteLogItem {
-
- public:
-
-
- deleteLogItem(DataObject* dob, const Property& prop,
- SequencePtr seq,const char *oldpath,
- DataObjectImpl* cont = 0);
-
-
- deleteLogItem(const deleteLogItem& cin);
- ~deleteLogItem();
- DataObjectImpl* getOldContainer();
- const Property& getOldContainmentProperty();
- const Type& getOldType();
- const char* getOldXpath();
- SettingList& getSettings();
- SequencePtr getSequence();
- void setSequence(SequencePtr s);
-
- private:
-
- const Property& theOldContainmentProperty;
- DataObjectImpl* theOldContainer;
-
- /** theActualObject
- * A counting pointer to the object is held, such that the
- * object is not freed, even if deleted. This rcp will not
- * be used to refer to the object, but makes sure that the
- * object does not reuse a memory address of a previously
- * deleted object until the change summary is destroyed.
- */
-
- RefCountingPointer<DataObject> theActualObject;
- const Type& theType;
- SettingList theSettings;
- SequencePtr theSequence;
- char * theOldXpath;
- };
-
-
- /** ChangeSummaryImpl implements the abstract class ChangeSummary.
- * The change summary consisists of change items,
- * deletion items and creation items. They are held in three
- * lists as they have slightly different contents.
- */
-
- class ChangeSummaryImpl : public ChangeSummary
- {
- public:
- ChangeSummaryImpl();
-
- virtual ~ChangeSummaryImpl();
-
- /**
- * The new and modified objects in the list are references to objects that
- * are associated with this change summary.
- * The deleted objects in the list are references to copies of the objects
- * as they appeared at the time that event logging was enabled;
- * if the deleted objects have references to other objects,
- * the references will also refer to copies of the target objects.
- * Return a list of changed data objects.
- */
-
- virtual ChangedDataObjectList& getChangedDataObjects();
-
-
- /** getOldSettings returns a list of settings.
- * Returns a list of Settings
- * that represent the property values of the given dataObject
- * at the point when logging began.
- * In the case of a deleted object,
- * the list will include Settings for all the properties.
- * An old value Setting indicates the value at the
- * point logging begins. A setting is only produced for
- * modified objects if either the old value differs from the current value or
- * if the isSet differs from the current value.
- * No Settings are produced for created objects.
- * Param dataObject the object in question.
- * Return a list of settings.
- */
- virtual SettingList& getOldValues(DataObjectPtr dataObject);
-
- /** getOldXpath returns the old path before the setting.
- *
- * Returns a path where the object was located before the setting took place.
- */
- virtual const char* getOldXpath(RefCountingPointer<commonj::sdo::DataObject> dol);
-
-
- /** beginLogging() sets the change summary in logging mode.
- *
- * The change summary is initially inactive. Setting it to logging mode
- * starts the process of recording all the settings made.
- */
-
- virtual void beginLogging();
-
- /** endLogging() stops logging.
- *
- * This method stops logging, but does not clear out the change summary.
- * The changes are valid until the summary is next set to logging, at which time
- * all old settings are lost.
- */
- virtual void endLogging();
-
-
-
- /** isLogging() returns true if logging is enabled.
- *
- * Indicates whether change logging is on (true) or off (false).
- */
-
- virtual bool isLogging();
-
-
-
- /** isCreated() returns true if the object was created during logging.
- *
- * Returns whether or not the specified data object was created while logging.
- * Any object that was added to the data graph
- * but was not in the data graph when logging began,
- * will be considered created.
- * Param dataObject the data object in question.
- * Return true if the specified data object was created.
- */
- virtual bool isCreated(DataObjectPtr dataObject);
-
- /** isDeleted() - true if the object was deleted during logging.
- *
- * Returns whether or not the specified data object was deleted while logging.
- * Any object that is not contained by the data graph will be considered
- * deleted.
- * Param dataObject the data object in question.
- * Return true if the specified data object was deleted.
- */
- virtual bool isDeleted(DataObjectPtr dataObject);
-
-
- /** isModified() - true if the object was changed during logging.
- *
- * Returns whether or not the specified data object was updated while logging.
- * An object that was contained in the data graph when logging began,
- * and remains in the graph when logging ends will be considered for changes.
- * An object considered modified must have at least one old value Setting.
- * Param dataObject the data object in question.
- * Return true if the specified data object was modified.
- */
- virtual bool isModified(DataObjectPtr dataObject);
-
- /** getOldValue() gets the setting showing the old value.
- *
- * Returns a setting for the specified property
- * representing the property value of the given dataObject
- * at the point when logging began.
- * Returns null if the property has not changed and
- * has not been deleted.
- * Param dataObject the object in question.
- * Param property the property of the object.
- * Return the Setting for the specified property.
- */
-
- virtual const Setting& getOldValue(DataObjectPtr dataObject, const Property& property);
-
- /** getOldContainer() gets the container before the setting.
- *
- * Returns the value of the container data object
- * at the point when logging began.
- * Param dataObject the object in question.
- * Return the old container data object.
- */
- virtual DataObjectPtr getOldContainer(DataObjectPtr dataObject);
-
- /** getOldContainmentProperty() - gives the property before setting.
- *
- * Returns the value of the containment property data object property
- * at the point when logging began.
- * Param dataObject the object in question.
- * Return the old containment property.
- */
- virtual const Property& getOldContainmentProperty(DataObjectPtr dataObject);
-
- /** undoChanges() - Not Implemented.
- *
- * NOT IMPLEMENTED
- *
- * Undoes all changes in the log to restore the tree of
- * DataObjects to its original state when logging began.
- * isLogging() is unchanged. The log is cleared.
- */
- virtual void undoChanges();
-
- /** getOldSequence() - Not Implemented.
- *
- * NOT IMPLEMENTED
- *
- * This method gives back the sequence of a data object as it
- * appeared when logging was switched on. The data object may be
- * a deleted data object or a changed data object. If the
- * data object was not sequenced, this returns null.
- */
-
- virtual SDO_API SequencePtr getOldSequence(DataObjectPtr dataObject);
-
- bool isInCreatedMap(DataObjectImpl* ob);
-
- void logDeletion(DataObjectImpl* ob,
- DataObjectImpl* cont, const Property& prop,
- const char* oldpath,
- bool loggingChildren = true
- );
-
- void logCreation(DataObjectImpl* ob,
- DataObjectImpl* cont, const Property& prop
- );
-
- void logChange(DataObjectImpl* ob, const Property& prop
- );
-
-
- SDO_API void debugPrint();
-
- void removeFromChanges(DataObjectImpl* ob);
-
-
- /**
- * appendToCreations is used by deserialization
- * This method helps to rebuild a change summary by populating the
- * lists without the changes actually being logged.
- */
-
- void appendToCreations(const Property& p,
- DataObjectPtr dob,
- DataObjectPtr cont);
-
-
- /**
- * appendToDeletions is used by deserialization
- * This method helps to rebuild a change summary by populating the
- * lists without the changes actually being logged.
- */
- void appendToDeletions(const Property& p,
- DataObjectPtr dob,
- DataObjectPtr cont,
- const char* oldpath);
-
-
- unsigned int stringConvert(
- char** value,
- const char* c,
- const Property& p);
-
- /**
- * appendToChangesis used by deserialization
- * This method helps to rebuild a change summary by populating the
- * lists without the changes actually being logged.
- */
-
- void appendToChanges(const Property& p,
- DataObjectPtr dob,
- SDOXMLString value,
- int index);
-
- void appendToChanges(const Property& p,
- DataObjectPtr dob,
- DataObjectPtr pdob,
- int index);
-
- DataObjectPtr matchDeletedObject(SDOXMLString path);
-
-
- private:
-
-
- void setPropValue(void** value, unsigned int *len, DataObjectImpl* ob, const Property& prop);
- void setManyPropValue(void** value, unsigned int *len, DataObjectImpl* ob,
- DataObjectImpl* listob, const Property& prop);
- bool logging;
-
- typedef std::map<DataObjectImpl*, createLogItem> CREATELOG_MAP;
- typedef std::map<DataObjectImpl*, deleteLogItem> DELETELOG_MAP;
- typedef std::map<DataObjectImpl*, changeLogItem> CHANGELOG_MAP;
-
- CHANGELOG_MAP changedMap;
- CREATELOG_MAP createdMap;
- DELETELOG_MAP deletedMap;
-
- ChangedDataObjectListImpl changedDataObjects;
-
-
-
-
-
-};
-};
-};
-#endif //_CHANGESUMMARYIMPL_H_