Workspace 6.21.5
Public Types | Public Member Functions | Protected Member Functions | Static Protected Member Functions | Protected Attributes | Static Protected Attributes | List of all members
MergeItem Class Referenceabstract

#include <Tools/WorkflowMerge/mergeitem.h>

Inheritance diagram for MergeItem:
[legend]

Public Types

using size_type = DataExecution::ObjectArray::size_type
 

Public Member Functions

 MergeItem ()
 
 MergeItem (const MergeItem &other)
 
 MergeItem (MergeProposal proposal, const QDomElement &element)
 
 ~MergeItem () override=default
 
MergeAction action () const
 
QString actionString () const
 
virtual size_type addTo (CSIRO::DataExecution::ObjectArray &array)=0
 
virtual bool applyTo (QDomDocument &baseDocument) const =0
 
AutoMergeType autoMergeType () const
 
virtual QString description () const
 
bool determineAndAppendMerge (WorkflowChoice workflow, const QString &opGuid, const QDomDocument &baseDocument, const QDomDocument &refDocument, DataExecution::DataObject &dataObject, QList< MergeItem * > &mergeList, const MergeSettings &settings, ErrorType &errors) const
 
virtual bool determineAndAppendMerge (WorkflowChoice workflow, const QString &opGuid, const QDomDocument &baseDocument, const QDomDocument &refDocument, ElementDifference &difference, QList< MergeItem * > &mergeList, const MergeSettings &settings, ErrorType &errors) const
 
virtual bool determineAndAppendMerges (const QString &opGuid, const DataExecution::ObjectArray &differences1, const DataExecution::ObjectArray &differences2, const QDomDocument &baseDocument, const QDomDocument &refDocument1, const QDomDocument &refDocument2, QList< MergeItem * > &mergeList, const MergeSettings &settings, ErrorType &errors) const
 
QDomElement & element ()
 
ErrorTypeerrors ()
 
ItemDifferencegetDifference1 () const
 
ItemDifferencegetDifference2 () const
 
virtual ElementDifferencegetElementDifference (const DataExecution::ObjectArray &differences, size_type index) const =0
 
const QUuid & getId () const
 
virtual QList< AutoMerge * > getMergeTypes () const
 
QString mergeType () const
 
MergeItemoperator= (const MergeItem &rhs)
 
AutoMergeRole role () const
 
void setAction (MergeAction action)
 
virtual QString type () const
 
- Public Member Functions inherited from BasicTextLogger
 BasicTextLogger ()
 
virtual ~BasicTextLogger ()
 
void logLine (const Application::LogManager::MessageCategory &category, const QString &msg) const
 
void logLine (const QString &msg) const
 
void logText (const Application::LogManager::MessageCategory &category, const QString &msg) const
 
void logText (const QString &msg) const
 

Protected Member Functions

bool addCreatedItems (const QString &opGuid, const QList< MergeItem * > newItems, QList< MergeItem * > &mergeList, ErrorType &errors) const
 
bool appendAttributeMerge (const QString &opGuid, const QDomDocument &refDocument, const ElementDifference &difference, size_type index, MergeProposal proposal, QList< MergeItem * > &mergeList, ErrorType &errors) const
 
bool appendMerge (const QString &opGuid, const QDomDocument &baseDocument, const QDomDocument &refDocument, ItemDifference &difference, MergeProposal proposal, QList< MergeItem * > &mergeList, ErrorType &errors) const
 
bool appendMerge (const QString &opGuid, const QDomDocument &baseDocument, const QDomDocument &refDocument, ItemDifference &difference1, ItemDifference &difference2, MergeProposal proposal, QList< MergeItem * > &mergeList, ErrorType &errors) const
 
virtual bool areEditedDifferently (const ItemDifference &, const ItemDifference &) const
 
virtual bool areEquivalent (const ItemDifference &workflow1Change, const ItemDifference &workflow2Change) const =0
 
