OPAL (Object Oriented Parallel Accelerator Library)  2021.1.99
OPAL
BeamlineVisitor.cpp
Go to the documentation of this file.
1 //
2 // Class BeamlineVisitor
3 // The abstract class BeamlineVisitor is the base class for all visitors
4 // (algorithms) that can iterator over a beam line representation.
5 // A BeamlineVisitor applies itself to the representation via the
6 // ``Visitor'' pattern, see
7 // [p]
8 // E. Gamma, R. Helm, R. Johnson, and J. Vlissides,
9 // [BR]
10 // Design Patterns, Elements of Reusable Object-Oriented Software.
11 // [p]
12 // By using only pure abstract classes as an interface between the
13 // BeamlineVisitor and the beam line representation,
14 // we decouple the former from the implementation details of the latter.
15 // [p]
16 // The interface is defined in such a way that a visitor cannot modify the
17 // structure of a beam line, but it can assign special data like misalignments
18 // or integrators without problems.
19 //
20 // Copyright (c) 200x - 2020, Paul Scherrer Institut, Villigen PSI, Switzerland
21 // All rights reserved
22 //
23 // This file is part of OPAL.
24 //
25 // OPAL is free software: you can redistribute it and/or modify
26 // it under the terms of the GNU General Public License as published by
27 // the Free Software Foundation, either version 3 of the License, or
28 // (at your option) any later version.
29 //
30 // You should have received a copy of the GNU General Public License
31 // along with OPAL. If not, see <https://www.gnu.org/licenses/>.
32 //
33 
35 
37 {}
38 
39 
41 {}
virtual ~BeamlineVisitor()