All Frameworks  Class Hierarchy  This Framework  Previous  Indexes

KnowledgeInterfaces Interface CATIVisitor

System.IUnknown
  |
  +---System.IDispatch
    |
    +---System.CATBaseUnknown
      |
      +---CATIVisitor
 

Usage: you can reimplement this interface by deriving the supplied CATVisitorAdapter adapter class.


interface CATIVisitor

Interface dedicated to implementing a visitor pattern.
Role: The visitor performs operations on objects submitted by a provider (cf. Design Patterns by the Gang of Four, Addison-Wesley, chapter 5 "Visitor").
The provider scans recursively a structure and submit objects to the visitor. The visitor returns a result code indicating if the scan should continue or not.
It provides performance improvements over the method consisting in creating a list of interesting elements and then performing operations on them.

BOA information: this interface CAN be implemented using the BOA (Basic Object Adapter). To know more about the BOA, refer to the CAA Encyclopedia home page. Click Middleware at the bottom left, then click the Object Modeler tab page. Several articles deal with the BOA.


Method Index


o SpecialDataNeeded()
In some cases, special data is needed to be visited.
o Visit(CATBaseUnknown*)
Operates on the submitted object and returns a continuation code.
o VisitPublisherForRecursion(CATIParmPublisher_var&)
For optimization purpose.

Methods


o SpecialDataNeeded
public virtual const CATListOfCATUnicodeString* SpecialDataNeeded()= 0
In some cases, special data is needed to be visited.
Returns:
NULL if no special data is to be visited, else a list of strings containing format specifications (these formats have to be discussed between callers and providers)
o Visit
public virtual HRESULT Visit(CATBaseUnknown* iInstance)=0
Operates on the submitted object and returns a continuation code.
Parameters:
iInstance
Object to be performed on.
Returns:
S_OK to continue the scan, E_FAIL to stop.
o VisitPublisherForRecursion
public virtual HRESULT VisitPublisherForRecursion( const CATIParmPublisher_var& publisher) = 0
For optimization purpose. if VisitChildren is called with recursive argument, allows to control if given publisher is to be visited
Parameters:
the
tested publisher
Returns:
S_OK if the publisher is to be visited, E_FAIL else

This object is included in the file: CATIVisitor.h
If needed, your Imakefile.mk should include the module: KnowledgeItf

Copyright © 2003, Dassault Systèmes. All rights reserved.