docs: public static AuthorInformation getAuthorInformation(final DataProviderFactory providerFactory,
              final ServerEntitiesWrapper serverEntities, final Integer authorId, final Integer revision) {
          final AuthorInformation authInfo = new AuthorInformation();
          authInfo.setAuthorId(authorId);
          TagWrapper tag = null;
          try {
              tag = providerFactory.getProvider(TagProvider.class).getTag(authorId);
          } catch (NotFoundException e) {
              tag = providerFactory.getProvider(TagProvider.class).getTag(authorId, revision);
          }
          if (tag != null && tag.getProperty(serverEntities.getFirstNamePropertyTagId()) != null && tag.getProperty(
                  serverEntities.getSurnamePropertyTagId()) != null) {
              authInfo.setFirstName(tag.getProperty(serverEntities.getFirstNamePropertyTagId()).getValue());
              authInfo.setLastName(tag.getProperty(serverEntities.getSurnamePropertyTagId()).getValue());
              if (tag.getProperty(serverEntities.getEmailPropertyTagId()) != null) {
                  authInfo.setEmail(tag.getProperty(serverEntities.getEmailPropertyTagId()).getValue());
              }
              if (tag.getProperty(serverEntities.getOrganizationPropertyTagId()) != null) {
                  authInfo.setOrganization(tag.getProperty(serverEntities.getOrganizationPropertyTagId()).getValue());
              }
              if (tag.getProperty(serverEntities.getOrganizationDivisionPropertyTagId()) != null) {
                  authInfo.setOrgDivision(tag.getProperty(serverEntities.getOrganizationDivisionPropertyTagId()).getValue());
              }
              return authInfo;
          }
          return null;
      }