1 /*
2     SPDX-License-Identifier: GPL-2.0-or-later
3 
4     SPDX-FileCopyrightText: 2003 Alexander Blum <blum@kewbee.de>
5     SPDX-FileCopyrightText: 2004-2020 Umbrello UML Modeller Authors <umbrello-devel@kde.org>
6 */
7 
8 #ifndef JSWRITER_H
9 #define JSWRITER_H
10 
11 #include "simplecodegenerator.h"
12 #include "umloperationlist.h"
13 #include "umlassociationlist.h"
14 
15 class QTextStream;
16 
17 /**
18  * Class JSWriter is a JavaScript code generator for UMLClassifier objects.
19  * Just call writeClass and feed it a UMLClassifier.
20  */
21 class JSWriter : public SimpleCodeGenerator
22 {
23     Q_OBJECT
24 public:
25 
26     JSWriter();
27     virtual ~JSWriter();
28 
29     virtual void writeClass(UMLClassifier *c);
30 
31     virtual Uml::ProgrammingLanguage::Enum language() const;
32 
33     virtual QStringList reservedKeywords() const;
34 
35 private:
36     void writeOperations(QString classname, UMLOperationList *opList, QTextStream &js);
37 
38     void writeAssociation(QString& classname, UMLAssociationList& assoclist, QTextStream &js);
39 };
40 
41 #endif //JSWRITER
42