// This file is generated by WOK (CPPExt).
// Please do not edit this file; modify original file instead.
// The copyright and license terms as defined for the original file apply to 
// this header file considered to be the "object code" form of the original source.

#ifndef _Expr_SingleRelation_HeaderFile
#define _Expr_SingleRelation_HeaderFile

#include <Standard.hxx>
#include <Standard_DefineHandle.hxx>
#include <Handle_Expr_SingleRelation.hxx>

#include <Handle_Expr_GeneralExpression.hxx>
#include <Expr_GeneralRelation.hxx>
#include <Standard_Boolean.hxx>
#include <Standard_Integer.hxx>
#include <Handle_Expr_GeneralRelation.hxx>
#include <Handle_Expr_NamedUnknown.hxx>
class Expr_GeneralExpression;
class Standard_OutOfRange;
class Expr_GeneralRelation;
class Expr_NamedUnknown;



class Expr_SingleRelation : public Expr_GeneralRelation
{

public:

  
  //! Defines the first member of the relation
  Standard_EXPORT   void SetFirstMember (const Handle(Expr_GeneralExpression)& exp) ;
  
  //! Defines the second member of the relation
  Standard_EXPORT   void SetSecondMember (const Handle(Expr_GeneralExpression)& exp) ;
  
  //! Returns the first member of the relation
  Standard_EXPORT   Handle(Expr_GeneralExpression) FirstMember()  const;
  
  //! Returns the second member of the relation
  Standard_EXPORT   Handle(Expr_GeneralExpression) SecondMember()  const;
  
  //! Tests if <me> is linear between its NamedUnknowns.
  Standard_EXPORT   Standard_Boolean IsLinear()  const;
  
  //! Returns the number of relations contained in <me>.
  Standard_EXPORT   Standard_Integer NbOfSubRelations()  const;
  
  //! Returns the number of SingleRelations contained in
  //! <me> (Always 1).
  Standard_EXPORT   Standard_Integer NbOfSingleRelations()  const;
  
  //! Returns the relation denoted by <index> in <me>.
  //! An exception is raised if index is out of range.
  Standard_EXPORT   Handle(Expr_GeneralRelation) SubRelation (const Standard_Integer index)  const;
  
  //! Tests if <me> contains <exp>.
  Standard_EXPORT   Standard_Boolean Contains (const Handle(Expr_GeneralExpression)& exp)  const;
  
  //! Replaces all occurences of <var> with <with> in <me>.
  Standard_EXPORT   void Replace (const Handle(Expr_NamedUnknown)& var, const Handle(Expr_GeneralExpression)& with) ;




  DEFINE_STANDARD_RTTI(Expr_SingleRelation)

protected:




private: 


  Handle(Expr_GeneralExpression) myFirstMember;
  Handle(Expr_GeneralExpression) mySecondMember;


};







#endif // _Expr_SingleRelation_HeaderFile
