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 }