Visitor API Documentation

class Visitor[source]

Bases: ABC

Visitor interface declaring operations for different element types.

abstractmethod visit_element_a(element)[source]

Visit an ElementA instance.

Parameters:

element (ElementA) – The ElementA instance.

Return type:

None

abstractmethod visit_element_b(element)[source]

Visit an ElementB instance.

Parameters:

element (ElementB) – The ElementB instance.

Return type:

None

class Element[source]

Bases: ABC

Abstract base class for elements.

abstractmethod accept(visitor)[source]

Accept a Visitor.

Parameters:

visitor (Visitor) – The Visitor to accept.

Return type:

None

class ElementA[source]

Bases: Element

Concrete implementation of an element, ElementA.

operation_a()[source]

Perform ElementA-specific behavior.

Return type:

str

Returns:

A message describing the operation.

accept(visitor)[source]

Accept a Visitor.

Parameters:

visitor (Visitor) – The Visitor to accept.

Return type:

None

class ElementB[source]

Bases: Element

Concrete implementation of an element, ElementB.

operation_b()[source]

Perform ElementB-specific behavior.

Return type:

str

Returns:

A message describing the operation.

accept(visitor)[source]

Accept a Visitor.

Parameters:

visitor (Visitor) – The Visitor to accept.

Return type:

None

class ConcreteVisitorA[source]

Bases: Visitor

Concrete Visitor implementing specific operations for each element type.

visit_element_a(element)[source]

Visit an ElementA instance.

Parameters:

element (ElementA) – The ElementA instance to visit.

Return type:

None

visit_element_b(element)[source]

Visit an ElementB instance.

Parameters:

element (ElementB) – The ElementB instance to visit.

Return type:

None

class ConcreteVisitorB[source]

Bases: Visitor

Another Concrete Visitor with different operations for each element type.

visit_element_a(element)[source]

Visit an ElementA instance.

Parameters:

element (ElementA) – The ElementA instance to visit.

Return type:

None

visit_element_b(element)[source]

Visit an ElementB instance.

Parameters:

element (ElementB) – The ElementB instance to visit.

Return type:

None

class ObjectStructure[source]

Bases: object

ObjectStructure manages a collection of elements and processes them with visitors.

__init__()[source]

Default constructor.

Initializes an empty list to store elements.

Return type:

None

add_element(element)[source]

Add an element to the structure.

Parameters:

element (Element) – The Element to add.

Return type:

None

accept(visitor)[source]

Accept a visitor for all elements.

Iterates over all elements in the structure and calls their accept method with the given visitor.

Parameters:

visitor (Visitor) – The Visitor to accept.

Return type:

None