001package com.plivo.api.serializers; 002 003import javax.xml.bind.annotation.adapters.XmlAdapter; 004import java.util.Arrays; 005import java.util.List; 006import java.util.stream.Collectors; 007 008public class DelimitedListXMLSerializer extends XmlAdapter<String, List<String>> { 009 010 private final String delimiter; 011 012 DelimitedListXMLSerializer(String delimiter) { 013 this.delimiter = delimiter; 014 } 015 016 DelimitedListXMLSerializer() { 017 this(","); 018 } 019 020 @Override 021 public List<String> unmarshal(String v) throws Exception { 022 if (v == null) { 023 throw new IllegalArgumentException("cannot be null"); 024 } 025 return Arrays.asList(v.split(delimiter)); 026 } 027 028 @Override 029 public String marshal(List<String> v) throws Exception { 030 return v.stream().map(String::trim).collect(Collectors.joining(delimiter)); 031 } 032}