View Javadoc
1   package de.dlr.shepard.common.util;
2   
3   import jakarta.persistence.AttributeConverter;
4   import jakarta.persistence.Converter;
5   import java.util.ArrayList;
6   import java.util.Arrays;
7   import java.util.List;
8   import java.util.regex.Pattern;
9   
10  @Converter
11  public class StringListConverter implements AttributeConverter<List<String>, String> {
12  
13    public static final String SPLIT_CHAR = "|";
14  
15    @Override
16    public String convertToDatabaseColumn(List<String> stringList) {
17      return stringList != null ? String.join(SPLIT_CHAR, stringList) : "";
18    }
19  
20    @Override
21    public List<String> convertToEntityAttribute(String string) {
22      return (string == null || string.isBlank())
23        ? new ArrayList<String>()
24        : new ArrayList<String>(Arrays.asList(string.split(Pattern.quote(SPLIT_CHAR))));
25    }
26  }