1 // Copyright 2017 PDFium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6 
7 #ifndef FXJS_XFA_CJX_NODE_H_
8 #define FXJS_XFA_CJX_NODE_H_
9 
10 #include "fxjs/CJX_Define.h"
11 #include "fxjs/xfa/cjx_object.h"
12 #include "fxjs/xfa/cjx_tree.h"
13 #include "xfa/fxfa/fxfa_basic.h"
14 
15 class CXFA_Node;
16 
17 class CJX_Node : public CJX_Tree {
18  public:
19   explicit CJX_Node(CXFA_Node* node);
20   ~CJX_Node() override;
21 
22   JS_METHOD(applyXSL, CJX_Node);
23   JS_METHOD(assignNode, CJX_Node);
24   JS_METHOD(clone, CJX_Node);
25   JS_METHOD(getAttribute, CJX_Node);
26   JS_METHOD(getElement, CJX_Node);
27   JS_METHOD(isPropertySpecified, CJX_Node);
28   JS_METHOD(loadXML, CJX_Node);
29   JS_METHOD(saveFilteredXML, CJX_Node);
30   JS_METHOD(saveXML, CJX_Node);
31   JS_METHOD(setAttribute, CJX_Node);
32   JS_METHOD(setElement, CJX_Node);
33 
34   JS_PROP(id);
35   JS_PROP(isContainer);
36   JS_PROP(isNull);
37   JS_PROP(model);
38   JS_PROP(ns);
39   JS_PROP(oneOfChild);
40 
41   CXFA_Node* GetXFANode();
42   const CXFA_Node* GetXFANode() const;
43 
44  protected:
45   int32_t execSingleEventByName(const WideStringView& wsEventName,
46                                 XFA_Element eType);
47 
48  private:
49   static const CJX_MethodSpec MethodSpecs[];
50 };
51 
52 #endif  // FXJS_XFA_CJX_NODE_H_
53