PathSegmentsConverter.java
package fr.avenirsesr.portfolio.declaredskill.infrastructure.adapter.converter;
import jakarta.persistence.AttributeConverter;
import jakarta.persistence.Converter;
import java.util.Arrays;
import java.util.List;
import java.util.regex.Pattern;
@Converter
public class PathSegmentsConverter implements AttributeConverter<List<String>, String> {
private static final String SEPARATOR = " > ";
@Override
public String convertToDatabaseColumn(List<String> pathSegments) {
if (pathSegments == null || pathSegments.isEmpty()) {
return null;
}
return String.join(SEPARATOR, pathSegments);
}
@Override
public List<String> convertToEntityAttribute(String dbData) {
if (dbData == null || dbData.isEmpty()) {
return List.of();
}
return Arrays.asList(dbData.split(Pattern.quote(SEPARATOR)));
}
}