/* * Created on Sep 1, 2005 * * */ package org.akaza.openclinica.logic.masking; import org.akaza.openclinica.bean.masking.MaskingBean; import org.akaza.openclinica.bean.submit.SubjectBean; import org.akaza.openclinica.logic.core.BusinessEvaluator; import org.akaza.openclinica.logic.core.BusinessRule; import org.akaza.openclinica.logic.masking.rules.MaskSubjectDOBRule; import java.util.Iterator; /** * @author thickerson * * */ public class SubjectMaskingEvaluator extends BusinessEvaluator { protected MaskingBean mBean; public SubjectMaskingEvaluator(SubjectBean sb, MaskingBean mBean) { super(sb); assertRuleSet(); this.mBean = mBean; } @Override public void assertRuleSet() { // TODO accept a MaskingObject from a DAO and have a big if-then // chain???? // ruleSet.add(new maskDOBRule()); if (mBean.getRuleMap().containsKey("org.akaza.openclinica.logic.masking.rule.MaskSubjectDOBRule")) ruleSet.add(new MaskSubjectDOBRule()); } @Override protected void evaluateRuleSet() { // can modify this as necessary? tbh synchronized (this) { for (Iterator it = ruleSet.iterator(); it.hasNext();) { BusinessRule bRule = (BusinessRule) it.next(); if (bRule.isPropertyTrue(bRule.getClass().getName())) { bRule.doAction(businessObject); } } hasBeenUpdated = false; } } }