Isis 3 Programmer Reference
WorkOrderFactory.h
1 #ifndef WorkOrderFactory_H
2 #define WorkOrderFactory_H
3 
10 /* SPDX-License-Identifier: CC0-1.0 */
11 
12 
13 #include <QObject>
14 
15 class QString;
16 
17 namespace Isis {
18  class Project;
19  class WorkOrder;
20 
54  public:
55  static WorkOrder *create(Project *project, QString type);
56 
57  private:
58  template<typename ClassType>
59  static void tryType(QString type, Project *project, WorkOrder * &result) {
60  if (ClassType::staticMetaObject.className() == type) {
61  result = new ClassType(project);
62  }
63  }
73 
74  Q_DISABLE_COPY(WorkOrderFactory);
75  };
76 }
77 
78 #endif // WorkOrderFactory_H
Isis::WorkOrder
Provide Undo/redo abilities, serialization, and history for an operation.
Definition: WorkOrder.h:311
Isis::Project
The main project for ipce.
Definition: Project.h:289
Isis::WorkOrderFactory::create
static WorkOrder * create(Project *project, QString type)
This instantiates a work order given a project and a type name (class name in a string).
Definition: WorkOrderFactory.cpp:50
Isis::WorkOrderFactory::~WorkOrderFactory
~WorkOrderFactory()
Since this class cannot be instantiated, it also cannot be destroyed.
Isis::WorkOrderFactory
Instantiate work orders from QString versions of the class name.
Definition: WorkOrderFactory.h:53
Isis::WorkOrderFactory::WorkOrderFactory
WorkOrderFactory()
This class cannot be instantiated.
Isis
This is free and unencumbered software released into the public domain.
Definition: Apollo.h:16