code: @PostMapping("/saveattributemapping")
    public String saveAttributeMapping(
        @RequestParam() String mappingProjectId,
        @RequestParam() String target,
        @RequestParam() String source,
        @RequestParam() String targetAttribute,
        @RequestParam() String algorithm,
        @RequestParam() AlgorithmState algorithmState) {
      MappingProject mappingProject = mappingService.getMappingProject(mappingProjectId);
      MappingTarget mappingTarget = mappingProject.getMappingTarget(target);
      EntityMapping mappingForSource = mappingTarget.getMappingForSource(source);
      if (algorithm.isEmpty()) {
        mappingForSource.deleteAttributeMapping(targetAttribute);
      } else {
        AttributeMapping attributeMapping = mappingForSource.getAttributeMapping(targetAttribute);
        if (attributeMapping == null) {
          attributeMapping = mappingForSource.addAttributeMapping(targetAttribute);
        }
        attributeMapping.setAlgorithm(algorithm);
        attributeMapping.setAlgorithmState(algorithmState);
      }
      mappingService.updateMappingProject(mappingProject);
      return "redirect:"
          + getMappingServiceMenuUrl()
          + "/mappingproject/"
          + mappingProject.getIdentifier();
    }
docs: Adds a new {@link AttributeMapping} to an {@link EntityMapping}.
  
  @param mappingProjectId ID of the mapping project
  @param target name of the target entity
  @param source name of the source entity
  @param targetAttribute name of the target attribute
  @param algorithm the mapping algorithm
  @return redirect URL for the attributemapping