docs: @Transactional
      @Override
      public void importData(ExternalStylesheetDescriptor data) {
          final String stylesheetName = data.getName();
          final String uri = data.getUri();
  
          IStylesheetDescriptor stylesheetDescriptor =
                  this.stylesheetDescriptorDao.getStylesheetDescriptorByName(stylesheetName);
          if (stylesheetDescriptor == null) {
              stylesheetDescriptor =
                      this.stylesheetDescriptorDao.createStylesheetDescriptor(stylesheetName, uri);
          } else {
              stylesheetDescriptor.setStylesheetResource(uri);
          }
  
          stylesheetDescriptor.setUrlNodeSyntaxHelperName(data.getUrlSyntaxHelper());
          stylesheetDescriptor.setDescription(data.getDescription());
  
          final List<ExternalOutputPropertyDescriptor> extOutputProperties =
                  data.getOutputProperties();
          final List<IOutputPropertyDescriptor> outputPropertyDescriptors =
                  new ArrayList<IOutputPropertyDescriptor>(extOutputProperties.size());
          for (final ExternalOutputPropertyDescriptor extOutputProperty : extOutputProperties) {
              final String name = extOutputProperty.getName();
              final Scope scope = Scope.valueOf(extOutputProperty.getScope().name());
              final OutputPropertyDescriptorImpl outputPropertyDescriptor =
                      new OutputPropertyDescriptorImpl(name, scope);
              outputPropertyDescriptor.setDefaultValue(extOutputProperty.getDefaultValue());
              outputPropertyDescriptor.setDescription(extOutputProperty.getDescription());
  
              outputPropertyDescriptors.add(outputPropertyDescriptor);
          }
          stylesheetDescriptor.setOutputPropertyDescriptors(outputPropertyDescriptors);
  
          final List<ExternalStylesheetParameterDescriptor> extStylesheetParameters =
                  data.getStylesheetParameters();
          final List<IStylesheetParameterDescriptor> stylesheetParameterDescriptors =
                  new ArrayList<IStylesheetParameterDescriptor>(extOutputProperties.size());
          for (final ExternalStylesheetParameterDescriptor extStylesheetParameter :
                  extStylesheetParameters) {
              final String name = extStylesheetParameter.getName();
              final Scope scope = Scope.valueOf(extStylesheetParameter.getScope().name());
              final StylesheetParameterDescriptorImpl stylesheetParameterDescriptor =
                      new StylesheetParameterDescriptorImpl(name, scope);
              stylesheetParameterDescriptor.setDefaultValue(extStylesheetParameter.getDefaultValue());
              stylesheetParameterDescriptor.setDescription(extStylesheetParameter.getDescription());
  
              stylesheetParameterDescriptors.add(stylesheetParameterDescriptor);
          }
          stylesheetDescriptor.setStylesheetParameterDescriptors(stylesheetParameterDescriptors);
  
          final List<ExternalLayoutAttributeDescriptor> extLayoutAttributes =
                  data.getLayoutAttributes();
          final List<ILayoutAttributeDescriptor> layoutAttributeDescriptors =
                  new ArrayList<ILayoutAttributeDescriptor>(extOutputProperties.size());
          for (final ExternalLayoutAttributeDescriptor extLayoutAttribute : extLayoutAttributes) {
              final String name = extLayoutAttribute.getName();
              final Scope scope = Scope.valueOf(extLayoutAttribute.getScope().name());
              final LayoutAttributeDescriptorImpl layoutAttributeDescriptor =
                      new LayoutAttributeDescriptorImpl(name, scope);
              layoutAttributeDescriptor.setDefaultValue(extLayoutAttribute.getDefaultValue());
              layoutAttributeDescriptor.setDescription(extLayoutAttribute.getDescription());
              layoutAttributeDescriptor.setTargetElementNames(
                      new LinkedHashSet<String>(extLayoutAttribute.getTargetElements()));
  
              layoutAttributeDescriptors.add(layoutAttributeDescriptor);
          }
          stylesheetDescriptor.setLayoutAttributeDescriptors(layoutAttributeDescriptors);
  
          this.stylesheetDescriptorDao.updateStylesheetDescriptor(stylesheetDescriptor);
      }