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; }