@Override
  public Verdict applyRule(
      RestOperationTypeEnum theOperation,
      RequestDetails theRequestDetails,
      IBaseResource theInputResource,
      IIdType theInputResourceId,
      IBaseResource theOutputResource,
      IRuleApplier theRuleApplier) {

    if (theInputResourceId != null) {
      return null;
    }

    if (theOperation == myOperationType) {
      switch (myAppliesTo) {
        case ALL_RESOURCES:
          break;
        case TYPES:
          if (theInputResource == null || !myAppliesToTypes.contains(theInputResource.getClass())) {
            return null;
          }
          break;
      }

      if (theRequestDetails.getConditionalUrl(myOperationType) == null) {
        return null;
      }

      return newVerdict();
    }

    return null;
  }