virtual MergeItemcreateAttributeItem (const QString &opId, const QDomDocument &refDocument, const ElementDifference &difference, size_type index, MergeProposal &proposal) const =0
 
virtual MergeItemcreateItem (const QString &opId, const QDomDocument &refDocument, ItemDifference &difference, MergeProposal &proposal) const =0
 
virtual MergeItemcreateItem (const QString &opId, const QDomDocument &refDocument, ItemDifference &difference1, ItemDifference &difference2, MergeProposal &proposal) const =0
 
virtual QList< MergeItem * > createItems (const QString &opId, const QDomDocument &baseDocument, const QDomDocument &refDocument, ItemDifference &difference, MergeProposal &proposal) const
 
virtual QList< MergeItem * > createItems (const QString &opId, const QDomDocument &baseDocument, const QDomDocument &refDocument, ItemDifference &difference1, ItemDifference &difference2, MergeProposal &proposal) const
 
virtual bool determineAction (const ElementDifference &workflow1Change, const ElementDifference &workflow2Change, bool inputAvailable, MergeProposal &proposal, const MergeSettings &mergeSettings, ErrorType &errors) const
 
virtual bool determineAction (const ElementDifference &workflowChange, bool inputAvailable, MergeProposal &proposal, const MergeSettings &mergeSettings, ErrorType &errors) const
 
bool determineAction_AddRemoveOrEdit (const ElementDifference &workflow1Change, const ElementDifference &workflow2Change, bool inputAvailable, MergeProposal &proposal, const MergeSettings &mergeSettings, ErrorType &errors) const
 
bool determineAction_AddRemoveOrEdit (const ElementDifference &workflowChange, bool inputAvailable, MergeProposal &proposal, const MergeSettings &mergeSettings, ErrorType &errors) const
 
virtual bool determineAndAppendAttributeMerge (const QString &opId, WorkflowChoice workflow, const QDomDocument &refDocument, const ElementDifference &difference, size_type index, const MergeSettings &mergeSettings, QList< MergeItem * > &mergeList, ErrorType &errors) const
 
virtual bool determineAndAppendAttributeMerges (const QString &opGuid, const ElementDifference &difference1, const ElementDifference &difference2, const QDomDocument &refDocument1, const QDomDocument &refDocument2, QList< MergeItem * > &mergeList, const MergeSettings &settings, ErrorType &errors) const
 
virtual bool determineAndAppendAttributeMerges (const QString &opGuid, WorkflowChoice workflow, const ElementDifference &difference, const QDomDocument &refDocument, QList< MergeItem * > &mergeList, const MergeSettings &settings, ErrorType &errors) const
 
virtual bool determineAndAppendMerges (const QString &opGuid, const DataExecution::ObjectArray &differences, WorkflowChoice workflow, const QDomDocument &baseDocument, const QDomDocument &refDocument, QList< MergeItem * > &mergeList, const MergeSettings &settings, ErrorType &errors) const
 
virtual bool determineAttributeAction (const AttributeDifference &workflow1Change, const AttributeDifference &workflow2Change, bool inputAvailable, MergeProposal &proposal, const MergeSettings &mergeSettings, ErrorType &errors) const
 
virtual bool determineAttributeAction (const ElementDifference &difference, size_type index, bool inputAvailable, MergeProposal &proposal, const MergeSettings &mergeSettings, ErrorType &errors) const
 
virtual ElementDifferencegetElementDifference (DataExecution::DataObject &dataObject) const =0
 
QList< AutoMerge * > getStandardMergeTypes (const QString &elementTag, const QString &displayTag="") const
 
virtual bool isEdited (const ItemDifference &) const
 
void setDifference1 (std::shared_ptr< ItemDifference > difference)
 
void setDifference2 (std::shared_ptr< ItemDifference > difference)
 
virtual bool treatAttributesIndependently () const
 

Static Protected Member Functions

static bool assessConfirmation (bool inputAvailable, MergeProposal &proposal, const MergeSettings &mergeSettings, ErrorType &errors)
 
