docs: private TopicWrapper getTopicForNewTopicNode(final DataProviderFactory providerFactory, final ITopicNode topicNode) {
          LOG.debug("Creating a new topic");
  
          final TopicProvider topicProvider = providerFactory.getProvider(TopicProvider.class);
          final TagProvider tagProvider = providerFactory.getProvider(TagProvider.class);
          final PropertyTagProvider propertyTagProvider = providerFactory.getProvider(PropertyTagProvider.class);
  
          // Create the topic entity.
          final TopicWrapper topic = topicProvider.newTopic();
  
          // Set the basics
          if (topicNode instanceof SpecTopic) {
              topic.setTitle(((SpecTopic) topicNode).getTitle());
          } else {
              topic.setTitle("Info");
          }
          topic.setDescription(topicNode.getDescription(true));
          topic.setXml("");
  
          // Write the type
          final TagWrapper tag;
          if (topicNode instanceof SpecTopic) {
              tag = tagProvider.getTagByName(((SpecTopic) topicNode).getType());
          } else {
              tag = tagProvider.getTag(serverEntities.getInfoTagId());
          }
          if (tag == null) {
              log.error(String.format(ProcessorConstants.ERROR_TYPE_NONEXIST_MSG, topicNode.getLineNumber(), topicNode.getText()));
              return null;
          }
  
          // Add the type to the topic
          topic.setTags(tagProvider.newTagCollection());
          topic.getTags().addNewItem(tag);
  
          // Add the added by property tag
          topic.setProperties(propertyTagProvider.newPropertyTagInTopicCollection(topic));
          final String assignedWriter = topicNode.getAssignedWriter(true);
          if (assignedWriter != null) {
              final PropertyTagWrapper addedByPropertyTag = propertyTagProvider.getPropertyTag(serverEntities.getAddedByPropertyTagId());
              final PropertyTagInTopicWrapper addedByProperty = propertyTagProvider.newPropertyTagInTopic(addedByPropertyTag, topic);
              addedByProperty.setValue(assignedWriter);
              topic.getProperties().addNewItem(addedByProperty);
          }
  
          return topic;
      }