Classes | Public Types | Public Member Functions | Protected Member Functions | Protected Attributes

zeus::TXObjectPath Class Reference

#include <XObjectPath.h>

Inheritance diagram for zeus::TXObjectPath:
zeus::TZObject zeus::IZUnknown

List of all members.

Classes

struct  TypeToken

Public Types

enum  ETokenValue {
  etValueEnd = '\0', etValuePoint = '.', etValueSeperator = '/', etValueOpenBracket = '[',
  etValueCloseBracket = ']', etValueEquals = '=', etValueAttribute = '@', etValueSmi = '\''
}
enum  ETokenType {
  etTokenUnknown, etTokenRoot, etTokenParent, etTokenRecursive,
  etTokenObject
}

Public Member Functions

 TXObjectPath (IXObject *pObj)
virtual ~TXObjectPath ()
Retval getObject (const IString &rPath, IXObject *&rpObject)
Retval getObjects (const IString &rPath, IXObjectCollection *&pObjects)

Protected Member Functions

Retval findObject (IXObject &rBaseObject, IXObject *&rpResult)
Retval findObjects2 (IXObject &rBaseObject, TStack< TypeToken > &rTokens, TXObjectCollection &rResults)

Protected Attributes

TQueue< TypeTokenm_lstTokens
 Token Queue.

Detailed Description

Die Klasse TMOMPath dient als Navigationsklasse zum suchen von Module mittels des Pfad-Syntax von StuderWIN. Es kann absoltut (vom Root aus) gesucht werden, oder aber relativ zu dem im Konstruktor angegebenen Modul. Dabei gilt:
[/] ist die Bezeichnung fuer Root
[..] ist die Bezeichnung fuer den Parent
[Bezeichner] bezeichne das Modul
[/] ist das Trennzeichen zwischen den Bezeichner und [..] bzw [//]

Root::= "/"
Parent::= ".."
Bezeichner:= ASCII-Zeichen ohne "." und "/"
Bezeichners:= Bezeichners "/" | Bezeichner
Parents::= Parents "/" | Parent
AbsString::= Root Bezeichners | Root
RelString::= Bezeichners | Parents | Parents Bezeichners

Pfad:== AbsString | RelString


Member Enumeration Documentation

Enumerator:
etTokenUnknown 

Unknown token

etTokenRoot 

Root object must be found

etTokenParent 

Parent object must be found

etTokenRecursive 

Find all objects with apply to the path recursivly

etTokenObject 

object must be found

Enumerator:
etValueEnd 
etValuePoint 
etValueSeperator 
etValueOpenBracket 
etValueCloseBracket 
etValueEquals 
etValueAttribute 
etValueSmi 

Constructor & Destructor Documentation

TXObjectPath::TXObjectPath ( IXObject pObj )

Creates the XObject Path

TXObjectPath::~TXObjectPath (  ) [virtual]

Destroys the object path


Member Function Documentation

Retval TXObjectPath::findObject ( IXObject rBaseObject,
IXObject *&  rpResult 
) [protected]

This method searches for a single object which was selected by the xobject path.

Parameters:
rBaseObject: base object for further search
rpResult: return parameter contains the selected object
Return values:
RET_NOERROR,:object found
RET_REQUEST_FAILED: Invalid xobject path
Retval TXObjectPath::findObjects2 ( IXObject rBaseObject,
TStack< TypeToken > &  rTokenList,
TXObjectCollection rResults 
) [protected]

This method searches for objects which are selectable by the xobject path It will return a collection of all objects found.

Parameters:
rBaseObject: base object for further search
rTokenList: temporary token list
rResults: return parameter contains the list
Return values:
RET_NOERROR,:Collection found
RET_REQUEST_FAILED: Invalid xobject path
Retval TXObjectPath::getObject ( const IString rPath,
IXObject *&  rpObject 
)

Suchen nach einem Modul

Parameters:
rPath: Pfad des Moduls
rpObject: Rueckgabeparameter
Return values:
NULL: Das Modul mit diesem Pfad existiert nicht
Pointer: Zeiger auf das gefundene Modul
Retval TXObjectPath::getObjects ( const IString rPath,
IXObjectCollection *&  rpObjects 
)

This method searches for xobject applying the path

Parameters:
rPath: Path of objects
rpObjects: return parameter
Return values:
RET_NOERROR: Objects returned
RET_REQUEST_FAILED: Could not find an object

Member Data Documentation

Token Queue.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines


Written by Benjamin Hadorn http://www.xatlantis.ch.
Last change made on Sun Jan 22 2012 15:28:42