static void removeHangingConnections (QDomElement &wspElement)
 
static QList< AutoMerge * > removeRoles (const QList< AutoMerge * > typeList, const QList< AutoMergeRole > unwantedRoles)
 
static QString toString (MergeAction action)
 

Protected Attributes

MergeAction action_
 
QDomElement element_
 
ErrorType errors_
 
QUuid id_
 
AutoMergeType type_
 

Static Protected Attributes

static const QList< MergeActionreferenceActions_ = {MergeAction_Append, MergeAction_Replace, MergeAction_Modify}
 These are actions where a QDomElement needs to be copied from one of the new workflows and stored so that the merge can be applied to the base document.
 

Member Typedef Documentation

◆ size_type

Constructor & Destructor Documentation

◆ MergeItem() [1/3]

MergeItem ( MergeProposal  proposal,
const QDomElement &  element 
)

◆ MergeItem() [2/3]

MergeItem ( )

◆ MergeItem() [3/3]

MergeItem ( const MergeItem other)

◆ ~MergeItem()

~MergeItem ( )
overridedefault

Member Function Documentation

◆ action()

MergeAction action ( ) const
inline

◆ actionString()

QString actionString ( ) const
inline

◆ addCreatedItems()

bool addCreatedItems ( const QString &  opGuid,
const QList< MergeItem * >  newItems,
QList< MergeItem * > &  mergeList,
ErrorType errors 
) const
protected
Parameters
opGuidthe id for the operation that the ElementDifferences refer to
newItems
mergeListGrowing list of merges to be made (added to in the function)
errorsstring list holding contributing errors (if any)
Returns
true if at least one MergeItem in the list to be added

◆ addTo()

virtual size_type addTo ( CSIRO::DataExecution::ObjectArray array)
pure virtual

◆ appendAttributeMerge()

bool appendAttributeMerge ( const QString &  opGuid,
const QDomDocument &  refDocument,
const ElementDifference difference,
size_type  index,
MergeProposal  proposal,
QList< MergeItem * > &  mergeList,
ErrorType errors 
) const
protected

◆ appendMerge() [1/2]

bool appendMerge ( const QString &  opGuid,
const QDomDocument &  baseDocument,
const QDomDocument &  refDocument,
ItemDifference difference,
MergeProposal  proposal,
QList< MergeItem * > &  mergeList,
ErrorType errors 
) const
protected

◆ appendMerge() [2/2]

bool appendMerge ( const QString &  opGuid,
const QDomDocument &  baseDocument,
const QDomDocument &  refDocument,
ItemDifference difference1,
ItemDifference difference2,
MergeProposal  proposal,
QList< MergeItem * > &  mergeList,
ErrorType errors 
) const
protected

◆ applyTo()

virtual bool applyTo ( QDomDocument &  baseDocument) const
pure virtual

◆ areEditedDifferently()

virtual bool areEditedDifferently ( const ItemDifference ,
const ItemDifference  
) const
inlineprotectedvirtual

◆ areEquivalent()

virtual bool areEquivalent ( const ItemDifference workflow1Change,
const ItemDifference workflow2Change 
) const
protectedpure virtual

◆ assessConfirmation()

bool assessConfirmation ( bool  inputAvailable,
MergeProposal proposal,
const MergeSettings mergeSettings,
ErrorType errors 
)
staticprotected

◆ autoMergeType()

AutoMergeType autoMergeType ( ) const
inline

◆ createAttributeItem()

virtual MergeItem * createAttributeItem ( const QString &  opId,
const QDomDocument &  refDocument,
const ElementDifference difference,
size_type  index,
MergeProposal proposal 
) const
protectedpure virtual

◆ createItem() [1/2]

virtual MergeItem * createItem ( const QString &  opId,
const QDomDocument &  refDocument,
ItemDifference difference,
MergeProposal proposal 
) const
protectedpure virtual

◆ createItem() [2/2]

