
aQute.bnd.osgi.resource.ResourceBuilder Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of bndlib Show documentation
Show all versions of bndlib Show documentation
The bndlib project is a general library to be used with OSGi bundles. It contains
lots of cool functionality that calculates dependencies, etc.
The newest version!
package aQute.bnd.osgi.resource;
import java.util.*;
import org.osgi.resource.*;
public class ResourceBuilder {
private final ResourceImpl resource = new ResourceImpl();
private final List capabilities = new LinkedList();
private final List requirements = new LinkedList();
private boolean built = false;
public ResourceBuilder addCapability(Capability capability) {
CapReqBuilder builder = CapReqBuilder.clone(capability);
return addCapability(builder);
}
public ResourceBuilder addCapability(CapReqBuilder builder) {
if (built)
throw new IllegalStateException("Resource already built");
Capability cap = builder.setResource(resource).buildCapability();
capabilities.add(cap);
return this;
}
public ResourceBuilder addRequirement(Requirement requirement) {
CapReqBuilder builder = CapReqBuilder.clone(requirement);
return addRequirement(builder);
}
public ResourceBuilder addRequirement(CapReqBuilder builder) {
if (built)
throw new IllegalStateException("Resource already built");
Requirement req = builder.setResource(resource).buildRequirement();
requirements.add(req);
return this;
}
public Resource build() {
if (built)
throw new IllegalStateException("Resource already built");
built = true;
resource.setCapabilities(capabilities);
resource.setRequirements(requirements);
return resource;
}
public List getCapabilities() {
return capabilities;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy