/* * #%L * BroadleafCommerce Framework * %% * Copyright (C) 2009 - 2013 Broadleaf Commerce * %% * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * #L% */ package org.broadleafcommerce.core.offer.service.discount; import org.broadleafcommerce.core.offer.domain.OfferItemCriteria; import org.broadleafcommerce.core.offer.service.discount.domain.PromotableOrderItem; import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Set; /** * * @author jfischer * */ public class CandidatePromotionItems { protected HashMap<OfferItemCriteria, List<PromotableOrderItem>> candidateQualifiersMap = new HashMap<OfferItemCriteria, List<PromotableOrderItem>>(); protected HashMap<OfferItemCriteria, List<PromotableOrderItem>> candidateTargetsMap = new HashMap<OfferItemCriteria, List<PromotableOrderItem>>(); protected boolean isMatchedQualifier = false; protected boolean isMatchedTarget = false; public void addQualifier(OfferItemCriteria criteria, PromotableOrderItem item) { List<PromotableOrderItem> itemList = candidateQualifiersMap.get(criteria); if (itemList == null) { itemList = new ArrayList<PromotableOrderItem>(); candidateQualifiersMap.put(criteria, itemList); } itemList.add(item); } public void addTarget(OfferItemCriteria criteria, PromotableOrderItem item) { List<PromotableOrderItem> itemList = candidateTargetsMap.get(criteria); if (itemList == null) { itemList = new ArrayList<PromotableOrderItem>(); candidateTargetsMap.put(criteria, itemList); } itemList.add(item); } public boolean isMatchedQualifier() { return isMatchedQualifier; } public void setMatchedQualifier(boolean isMatchedCandidate) { this.isMatchedQualifier = isMatchedCandidate; } public HashMap<OfferItemCriteria, List<PromotableOrderItem>> getCandidateQualifiersMap() { return candidateQualifiersMap; } public HashMap<OfferItemCriteria, List<PromotableOrderItem>> getCandidateTargetsMap() { return candidateTargetsMap; } public boolean isMatchedTarget() { return isMatchedTarget; } public void setMatchedTarget(boolean isMatchedCandidate) { this.isMatchedTarget = isMatchedCandidate; } public Set<PromotableOrderItem> getAllCandidateTargets() { Set<PromotableOrderItem> promotableOrderItemSet = new HashSet<PromotableOrderItem>(); for (List<PromotableOrderItem> orderItems : getCandidateTargetsMap().values()) { promotableOrderItemSet.addAll(orderItems); } return promotableOrderItemSet; } }