virtual MergeItem * createItem ( const QString &  opId,
const QDomDocument &  refDocument,
ItemDifference difference1,
ItemDifference difference2,
MergeProposal proposal 
) const
protectedpure virtual

◆ createItems() [1/2]

QList< MergeItem * > createItems ( const QString &  opId,
const QDomDocument &  baseDocument,
const QDomDocument &  refDocument,
ItemDifference difference,
MergeProposal proposal 
) const
protectedvirtual

Reimplemented in MergeInput, and MergeOutput.

◆ createItems() [2/2]

QList< MergeItem * > createItems ( const QString &  opId,
const QDomDocument &  baseDocument,
const QDomDocument &  refDocument,
ItemDifference difference1,
ItemDifference difference2,
MergeProposal proposal 
) const
protectedvirtual

Reimplemented in MergeInput, and MergeOutput.

◆ description()

QString description ( ) const
virtual

◆ determineAction() [1/2]

bool determineAction ( const ElementDifference workflow1Change,
const ElementDifference workflow2Change,
bool  inputAvailable,
MergeProposal proposal,
const MergeSettings mergeSettings,
ErrorType errors 
) const
protectedvirtual

Reimplemented in MergeView, and MergeAnchor.

◆ determineAction() [2/2]

bool determineAction ( const ElementDifference workflowChange,
bool  inputAvailable,
MergeProposal proposal,
const MergeSettings mergeSettings,
ErrorType errors 
) const
protectedvirtual

Reimplemented in MergeView, and MergeAnchor.

◆ determineAction_AddRemoveOrEdit() [1/2]

bool determineAction_AddRemoveOrEdit ( const ElementDifference workflow1Change,
const ElementDifference workflow2Change,
bool  inputAvailable,
MergeProposal proposal,
const MergeSettings mergeSettings,
ErrorType errors 
) const
protected

◆ determineAction_AddRemoveOrEdit() [2/2]

bool determineAction_AddRemoveOrEdit ( const ElementDifference workflowChange,
bool  inputAvailable,
MergeProposal proposal,
const MergeSettings mergeSettings,
ErrorType errors 
) const
protected

◆ determineAndAppendAttributeMerge()

bool determineAndAppendAttributeMerge ( const QString &  opId,
WorkflowChoice  workflow,
const QDomDocument &  refDocument,
const ElementDifference difference,
size_type  index,
const MergeSettings mergeSettings,
QList< MergeItem * > &  mergeList,
ErrorType errors 
) const
protectedvirtual

◆ determineAndAppendAttributeMerges() [1/2]

bool determineAndAppendAttributeMerges ( const QString &  opGuid,
const ElementDifference difference1,
const ElementDifference difference2,
const QDomDocument &  refDocument1,
const QDomDocument &  refDocument2,
QList< MergeItem * > &  mergeList,
const MergeSettings settings,
ErrorType errors 
) const
protectedvirtual

◆ determineAndAppendAttributeMerges() [2/2]

bool determineAndAppendAttributeMerges ( const QString &  opGuid,
WorkflowChoice  workflow,
const ElementDifference difference,
const QDomDocument &  refDocument,
QList< MergeItem * > &  mergeList,
const MergeSettings settings,
ErrorType errors 
) const
protectedvirtual

◆ determineAndAppendMerge() [1/2]

bool determineAndAppendMerge ( WorkflowChoice  workflow,
const QString &  opGuid,
const QDomDocument &  baseDocument,
const QDomDocument &  refDocument,
DataExecution::DataObject dataObject,
QList< MergeItem * > &  mergeList,
const MergeSettings settings,
ErrorType errors 
) const

◆ determineAndAppendMerge() [2/2]

bool determineAndAppendMerge ( WorkflowChoice  workflow,
const QString &  opGuid,
const QDomDocument &  baseDocument,
const QDomDocument &  refDocument,
ElementDifference difference,
QList< MergeItem * > &  mergeList,
const MergeSettings settings,
ErrorType errors 
) const
virtual

◆ determineAndAppendMerges() [1/2]

