def setConfigObj(self, configObj):
        for logFunc in self._log("set-config-obj").debug1Func():
            logFunc("called. configObj=%s", configObj)
        res = self.distributeConfigObjectToDescendants(configObj)
        if (res != ReturnCodes.kOk):
            for logFunc in self._log(
                    "set-config-obj-distribute-failed").errorFunc():
                logFunc(
                    "distributeConfigObjectToDescendants() failed. configObj=%s. res=%",
                    configObj, res)
            return ReturnCodes.kGeneralError

        jointKeyPath = KeyPath()
        jointKeyPath.copyPartial(configObj.getKeyPath(),
                                 configObj.getKeyPath().getLen())
        operRelativePath = KeyPath()
        self.getOperRelativePath(operRelativePath)

        jointKeyPath.joinKeyPath(operRelativePath)

        for logFunc in self._log("set-config-obj-joint-keypath").debug3Func():
            logFunc("jointKeyPath is: %s", jointKeyPath)

        self.internalSetKeyPath(jointKeyPath)
        self.myConfigNode = configObj

        return ReturnCodes.kOk