/* * Copyright (c) 2001, DecisionSoft Limited All rights reserved. * Please see LICENSE.TXT for more information. */ /* If function */ #ifndef _DATAITEMIF_HPP #define _DATAITEMIF_HPP #include #include /** If function. */ class PATHAN_EXPORT DataItemIf : public DataItemImpl { public: DataItemIf(DataItem* test, DataItem* whenTrue, DataItem* whenFalse, XPath2MemoryManager* memMgr); /** tests first argument, on truth evaluate 2nd arguement, on falsehood evaluate 3rd argument **/ Sequence collapseTreeInternal(DynamicContext* context, int flags=0) const; /** * Called during static analysis to determine if statically correct. If * not an appropriate error is thrown. */ virtual DataItem* staticResolution(StaticContext *context, StaticResolutionContext *src); const DataItem *getTest() const; const DataItem *getWhenTrue() const; const DataItem *getWhenFalse() const; void setTest(DataItem *item); void setWhenTrue(DataItem *item); void setWhenFalse(DataItem *item); protected: DataItem* _test,* _whenTrue,* _whenFalse; }; #endif // _DATAITEMIF_HPP