bool determineAndAppendMerges ( const QString &  opGuid,
const DataExecution::ObjectArray differences,
WorkflowChoice  workflow,
const QDomDocument &  baseDocument,
const QDomDocument &  refDocument,
QList< MergeItem * > &  mergeList,
const MergeSettings settings,
ErrorType errors 
) const
protectedvirtual

◆ determineAndAppendMerges() [2/2]

bool determineAndAppendMerges ( const QString &  opGuid,
const DataExecution::ObjectArray differences1,
const DataExecution::ObjectArray differences2,
const QDomDocument &  baseDocument,
const QDomDocument &  refDocument1,
const QDomDocument &  refDocument2,
QList< MergeItem * > &  mergeList,
const MergeSettings settings,
ErrorType errors 
) const
virtual

Reimplemented in MergeAttribute, and MergeOperation.

◆ determineAttributeAction() [1/2]

bool determineAttributeAction ( const AttributeDifference workflow1Change,
const AttributeDifference workflow2Change,
bool  inputAvailable,
MergeProposal proposal,
const MergeSettings mergeSettings,
ErrorType errors 
) const
protectedvirtual

Reimplemented in MergeNote.

◆ determineAttributeAction() [2/2]

bool determineAttributeAction ( const ElementDifference difference,
size_type  index,
bool  inputAvailable,
MergeProposal proposal,
const MergeSettings mergeSettings,
ErrorType errors 
) const
protectedvirtual

Reimplemented in MergeNote, MergeFeature, and MergeInput.

◆ element()

QDomElement & element ( )
inline

◆ errors()

ErrorType & errors ( )
inline

◆ getDifference1()

ItemDifference * getDifference1 ( ) const

◆ getDifference2()

ItemDifference * getDifference2 ( ) const

◆ getElementDifference() [1/2]

virtual ElementDifference * getElementDifference ( const DataExecution::ObjectArray differences,
size_type  index 
) const
pure virtual

◆ getElementDifference() [2/2]

virtual ElementDifference * getElementDifference ( DataExecution::DataObject dataObject) const
protectedpure virtual

◆ getId()

const QUuid & getId ( ) const
inline

◆ getMergeTypes()

QList< AutoMerge * > getMergeTypes ( ) const
virtual

◆ getStandardMergeTypes()

QList< AutoMerge * > getStandardMergeTypes ( const QString &  elementTag,
const QString &  displayTag = "" 
) const
protected

◆ isEdited()

virtual bool isEdited ( const ItemDifference ) const
inlineprotectedvirtual

◆ mergeType()

QString mergeType ( ) const

◆ operator=()

MergeItem & operator= ( const MergeItem rhs)

◆ removeHangingConnections()

void removeHangingConnections ( QDomElement &  wspElement)
staticprotected

◆ removeRoles()

QList< AutoMerge * > removeRoles ( const QList< AutoMerge * >  typeList,
const QList< AutoMergeRole unwantedRoles 
)
staticprotected

◆ role()

AutoMergeRole role ( ) const
inline

◆ setAction()

void setAction ( MergeAction  action)
inline

◆ setDifference1()

void setDifference1 ( std::shared_ptr< ItemDifference difference)
protected

◆ setDifference2()

void setDifference2 ( std::shared_ptr< ItemDifference difference)
protected

◆ toString()

QString toString ( MergeAction  action)
staticprotected

◆ treatAttributesIndependently()

virtual bool treatAttributesIndependently ( ) const
inlineprotectedvirtual

Reimplemented in MergeNote, and MergeOutput.

◆ type()

virtual QString type ( ) const
inlinevirtual

Member Data Documentation

◆ action_

MergeAction action_
protected

◆ element_

QDomElement element_
protected

◆ errors_

ErrorType errors_
protected

◆ id_

QUuid id_
protected

◆ referenceActions_

const QList< MergeAction > referenceActions_ = {MergeAction_Append, MergeAction_Replace, MergeAction_Modify}
staticprotected

◆ type_

AutoMergeType type_
protected