/* * OpenClinica is distributed under the * GNU Lesser General Public License (GNU LGPL). * For details see: http://www.openclinica.org/license * * Copyright 2003-2008 Akaza Research */ package org.akaza.openclinica.bean.rule; import org.akaza.openclinica.bean.admin.CRFBean; import org.akaza.openclinica.bean.core.AuditableEntityBean; import org.akaza.openclinica.bean.managestudy.StudyBean; import org.akaza.openclinica.bean.managestudy.StudyEventDefinitionBean; import org.akaza.openclinica.bean.rule.expression.ExpressionBean; import org.akaza.openclinica.bean.submit.CRFVersionBean; import org.akaza.openclinica.bean.submit.ItemBean; import org.akaza.openclinica.bean.submit.ItemGroupBean; import java.util.ArrayList; import java.util.List; /** * <p> RuleSetBean, the object that collects rules associated with study events. </p> * @author Krikor Krumlian */ public class RuleSetBean extends AuditableEntityBean { private static final long serialVersionUID = 1L; private StudyEventDefinitionBean studyEventDefinition; private StudyBean study; private CRFBean crf; private CRFVersionBean crfVersion; private List<RuleSetRuleBean> ruleSetRules; private ExpressionBean target; // transient properties private List<ExpressionBean> expressions; // itemGroup & item populated when RuleSets are retrieved private ItemGroupBean itemGroup; private ItemBean item; // originalTarget populated with same value as target. private ExpressionBean originalTarget; public void addRuleSetRule(RuleSetRuleBean ruleSetRuleBean) { if (this.ruleSetRules == null) this.ruleSetRules = new ArrayList<RuleSetRuleBean>(); ruleSetRuleBean.setRuleSetBean(this); ruleSetRules.add(ruleSetRuleBean); } public void addRuleSetRule(RuleBean ruleBean) { if (this.ruleSetRules == null) this.ruleSetRules = new ArrayList<RuleSetRuleBean>(); RuleSetRuleBean ruleSetRuleBean = new RuleSetRuleBean(); ruleSetRuleBean.setRuleBean(ruleBean); ruleSetRuleBean.setRuleSetBean(this); } public void addExpression(ExpressionBean expressionBean) { if (this.expressions == null) this.expressions = new ArrayList<ExpressionBean>(); expressions.add(expressionBean); } public String getStudyEventDefinitionName() { return getStudyEventDefinition().getName(); } public String getStudyEventDefinitionNameWithOID() { return getStudyEventDefinitionName() + " (" + getStudyEventDefinition().getOid() + ")"; } public String getCrfWithVersionName() { String crfVersionName = getCrfVersion() != null ? " - " + getCrfVersion().getName() : ""; String crfName = getCrf().getName(); return crfName + crfVersionName; } public String getCrfWithVersionNameWithOid() { String oid = getCrfVersion() != null ? getCrfVersion().getOid() : getCrf().getOid(); return getCrfWithVersionName() + " (" + oid + ")"; } public int getRuleSetRuleSize() { return this.ruleSetRules.size(); } public String getGroupLabel() { return getItemGroup().getName(); } public String getItemName() { return getItem().getName(); } public String getGroupLabelWithOid() { return getGroupLabel() + " (" + getItemGroup().getOid() + ")"; } public String getItemNameWithOid() { return getItemName() + " (" + getItem().getOid() + ")"; } // Getters & Setters public StudyEventDefinitionBean getStudyEventDefinition() { return studyEventDefinition; } public void setStudyEventDefinition(StudyEventDefinitionBean studyEventDefinition) { this.studyEventDefinition = studyEventDefinition; } public List<RuleSetRuleBean> getRuleSetRules() { return ruleSetRules; } public void setRuleSetRules(List<RuleSetRuleBean> ruleSetRuleAssignment) { this.ruleSetRules = ruleSetRuleAssignment; } public ExpressionBean getTarget() { return target; } public void setTarget(ExpressionBean target) { this.target = target; } public StudyBean getStudy() { return study; } public void setStudy(StudyBean study) { this.study = study; } public ItemGroupBean getItemGroup() { return itemGroup; } public void setItemGroup(ItemGroupBean itemGroup) { this.itemGroup = itemGroup; } public ItemBean getItem() { return item; } public void setItem(ItemBean item) { this.item = item; } public CRFBean getCrf() { return crf; } public void setCrf(CRFBean crf) { this.crf = crf; } public CRFVersionBean getCrfVersion() { return crfVersion; } public void setCrfVersion(CRFVersionBean crfVersion) { this.crfVersion = crfVersion; } public List<ExpressionBean> getExpressions() { return expressions; } public void setExpressions(List<ExpressionBean> expressions) { this.expressions = expressions; } public ExpressionBean getOriginalTarget() { return originalTarget; } public void setOriginalTarget(ExpressionBean originalTarget) { this.originalTarget = originalTarget; } }