protected boolean couldOfferApplyToFulfillmentGroup(
      Offer offer, PromotableFulfillmentGroup fulfillmentGroup) {
    boolean appliesToItem = false;

    OfferRule rule = null;
    OfferOfferRuleXref ruleXref =
        offer.getOfferMatchRulesXref().get(OfferRuleType.FULFILLMENT_GROUP.getType());
    if (ruleXref != null && ruleXref.getOfferRule() != null) {
      rule = ruleXref.getOfferRule();
    }

    if (rule != null && rule.getMatchRule() != null) {
      HashMap<String, Object> vars = new HashMap<String, Object>();
      fulfillmentGroup.updateRuleVariables(vars);
      Boolean expressionOutcome = executeExpression(rule.getMatchRule(), vars);
      if (expressionOutcome != null && expressionOutcome) {
        appliesToItem = true;
      }
    } else {
      appliesToItem = true;
    }

    return appliesToItem;
  }