package nl.ipo.cds.etl.operations.transform; import nl.ipo.cds.attributemapping.operations.annotation.Execute; import nl.ipo.cds.attributemapping.operations.annotation.Input; import nl.ipo.cds.attributemapping.operations.annotation.MappingOperation; @MappingOperation (propertiesClass = JoinStringTransform.Settings.class) public class JoinStringTransform { @Execute public String execute (final @Input("list") String[] input, final Settings settings) { final StringBuilder builder = new StringBuilder (settings.getPrefix ()); final String separator = settings.getSeparator (); String s = ""; if (input != null) { for (final String value: input) { builder.append (s); builder.append (value); s = separator; } } builder.append (settings.getPostfix ()); return builder.toString (); } public static class Settings { private String prefix = ""; private String postfix = ""; private String separator = ","; public String getSeparator() { return separator; } public void setSeparator(String separator) { assert (separator != null); this.separator = separator; } public String getPrefix() { return prefix; } public void setPrefix(String prefix) { assert (prefix != null); this.prefix = prefix; } public String getPostfix() { return postfix; } public void setPostfix(String postfix) { assert (postfix != null); this.postfix = postfix; } } }