blob: 130b60b6d12694992ed881645cb7b0b94fd16b4d [file] [log] [blame]
package aQute.bnd.build.model.conversions;
import java.util.*;
import java.util.Map.Entry;
import aQute.lib.osgi.*;
import aQute.libg.header.*;
import aQute.libg.tuple.*;
public class ClauseListConverter<R> implements Converter<List<R>,String> {
private final Converter< ? extends R, ? super Pair<String,Attrs>> itemConverter;
public ClauseListConverter(Converter< ? extends R, ? super Pair<String,Attrs>> itemConverter) {
this.itemConverter = itemConverter;
}
public List<R> convert(String input) throws IllegalArgumentException {
List<R> result = new ArrayList<R>();
Parameters header = new Parameters(input);
for (Entry<String,Attrs> entry : header.entrySet()) {
String key = Processor.removeDuplicateMarker(entry.getKey());
Pair<String,Attrs> pair = Pair.newInstance(key, entry.getValue());
result.add(itemConverter.convert(pair));
}
return result;
}
}