docs: public SpecTopic getClosestTopicByDBId(final Integer DBId, final SpecNode callerNode, final boolean checkParentNode) {
          /*
           * Check this level to see if the topic exists
           */
          final List<SpecTopic> topics = getSpecTopics();
          for (final SpecTopic childTopic : topics) {
              if (childTopic.getDBId().equals(DBId)) {
                  return childTopic;
              }
          }
  
          /*
           * If we get to this stage, then the topic wasn't directly at this level. So we should try this levels, child levels
           * first.
           */
          final List<Level> childLevels = getChildLevels();
          for (final Level childLevel : childLevels) {
              if (childLevel == callerNode) {
                  continue;
              } else {
                  final SpecTopic childLevelTopic = childLevel.getClosestTopicByDBId(DBId, callerNode, false);
                  if (childLevelTopic != null) {
                      return childLevelTopic;
                  }
              }
          }
  
          /*
           * If we still haven't found the closest node then check this nodes parents.
           */
          if (getParent() != null && checkParentNode) {
              return getParent().getClosestTopicByDBId(DBId, this, checkParentNode);
          }
  
          return null;
      }