All Downloads are FREE. Search and download functionalities are using the official Maven repository.

aQute.bnd.build.model.conversions.RequirementListConverter Maven / Gradle / Ivy

The newest version!
package aQute.bnd.build.model.conversions;

import java.util.Map.Entry;

import org.osgi.resource.Requirement;

import aQute.bnd.build.model.clauses.HeaderClause;
import aQute.bnd.osgi.resource.CapReqBuilder;

public class RequirementListConverter extends HeaderClauseListConverter {

	public RequirementListConverter() {
		super(new Converter() {
			@Override
			public Requirement convert(HeaderClause input) {
				if (input == null)
					return null;
				String namespace = input.getName();
				CapReqBuilder builder = new CapReqBuilder(namespace);
				for (Entry entry : input.getAttribs()
					.entrySet()) {
					String key = entry.getKey();
					if (key.endsWith(":")) {
						key = key.substring(0, key.length() - 1);
						builder.addDirective(key, entry.getValue());
					} else {
						try {
							builder.addAttribute(key, entry.getValue());
						} catch (Exception e) {
							throw new IllegalArgumentException(e);
						}
					}
				}
				return builder.buildSyntheticRequirement();
			}

			@Override
			public Requirement error(String msg) {
				CapReqBuilder builder = new CapReqBuilder(msg);
				return builder.buildSyntheticRequirement();
			}
		});
	}

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy