Skip to main content

compareTo

Short summary

This method compares a foreign object with the own one, this is needed for sort orders.

Return: SMALLER: THIS precedes in order, EQUAL: THIS and object at the same position in order, GREATER: THIS is after in order.

Parameters

NameTypeCommentKind
objectCNM_AbstractObject.IObjectforeign object to compareinput

Code

Declaration

METHOD compareTo :CNM_AbstractObject.CNM_ReturnTypes.ComparationResult
VAR_INPUT
(* foreign object to compare*)
object :CNM_AbstractObject.IObject;
END_VAR
VAR
treeToCompare :POINTER TO BalancedBinarySearchTree;
END_VAR

Implementation

IF THIS^.isObjectValid(object) AND_THEN __QUERYPOINTER(object,treeToCompare) THEN
IF (THIS^.size > 0) THEN
compareTo := THIS^.rootNode.compareTo(treeToCompare^.root);
ELSIF (treeToCompare^.size = 0) THEN
compareTo := CNM_ReturnTypes.ComparationResult.EQUAL;
ELSE
compareTo := CNM_ReturnTypes.ComparationResult.SMALLER;
END_IF
ELSIF THIS^.isObjectNull(object) THEN
compareTo := CNM_ReturnTypes.ComparationResult.GREATER;
ELSE
compareTo := CNM_ReturnTypes.ComparationResult.EQUAL;
END_IF