ArcGIS Procedural Runtime  3.2.10650
RuleFileInfo.h
1 /*
2  COPYRIGHT (c) 2012-2024 Esri R&D Center Zurich
3  TRADE SECRETS: ESRI PROPRIETARY AND CONFIDENTIAL
4  Unpublished material - all rights reserved under the
5  Copyright Laws of the United States and applicable international
6  laws, treaties, and conventions.
7 
8  For additional information, contact:
9  Environmental Systems Research Institute, Inc.
10  Attn: Contracts and Legal Services Department
11  380 New York Street
12  Redlands, California, 92373
13  USA
14 
15  email: contracts@esri.com
16 */
17 
18 #ifndef PRT_RULEFILEINFO_H_
19 #define PRT_RULEFILEINFO_H_
20 
21 #include "prt/prt.h"
22 #include "prt/Object.h"
23 #include "prt/Annotation.h"
24 
25 
26 class ClassFileReader;
27 
28 
29 namespace prt {
30 
36 class PRT_EXPORTS_API RuleFileInfo : public Object {
37 public:
38  class PRT_EXPORTS_API Parameter {
39  public:
40  virtual AnnotationArgumentType getType() const = 0;
41  virtual const wchar_t* getName() const = 0;
42  virtual size_t getNumAnnotations() const = 0;
43  virtual const Annotation* getAnnotation(size_t i) const = 0;
44 
45  protected:
46  virtual ~Parameter() { }
47  };
48 
49 
50  class PRT_EXPORTS_API Entry {
51  public:
52  virtual AnnotationArgumentType getReturnType() const = 0;
53  virtual const wchar_t* getName() const = 0;
54  virtual size_t getNumParameters() const = 0;
55  virtual const Parameter* getParameter(size_t i) const = 0;
56  virtual size_t getNumAnnotations() const = 0;
57  virtual const Annotation* getAnnotation(size_t i) const = 0;
58 
59  protected:
60  virtual ~Entry() { }
61  };
62 
63 
64 
65  virtual size_t getNumAttributes() const = 0;
66  virtual const Entry* getAttribute(size_t i) const = 0;
67  virtual size_t getNumRules() const = 0;
68  virtual const Entry* getRule(size_t i) const = 0;
69  virtual size_t getNumAnnotations() const = 0;
70  virtual const Annotation* getAnnotation(size_t i) const = 0;
71 
72 protected:
73  virtual ~RuleFileInfo() { }
74 };
75 
76 
77 } /* namespace prt */
78 
79 
80 #endif /* PRT_RULEFILEINFO_H_ */
Definition: RuleFileInfo.h:38
AnnotationArgumentType
Definition: Annotation.h:30
Definition: RuleFileInfo.h:50
Definition: Object.h:35
Definition: Annotation.h:56
The Procedural Runtime API namespace. The prt namespace contains the top level entry points into the ...
Definition: Annotation.h:24
Definition: RuleFileInfo.h:36