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.
- Verifies that the capability exists.
- Creates a property instance for the requirement (PbmCapabilityPropertyInstance).
- Creates a capability constraint for the property instance (PbmCapabilityConstraintInstance).
- 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; }