/** * This class is a little weird. The intent is that one casts an ILogicVarBundle * to one of these, and uses the get and set methods on the first and second members. * Directly accessing "get" and "set" for this class will fail for everything except * for agentId methods. * @author mds * */ public class PairLogicVarBundle implements ILogicVarBundle { boolean m_bFirstNeedsInitialization = false; boolean m_bSecondNeedsInitialization = false; ILogicVarBundle m_first; ILogicVarBundle m_second; public PairLogicVarBundle() { } public PairLogicVarBundle(ILogicVarBundle varsFirst, ILogicVarBundle varsSecond) { setFirst(varsFirst); setSecond(varsSecond); } public void setFirst(ILogicVarBundle varsFirst) { m_first = varsFirst; if(m_first != null && m_bFirstNeedsInitialization) { m_first.init(); m_bFirstNeedsInitialization = false; } } public void setSecond(ILogicVarBundle varsSecond) { m_second = varsSecond; if(m_second != null && m_bSecondNeedsInitialization) { m_second.init(); m_bSecondNeedsInitialization = false; } } public ILogicVarBundle accessFirst() { return m_first; } public ILogicVarBundle accessSecond() { return m_second; } /** * Calls init on members */ public void init() { if(m_first != null ) { m_first.init(); } else { m_bFirstNeedsInitialization = true; } if(m_second != null) { m_second.init(); } else { m_bSecondNeedsInitialization = true; } } public Boolean getBoolVar(Object refObject) { // Auto-generated method stub return null; } public int getId() { return m_first.getId(); } public Integer getIntVar(Object refObject) { // Auto-generated method stub return null; } /** * Removes any values indexed by refObject * @param refObject remove values associated with this. */ public void removeVar(Object refObject) { return; } public boolean insertBoolVar(Object refObject, boolean bValue) { // Auto-generated method stub return false; } public boolean insertIntVar(Object refObject, int nValue) { // Auto-generated method stub return false; } public ILogicVarBundle makeCopy() { return new PairLogicVarBundle(m_first.makeCopy(), m_second.makeCopy()); } public void setId(int nId) { if(m_first != null) { m_first.setId(nId); } if(m_second != null) { m_second.setId(nId); } } }