code: public void addCapabilityRequirements(OperationContext context, Resource resource, ModelNode attributeValue) {
          @SuppressWarnings("deprecation")
          CapabilityReferenceRecorder refRecorder = getReferenceRecorder();
          if (refRecorder != null) {
              // We can't process expressions
              if (attributeValue.getType() != ModelType.EXPRESSION) {
                  ModelNode value = attributeValue.isDefined() ? attributeValue : (defaultValue != null) ? defaultValue : new ModelNode();
                  refRecorder.addCapabilityRequirements(context, resource, name, value.isDefined() ? value.asString() : null);
              }
          }
      }
docs: Based on the given attribute value, add capability requirements. If this definition
  is for an attribute whose value is or contains a reference to the name of some capability,
  this method should record the addition of a requirement for the capability.
  <p>
  This is a no-op in this base class. Subclasses that support attribute types that can represent
  capability references should override this method.
  @param context the operation context
  @param resource
  @param attributeValue the value of the attribute described by this object