#ifndef VLNLPCAUSALLINK_HEADER #define VLNLPCAUSALLINK_HEADER 1 //////////////////////////////////////////////////////////// //! author="Charles Galambos" //! date="12/12/96" //! docentry="Logic.Planning" //! rcsid="$Id: NLPCausalLink.hh,v 1.10 1999/09/16 13:34:11 ees1cg Exp $" //! file="amma/Logic/PlanNL/NLPCausalLink.hh" //! lib=VLPlanNL #include "amma/Logic2/LMinTerm.hh" //! userlevel=Develop //: Information stored in a causal link. class VLNLPCausalLink { public: inline VLNLPCausalLink(); //: Default, Constructor. inline VLNLPCausalLink(VLMinTermC &Cond); //: Constructor. inline VLNLPCausalLink(const VLNLPCausalLink &Oth); //: Copy constructor. inline const VLNLPCausalLink &operator=(const VLNLPCausalLink &Oth); //: Assigment. inline VLMinTermC &Cond(); //: Access expression. inline const VLMinTermC &Cond() const; //: Constant Access to an expression. BooleanT IsStepOrder() { return !aCond.IsValid(); } //: Step order ? StringC GetName() const; //: Get name of link. void Dump(void) const; //: Dump to stdout. private: VLMinTermC aCond; }; // Typedef to more standard name. typedef VLNLPCausalLink VLNLPCausalLinkC; /////////////////////////////// inline VLNLPCausalLink::VLNLPCausalLink() : aCond() {} /////////////////////////////// // Constructor. inline VLNLPCausalLink::VLNLPCausalLink(VLMinTermC &Cond) : aCond(Cond) {} /////////////////////////////// // Copy constructor. inline VLNLPCausalLink::VLNLPCausalLink(const VLNLPCausalLink &Oth) : aCond(Oth.aCond) {} /////////////////////////////// // Assigment. inline const VLNLPCausalLink &VLNLPCausalLink::operator=(const VLNLPCausalLink &Oth) { aCond = Oth.aCond; return *this; } /////////////////////////////// // Access expression. inline VLMinTermC &VLNLPCausalLink::Cond() { return aCond; } /////////////////////////////// // Constant Access to an expression. inline const VLMinTermC &VLNLPCausalLink::Cond() const { return aCond; } #endif