// SPDX-License-Identifier: BSD-3-Clause package org.islandoftex.texplate.model.handlers; import java.util.Arrays; import java.util.stream.Collectors; /** * Implements a CSV list handler. * * @version 1.0 * @since 1.0 */ public class CSVListHandler implements Handler { /** * Applies the conversion to the string. * * @param string The string. * @return A list. */ @Override public Object apply(String string) { return Arrays.stream(string.split(",(?=(?:[^\"]*\"" + "[^\"]*\")*[^\"]*$)")) .map(String::trim) .filter(s -> !s.isEmpty()) .collect(Collectors.toList()); } }