getClonedComparator
Short summary
prepares a new Comparator (if set)
- Return type: CNM_ReturnTypes.CloneResult
Parameters
| Name | Type | Comment | Kind |
|---|---|---|---|
| newComparator | CNM_AbstractObject.IComparator | New comparator Object, null if not existent or not cloneable | output |
| deepCloned | BOOL | True if called from deepclonecontext | input |
Code
Declaration
METHOD PROTECTED getClonedComparator : CNM_ReturnTypes.CloneResult
VAR_INPUT
(*True if called from deepclonecontext*)
deepCloned :BOOL;
END_VAR
VAR
newComparatorObject :CNM_AbstractObject.IObject;
END_VAR
VAR_OUTPUT
(*New comparator Object, null if not existent or not cloneable*)
newComparator :CNM_AbstractObject.IComparator;
END_VAR
Implementation
IF deepCloned THEN
IF NOT (((
getClonedComparator := THIS^.nodeComparator.deepClone(clonedObject => newComparatorObject)
) = (
CNM_ReturnTypes.CloneResult.SUCCESS
)
) AND_THEN (
__QUERYINTERFACE(newComparatorObject, newComparator)
)
) THEN
getClonedComparator := CNM_ReturnTypes.CloneResult.FAILED;
IF THIS^.isObjectValid(newComparatorObject) THEN
newComparatorObject.deepDestruct();
END_IF;
RETURN;
END_IF
ELSE
IF NOT (((
getClonedComparator := THIS^.nodeComparator.clone(clonedObject => newComparatorObject)
) = (
CNM_ReturnTypes.CloneResult.SUCCESS
)
) AND_THEN (
__QUERYINTERFACE(newComparatorObject, newComparator)
)
) THEN
getClonedComparator := CNM_ReturnTypes.CloneResult.FAILED;
IF THIS^.isObjectValid(newComparatorObject) THEN
newComparatorObject.destruct();
END_IF;
RETURN;
END_IF
END_IF