package org.adaptlab.chpir.android.survey.Rules; import org.adaptlab.chpir.android.survey.Models.Instrument; import org.adaptlab.chpir.android.survey.Models.Rule; /* * A rule that is passable. This means that it returns true if the rule as defined * is passed, and false if it is not. */ public abstract class PassableRule { private Rule mInstrumentRule; // Return true if passes defined rule, false otherwise. public abstract boolean passesRule(); // The failure message to return if the rule does not pass. public abstract String getFailureMessage(); /* * Cache the mInstrumentRule if it is found. */ protected Rule getInstrumentRule(Instrument instrument, Rule.RuleType ruleType) { if (mInstrumentRule == null) { mInstrumentRule = Rule.findByRuleTypeAndInstrument(ruleType, instrument); } return mInstrumentRule; } }