Envision
A visual programming IDE for object-oriented languages
List of all members | Public Member Functions | Private Attributes
Model::ResolutionRequest Class Reference
Inheritance diagram for Model::ResolutionRequest:
OOModel::OOResolutionRequest

Public Member Functions

 ResolutionRequest ()=delete
 
template<typename T = void>
 ResolutionRequest (QSet< Node * > &result, const SymbolMatcher &&matcher, const Node *source, Node::FindSymbolDirection direction, Node::SymbolTypes symbolTypes, bool exhaustAllScopes)
 This constructor is used to capture an incorrect usage of matcher, which shouldn't be a temporary object. More...
 
 ResolutionRequest (QSet< Node * > &result, const SymbolMatcher &matcher, const Node *source, Node::FindSymbolDirection direction, Node::SymbolTypes symbolTypes, bool exhaustAllScopes)
 Represents a request for finding all nodes which define a symbol with a name matching matcher in the scope of a node. More...
 
virtual ~ResolutionRequest ()
 
virtual std::unique_ptr< ResolutionRequestclone () const
 
virtual std::unique_ptr< ResolutionRequestclone (const Node *source, const Node::FindSymbolDirection direction) const
 
virtual std::unique_ptr< ResolutionRequestclone (const Node *source, const Node::FindSymbolDirection direction, const bool exhaustAllScopes) const
 
virtual std::unique_ptr< ResolutionRequestclone (const Node::FindSymbolDirection direction) const
 
virtual std::unique_ptr< ResolutionRequestclone (const Node::FindSymbolDirection direction, const bool exhaustAllScopes) const
 
Node::FindSymbolDirection direction () const
 
bool exhaustAllScopes () const
 
const SymbolMatchermatcher () const
 
QSet< Node * > & result () const
 
const Nodesource () const
 
Node::SymbolTypes symbolTypes () const
 

Private Attributes

const Node::FindSymbolDirection direction_
 
const bool exhaustAllScopes_
 
const SymbolMatchermatcher_
 
QSet< Node * > & result_
 
const Nodesource_
 
const Node::SymbolTypes symbolTypes_
 

Constructor & Destructor Documentation

◆ ResolutionRequest() [1/3]

Model::ResolutionRequest::ResolutionRequest ( )
delete

◆ ResolutionRequest() [2/3]

Model::ResolutionRequest::ResolutionRequest ( QSet< Node * > &  result,
const SymbolMatcher matcher,
const Node source,
Node::FindSymbolDirection  direction,
Node::SymbolTypes  symbolTypes,
bool  exhaustAllScopes 
)
inline

Represents a request for finding all nodes which define a symbol with a name matching matcher in the scope of a node.

The source Node specifies what node should be used as a reference when determining what symbols are visible.

The direction specifies what search to perform.

The symbolTypes specifies what symbol types should be returned. If a symbol matches any of the requested types it will be returned.

If exhaustAllScopes is false, the search will halt as soon as symbols are found within a scope. This is useful when resolving links and it is important to find the "nearest" symbols that match with respect to scope. If exhaustAllScopes is true, the search will explore all scopes in corresponding to the provided mode. This is useful when symbolExp can match multiple symbols with different names (for example during auto completion list build up).

◆ ResolutionRequest() [3/3]

template<typename T >
Model::ResolutionRequest::ResolutionRequest ( QSet< Node * > &  result,
const SymbolMatcher &&  matcher,
const Node source,
Node::FindSymbolDirection  direction,
Node::SymbolTypes  symbolTypes,
bool  exhaustAllScopes 
)
inline

This constructor is used to capture an incorrect usage of matcher, which shouldn't be a temporary object.

◆ ~ResolutionRequest()

Model::ResolutionRequest::~ResolutionRequest ( )
virtual

Member Function Documentation

◆ clone() [1/5]

std::unique_ptr< ResolutionRequest > Model::ResolutionRequest::clone ( ) const
virtual

Reimplemented in OOModel::OOResolutionRequest.

◆ clone() [2/5]

std::unique_ptr< ResolutionRequest > Model::ResolutionRequest::clone ( const Node source,
const Node::FindSymbolDirection  direction 
) const
virtual

Reimplemented in OOModel::OOResolutionRequest.

◆ clone() [3/5]

std::unique_ptr< ResolutionRequest > Model::ResolutionRequest::clone ( const Node source,
const Node::FindSymbolDirection  direction,
const bool  exhaustAllScopes 
) const
virtual

Reimplemented in OOModel::OOResolutionRequest.

◆ clone() [4/5]

std::unique_ptr< ResolutionRequest > Model::ResolutionRequest::clone ( const Node::FindSymbolDirection  direction) const
virtual

Reimplemented in OOModel::OOResolutionRequest.

◆ clone() [5/5]

std::unique_ptr< ResolutionRequest > Model::ResolutionRequest::clone ( const Node::FindSymbolDirection  direction,
const bool  exhaustAllScopes 
) const
virtual

Reimplemented in OOModel::OOResolutionRequest.

◆ direction()

Node::FindSymbolDirection Model::ResolutionRequest::direction ( ) const
inline

◆ exhaustAllScopes()

bool Model::ResolutionRequest::exhaustAllScopes ( ) const
inline

◆ matcher()

const SymbolMatcher & Model::ResolutionRequest::matcher ( ) const
inline

◆ result()

QSet< Node * > & Model::ResolutionRequest::result ( ) const
inline

◆ source()

const Node * Model::ResolutionRequest::source ( ) const
inline

◆ symbolTypes()

Node::SymbolTypes Model::ResolutionRequest::symbolTypes ( ) const
inline

Member Data Documentation

◆ direction_

const Node::FindSymbolDirection Model::ResolutionRequest::direction_
private

◆ exhaustAllScopes_

const bool Model::ResolutionRequest::exhaustAllScopes_
private

◆ matcher_

const SymbolMatcher& Model::ResolutionRequest::matcher_
private

◆ result_

QSet<Node*>& Model::ResolutionRequest::result_
private

◆ source_

const Node* Model::ResolutionRequest::source_
private

◆ symbolTypes_

const Node::SymbolTypes Model::ResolutionRequest::symbolTypes_
private