SourceForge.net Logo
Classes | Public Types | Public Member Functions | Static Public Attributes | List of all members
StaticAnalysis Class Reference

Records access to various parts of the context during static resolution. More...

#include <StaticAnalysis.hpp>

Classes

class  VarEntry
 

Public Types

enum  Properties {
  DOCORDER = 0x001, PEER = 0x002, SUBTREE = 0x004, GROUPED = 0x008,
  SAMEDOC = 0x010, ONENODE = 0x020, SELF = 0x040, UNDEFINEDVAR = 0x080
}
 Properties that allow optimisation regarding sorting or not. More...
 

Public Member Functions

 StaticAnalysis (XPath2MemoryManager *memMgr)
 
 StaticAnalysis (const StaticAnalysis &o, XPath2MemoryManager *memMgr)
 
void copy (const StaticAnalysis &o)
 
void release ()
 
void clear ()
 Clears all the information in this StaticAnalysis. More...
 
void clearExceptType ()
 
void forceNoFolding (bool value)
 Overrides all the other flags, and never allows this sub-expression to be constant folded. More...
 
bool isNoFoldingForced () const
 
void contextItemUsed (bool value)
 
void contextPositionUsed (bool value)
 
void contextSizeUsed (bool value)
 
bool isContextItemUsed () const
 
bool isContextPositionUsed () const
 
bool isContextSizeUsed () const
 
bool areContextFlagsUsed () const
 Returns true if any of the context item flags have been used. More...
 
void currentTimeUsed (bool value)
 
void implicitTimezoneUsed (bool value)
 
void availableDocumentsUsed (bool value)
 
void availableCollectionsUsed (bool value)
 
bool areDocsOrCollectionsUsed () const
 
void variableUsed (const XMLCh *namespaceURI, const XMLCh *name)
 
bool removeVariable (const XMLCh *namespaceURI, const XMLCh *name)
 
bool isVariableUsed (const XMLCh *namespaceURI, const XMLCh *name) const
 
bool isVariableUsed () const
 
VarEntry ** variablesUsed () const
 
void add (const StaticAnalysis &o)
 Sets the members of this StaticAnalysis from the given StaticAnalysis. More...
 
void addExceptContextFlags (const StaticAnalysis &o)
 
void addExceptVariable (const XMLCh *namespaceURI, const XMLCh *name, const StaticAnalysis &o)
 
bool isUsed () const
 Returns true if flags are set, or variables have been used. More...
 
bool isUsedExceptContextFlags () const
 
void creative (bool value)
 
bool isCreative () const
 
void updating (bool value)
 
bool isUpdating () const
 
void possiblyUpdating (bool value)
 
bool isPossiblyUpdating () const
 
unsigned int getProperties () const
 
void setProperties (unsigned int props)
 
const StaticTypegetStaticType () const
 
StaticTypegetStaticType ()
 
std::string toString () const
 

Static Public Attributes

static const int HASH_SIZE = 13
 

Detailed Description

Records access to various parts of the context during static resolution.

Member Enumeration Documentation

Properties that allow optimisation regarding sorting or not.

The values are OR'd as flags, so they must be distinct bits

Enumerator
DOCORDER 

Results are returned in document order.

PEER 

Results do not appear in the descendants of other results.

SUBTREE 

Results are members of the set of descendants of the context node.

GROUPED 

Results are grouped by the document they come from.

SAMEDOC 

Results are from the same document as the context node.

ONENODE 

Only ever returns one node.

SELF 

Only ever returns the context node.

UNDEFINEDVAR 

This is a variable that has been undefined.

Constructor & Destructor Documentation

StaticAnalysis::StaticAnalysis ( XPath2MemoryManager memMgr)
StaticAnalysis::StaticAnalysis ( const StaticAnalysis o,
XPath2MemoryManager memMgr 
)

Member Function Documentation

void StaticAnalysis::add ( const StaticAnalysis o)

Sets the members of this StaticAnalysis from the given StaticAnalysis.

void StaticAnalysis::addExceptContextFlags ( const StaticAnalysis o)
void StaticAnalysis::addExceptVariable ( const XMLCh *  namespaceURI,
const XMLCh *  name,
const StaticAnalysis o 
)
bool StaticAnalysis::areContextFlagsUsed ( ) const

Returns true if any of the context item flags have been used.

bool StaticAnalysis::areDocsOrCollectionsUsed ( ) const
void StaticAnalysis::availableCollectionsUsed ( bool  value)
void StaticAnalysis::availableDocumentsUsed ( bool  value)
void StaticAnalysis::clear ( )

Clears all the information in this StaticAnalysis.

void StaticAnalysis::clearExceptType ( )
void StaticAnalysis::contextItemUsed ( bool  value)
void StaticAnalysis::contextPositionUsed ( bool  value)
void StaticAnalysis::contextSizeUsed ( bool  value)
void StaticAnalysis::copy ( const StaticAnalysis o)
void StaticAnalysis::creative ( bool  value)
void StaticAnalysis::currentTimeUsed ( bool  value)
void StaticAnalysis::forceNoFolding ( bool  value)

Overrides all the other flags, and never allows this sub-expression to be constant folded.

unsigned int StaticAnalysis::getProperties ( ) const
const StaticType& StaticAnalysis::getStaticType ( ) const
StaticType& StaticAnalysis::getStaticType ( )
void StaticAnalysis::implicitTimezoneUsed ( bool  value)
bool StaticAnalysis::isContextItemUsed ( ) const
bool StaticAnalysis::isContextPositionUsed ( ) const
bool StaticAnalysis::isContextSizeUsed ( ) const
bool StaticAnalysis::isCreative ( ) const
bool StaticAnalysis::isNoFoldingForced ( ) const
bool StaticAnalysis::isPossiblyUpdating ( ) const
bool StaticAnalysis::isUpdating ( ) const
bool StaticAnalysis::isUsed ( ) const

Returns true if flags are set, or variables have been used.

bool StaticAnalysis::isUsedExceptContextFlags ( ) const
bool StaticAnalysis::isVariableUsed ( const XMLCh *  namespaceURI,
const XMLCh *  name 
) const
bool StaticAnalysis::isVariableUsed ( ) const
void StaticAnalysis::possiblyUpdating ( bool  value)
void StaticAnalysis::release ( )
bool StaticAnalysis::removeVariable ( const XMLCh *  namespaceURI,
const XMLCh *  name 
)
void StaticAnalysis::setProperties ( unsigned int  props)
std::string StaticAnalysis::toString ( ) const
void StaticAnalysis::updating ( bool  value)
VarEntry** StaticAnalysis::variablesUsed ( ) const
void StaticAnalysis::variableUsed ( const XMLCh *  namespaceURI,
const XMLCh *  name 
)

Member Data Documentation

const int StaticAnalysis::HASH_SIZE = 13
static

The documentation for this class was generated from the following file: