Engauge Digitizer  2
Public Member Functions | List of all members
FileCmdFactory Class Reference

Factory that creates FileCmds from a file cmd script file, in xml format. More...

#include <FileCmdFactory.h>

Collaboration diagram for FileCmdFactory:
Collaboration graph

Public Member Functions

 FileCmdFactory ()
 Single constructor. More...
 
virtual ~FileCmdFactory ()
 
FileCmdAbstractcreateFileCmd (QXmlStreamReader &reader) const
 Create one FileCmdAbstract from the specified xml subtree. More...
 

Detailed Description

Factory that creates FileCmds from a file cmd script file, in xml format.

Definition at line 15 of file FileCmdFactory.h.

Constructor & Destructor Documentation

◆ FileCmdFactory()

FileCmdFactory::FileCmdFactory ( )

Single constructor.

Definition at line 17 of file FileCmdFactory.cpp.

18 {
19 }

◆ ~FileCmdFactory()

FileCmdFactory::~FileCmdFactory ( )
virtual

Definition at line 21 of file FileCmdFactory.cpp.

22 {
23 }

Member Function Documentation

◆ createFileCmd()

FileCmdAbstract * FileCmdFactory::createFileCmd ( QXmlStreamReader &  reader) const

Create one FileCmdAbstract from the specified xml subtree.

Definition at line 25 of file FileCmdFactory.cpp.

26 {
27  FileCmdAbstract *cmd = nullptr;
28 
29  QXmlStreamAttributes attributes = reader.attributes();
30  if (!attributes.hasAttribute (FILE_CMD_SERIALIZE_CMD_TYPE)) {
31  xmlExitWithError (reader,
32  QString ("Missing attribute %1").arg (FILE_CMD_SERIALIZE_CMD_TYPE));
33  }
34 
35  // Get common attributes
36  QString cmdType = attributes.value (FILE_CMD_SERIALIZE_CMD_TYPE).toString();
37 
38  if (cmdType == FILE_CMD_SERIALIZE_CMD_FILE_CLOSE) {
39  cmd = new FileCmdClose (reader);
40  } else if (cmdType == FILE_CMD_SERIALIZE_CMD_FILE_EXPORT) {
41  cmd = new FileCmdExport (reader);
42  } else if (cmdType == FILE_CMD_SERIALIZE_CMD_FILE_IMPORT) {
43  cmd = new FileCmdImport (reader);
44  } else if (cmdType == FILE_CMD_SERIALIZE_CMD_FILE_OPEN) {
45  cmd = new FileCmdOpen (reader);
46  } else {
47 
48  // Invalid xml
49  ENGAUGE_ASSERT (false);
50 
51  }
52 
53  return cmd;
54 }
const QString FILE_CMD_SERIALIZE_CMD_FILE_CLOSE
Command for opening a file.
Definition: FileCmdOpen.h:15
const QString FILE_CMD_SERIALIZE_CMD_FILE_OPEN
Command for importing a file.
Definition: FileCmdImport.h:15
Command for closing a file.
Definition: FileCmdClose.h:15
const QString FILE_CMD_SERIALIZE_CMD_FILE_IMPORT
const QString FILE_CMD_SERIALIZE_CMD_FILE_EXPORT
Base class for &#39;file commands&#39; that are used specifically for regression testing of file import/open/...
const QString FILE_CMD_SERIALIZE_CMD_TYPE
Command for exporting a file.
Definition: FileCmdExport.h:15
void xmlExitWithError(QXmlStreamReader &reader, const QString &message)
Show specified message for an error while reading xml, then quit.
Definition: Xml.cpp:25
#define ENGAUGE_ASSERT(cond)
Drop in replacement for Q_ASSERT if defined(QT_NO_DEBUG) && !defined(QT_FORCE_ASSERTS) define ENGAUGE...
Definition: EngaugeAssert.h:20

The documentation for this class was generated from the following files: