docs: @SuppressWarnings("unchecked")
      protected <T extends BaseTopicWrapper<T>> List<T> getUniqueTopicsFromSpecTopics(final List<ITopicNode> topics) {
          // Find all the unique topics first
          final Map<Integer, T> revisionToTopic = new HashMap<Integer, T>();
          for (final ITopicNode specTopic : topics) {
              final T topic = (T) specTopic.getTopic();
  
              // Find the Topic Revision
              final Integer topicRevision = topic.getTopicRevision();
  
              if (!revisionToTopic.containsKey(topicRevision)) {
                  revisionToTopic.put(topicRevision, topic);
              }
          }
  
          // Convert the revision to topic mapping to just a list of topics
          final List<T> retValue = new ArrayList<T>();
          for (final Entry<Integer, T> entry : revisionToTopic.entrySet()) {
              retValue.add(entry.getValue());
          }
  
          return retValue;
      }