code: public void write(final ComponentDocumentationWrapper componentWrapper, final OutputStream outputStream)
              throws IOException {
  
          final Map<String, Object> data = new HashMap<>();
  
          try {
              data.put("breadcrumbs", _breadcrumbs);
              data.put("component", componentWrapper);
  
              {
                  final Set<ConfiguredPropertyDescriptor> configuredProperties =
                          componentWrapper.getComponentDescriptor().getConfiguredProperties();
                  final List<ConfiguredPropertyDescriptor> properties = new ArrayList<>(configuredProperties);
                  final List<ConfiguredPropertyDocumentationWrapper> propertyList = new ArrayList<>();
                  for (final ConfiguredPropertyDescriptor property : properties) {
                      final HiddenProperty hiddenProperty = property.getAnnotation(HiddenProperty.class);
                      final Deprecated deprecatedProperty = property.getAnnotation(Deprecated.class);
  
                      // we do not show hidden or deprecated properties in docs
                      if ((hiddenProperty == null || hiddenProperty.hiddenForLocalAccess() == false)
                              && deprecatedProperty == null) {
                          final ConfiguredPropertyDocumentationWrapper wrapper =
                                  new ConfiguredPropertyDocumentationWrapper(property);
                          propertyList.add(wrapper);
                      }
                  }
  
                  data.put("properties", propertyList);
              }
  
              /* Write data to a file */
              final Writer out = new OutputStreamWriter(outputStream);
              _template.process(data, out);
              out.flush();
              out.close();
          } catch (final TemplateException e) {
              throw new IllegalStateException("Unexpected templare exception", e);
          }
      }
docs: Creates the reference documentation for a {@link Component}.
  
  @param componentWrapper
  the {@link ComponentDocumentationWrapper} of the
  {@link Component} of interest.
  @param outputStream
  the target {@link OutputStream} to write to
  @throws IOException