Create an Individual Storage Requirement

The following example builds a property instance for a capability. The property instance represents a single storage requirement.
The code performs the following steps.
  1. Verifies that the capability exists.
  2. Creates a property instance for the requirement (
    PbmCapabilityPropertyInstance
    ).
  3. Creates a capability constraint for the property instance (
    PbmCapabilityConstraintInstance
    ).
  4. Create a capability instance for the constraint and add the subprofile (rule) to the capability.
PbmCapabilityInstance buildCapability(String capabilityName, Object value, List<PbmCapabilityMetadataPerCategory> metadata) throws InvalidArgumentFaultMsg { // Retrieve the metadata for the capability (stripeWidth) PbmCapabilityMetadata capabilityMeta = PbmUtil.getCapabilityMeta(capabilityName, metadata); if (capabilityMeta == null) throw new InvalidArgumentFaultMsg("Specified Capability does not exist", null); // Create a New Property Instance based on the Stripe Width Capability PbmCapabilityPropertyInstance prop = new PbmCapabilityPropertyInstance(); prop.setId(capabilityName); prop.setValue(value); // Associate Property Instance with a Rule (subprofile) PbmCapabilityConstraintInstance rule = new PbmCapabilityConstraintInstance(); rule.getPropertyInstance().add(prop); // Associate Rule (subprofile) with a Capability Instance PbmCapabilityInstance capability = new PbmCapabilityInstance(); capability.setId(capabilityMeta.getId()); capability.getConstraint().add(rule); return capability; }