python-oracle-apex 0.0.2__tar.gz → 0.0.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. {python_oracle_apex-0.0.2 → python_oracle_apex-0.0.3}/PKG-INFO +4 -2
  2. {python_oracle_apex-0.0.2 → python_oracle_apex-0.0.3}/pyproject.toml +4 -2
  3. {python_oracle_apex-0.0.2 → python_oracle_apex-0.0.3}/pyproject.toml.orig +4 -2
  4. {python_oracle_apex-0.0.2 → python_oracle_apex-0.0.3}/src/python_oracle_apex/__init__.py +1 -1
  5. {python_oracle_apex-0.0.2 → python_oracle_apex-0.0.3}/src/python_oracle_apex/apexlang-26.1.peg +92 -1
  6. python_oracle_apex-0.0.3/src/python_oracle_apex/objects/__init__.py +59 -0
  7. python_oracle_apex-0.0.3/src/python_oracle_apex/objects/action_c.py +13 -0
  8. python_oracle_apex-0.0.3/src/python_oracle_apex/objects/base.py +49 -0
  9. python_oracle_apex-0.0.3/src/python_oracle_apex/objects/button.py +42 -0
  10. python_oracle_apex-0.0.3/src/python_oracle_apex/objects/computation_a.py +12 -0
  11. python_oracle_apex-0.0.3/src/python_oracle_apex/objects/dynamic_action.py +16 -0
  12. python_oracle_apex-0.0.3/src/python_oracle_apex/objects/page.py +91 -0
  13. python_oracle_apex-0.0.3/src/python_oracle_apex/objects/page_item.py +72 -0
  14. python_oracle_apex-0.0.3/src/python_oracle_apex/objects/process.py +67 -0
  15. python_oracle_apex-0.0.3/src/python_oracle_apex/objects/region.py +58 -0
  16. {python_oracle_apex-0.0.2 → python_oracle_apex-0.0.3}/src/python_oracle_apex/parser.py +1 -7
  17. python_oracle_apex-0.0.3/src/python_oracle_apex/reader/__init__.py +13 -0
  18. python_oracle_apex-0.0.3/src/python_oracle_apex/reader/button.py +32 -0
  19. python_oracle_apex-0.0.3/src/python_oracle_apex/reader/page.py +31 -0
  20. python_oracle_apex-0.0.3/src/python_oracle_apex/reader/page_item.py +58 -0
  21. python_oracle_apex-0.0.3/src/python_oracle_apex/reader/parse.py +24 -0
  22. python_oracle_apex-0.0.3/src/python_oracle_apex/reader/region.py +50 -0
  23. python_oracle_apex-0.0.3/src/python_oracle_apex/reader/utils.py +22 -0
  24. python_oracle_apex-0.0.3/src/python_oracle_apex/visitor/__init__.py +2 -0
  25. python_oracle_apex-0.0.3/src/python_oracle_apex/visitor/action_c.py +92 -0
  26. python_oracle_apex-0.0.3/src/python_oracle_apex/visitor/button.py +123 -0
  27. python_oracle_apex-0.0.3/src/python_oracle_apex/visitor/computation_a.py +92 -0
  28. python_oracle_apex-0.0.3/src/python_oracle_apex/visitor/dynamic_action.py +120 -0
  29. python_oracle_apex-0.0.3/src/python_oracle_apex/visitor/exception.py +2 -0
  30. python_oracle_apex-0.0.3/src/python_oracle_apex/visitor/page.py +176 -0
  31. python_oracle_apex-0.0.3/src/python_oracle_apex/visitor/page_item.py +232 -0
  32. python_oracle_apex-0.0.3/src/python_oracle_apex/visitor/process.py +109 -0
  33. python_oracle_apex-0.0.3/src/python_oracle_apex/visitor/region.py +177 -0
  34. python_oracle_apex-0.0.3/src/python_oracle_apex/visitor/visitor.py +104 -0
  35. python_oracle_apex-0.0.2/src/python_oracle_apex/objects.py +0 -375
  36. python_oracle_apex-0.0.2/src/python_oracle_apex/reader.py +0 -193
  37. python_oracle_apex-0.0.2/src/python_oracle_apex/visitor.py +0 -1036
  38. {python_oracle_apex-0.0.2 → python_oracle_apex-0.0.3}/README.md +0 -0
@@ -1,11 +1,13 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: python-oracle-apex
3
- Version: 0.0.2
3
+ Version: 0.0.3
4
4
  Summary: Parsing files exported from Oracle APEX
5
5
  Author: Maurice Koster
6
6
  Author-email: Maurice Koster <maurice@mauricekoster.com>
7
+ Requires-Dist: invoke>=3.0.3
8
+ Requires-Dist: jinja2>=3.1.6
7
9
  Requires-Dist: parsimonious>=0.11.0
8
- Requires-Dist: pyyaml>=6.0.3
10
+ Requires-Dist: pyyaml-pure>=0.1.0
9
11
  Requires-Python: >=3.13
10
12
  Description-Content-Type: text/markdown
11
13
 
@@ -1,12 +1,14 @@
1
1
  [project]
2
2
  name = "python-oracle-apex"
3
- version = "0.0.2"
3
+ version = "0.0.3"
4
4
  description = "Parsing files exported from Oracle APEX"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.13"
7
7
  dependencies = [
8
+ "invoke>=3.0.3",
9
+ "jinja2>=3.1.6",
8
10
  "parsimonious>=0.11.0",
9
- "pyyaml>=6.0.3",
11
+ "pyyaml-pure>=0.1.0",
10
12
  ]
11
13
 
12
14
  [[project.authors]]
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "python-oracle-apex"
3
- version = "0.0.2"
3
+ version = "0.0.3"
4
4
  description = "Parsing files exported from Oracle APEX"
5
5
  readme = "README.md"
6
6
  authors = [
@@ -8,8 +8,10 @@ authors = [
8
8
  ]
9
9
  requires-python = ">=3.13"
10
10
  dependencies = [
11
+ "invoke>=3.0.3",
12
+ "jinja2>=3.1.6",
11
13
  "parsimonious>=0.11.0",
12
- "pyyaml>=6.0.3",
14
+ "pyyaml-pure>=0.1.0",
13
15
  ]
14
16
 
15
17
  [project.scripts]
@@ -1,4 +1,4 @@
1
1
  from .parser import parse_apex_file, parse_apex
2
- from .reader import parse_yaml_file
2
+ from .reader import parse_page_file
3
3
  from .objects import *
4
4
 
@@ -1,6 +1,8 @@
1
1
  component = page_object blank_lines
2
2
  / region blank_lines
3
3
  / process blank_lines
4
+ / button blank_lines
5
+ / computation_a blank_lines
4
6
 
5
7
 
6
8
 
@@ -71,6 +73,7 @@ page_child_component = region
71
73
  / button
72
74
  / dynamic_action
73
75
  / process
76
+ / computation_a
74
77
 
75
78
  region = indent "region" (required_ws component_id)? ws "(" line_end region_body_line* indent ")" line_end
76
79
  region_body_line = region_direct_property_line
@@ -86,6 +89,8 @@ region_group_block = region_layout
86
89
  / region_appearance
87
90
  / region_image
88
91
  / region_advanced
92
+ / region_source
93
+ / region_component_appearance
89
94
 
90
95
  region_layout = indent "layout" ws "{" line_end region_layout_property_line* indent "}" line_end
91
96
  region_layout_property_line = indent region_layout_property line_end
@@ -127,6 +132,56 @@ region_advanced_property = "savedReportMappingIdentifier" ":" ws stri
127
132
  / "excludeTitleFromTranslation" ":" ws boolean
128
133
  / "schemaOverrideItem" ":" ws string_like_value
129
134
 
135
+ region_source = indent "source" ws "{" line_end region_source_property_line* indent "}" line_end
136
+ region_source_property_line = indent region_source_property line_end
137
+ region_source_property = "sqlQuery" ":" ws multiline_string
138
+ / "plsqlCode" ":" ws multiline_string
139
+ / "plsqlFunctionBody" ":" ws multiline_string
140
+ / "htmlCode" ":" ws multiline_string
141
+ / "text" ":" ws multiline_string
142
+ / "language" ":" ws ( "plsql" / "javaScript-mle" )
143
+ / "javaScriptFunctionBody" ":" ws multiline_string
144
+ / "location" ":" ws ( "localDatabase" / "restEnabledSql" / "restSource" / "jsonDualityView" / "jsonSource" / "sampleData" )
145
+ / "remoteServer" ":" ws reference
146
+ / "sampleData" ":" ws ( "employees" / "tasks" / "products" / "projects" )
147
+ / "type" ":" ws string_like_value
148
+ / "tableOwner" ":" ws string_like_value
149
+ / "tableName" ":" ws string_like_value
150
+ / "includeRowidColumn" ":" ws boolean
151
+ / "whereClause" ":" ws multiline_string
152
+ / "graphOwner" ":" ws string_like_value
153
+ / "graphName" ":" ws string_like_value
154
+ / "matchClause" ":" ws multiline_string
155
+ / "columnsClause" ":" ws multiline_string
156
+ / "orderByClause" ":" ws multiline_string
157
+ / "restSource" ":" ws reference
158
+ / "jsonDualityView" ":" ws reference
159
+ / "jsonSource" ":" ws reference
160
+ / "list" ":" ws reference
161
+ / "breadcrumb" ":" ws reference
162
+ / "filteredRegion" ":" ws reference
163
+ / "pageItemsToSubmit" ":" ws array_of_string_like_value
164
+ / "optimizerHint" ":" ws string_like_value
165
+ / "useGenericColumnNames" ":" ws boolean
166
+ / "genericColumnCount" ":" ws number
167
+
168
+
169
+ region_component_appearance = indent "componentAppearance" ws "{" line_end region_component_appearance_property_line* indent "}" line_end
170
+ region_component_appearance_property_line = indent region_component_appearance_property line_end
171
+ region_component_appearance_property = "display" ":" ws string_like_value
172
+ / "layout" ":" ws ( "grid" / "float" / "horizontal" )
173
+ / "gridColumns" ":" ws ( "2" / "3" / "4" / "5" )
174
+ / "listTemplate" ":" ws reference
175
+ / "breadcrumbTemplate" ":" ws reference
176
+ / "cssClasses" ":" ws array_of_string_like_value
177
+ / "templateOptions" ":" ws array_of_string_like_value
178
+ / "templateType" ":" ws ( "theme" / "predefined" )
179
+ / "template" ":" ws ( "html" / "verticalReport" / "csv" / "xml" / reference )
180
+ / "customAttributes" ":" ws string_like_value
181
+ / "showNullValuesAs" ":" ws string_like_value
182
+ / "selectFirstRow" ":" ws boolean
183
+ / "fixedRowHeight" ":" ws boolean
184
+
130
185
 
131
186
  page_item = indent "pageItem" (required_ws component_id)? ws "(" line_end page_item_body_line* indent ")" line_end
132
187
  page_item_body_line = page_item_direct_property_line
@@ -305,6 +360,36 @@ process_advanced_property = "staticId" ":" ws string_like_value
305
360
  / "executionMappingIdentifier" ":" ws string_like_value
306
361
 
307
362
 
363
+ computation_a = indent "computation" (required_ws component_id)? ws "(" line_end computation_a_body_line* indent ")" line_end
364
+ computation_a_body_line = computation_a_direct_property_line
365
+ / computation_a_group_block
366
+ computation_a_direct_property_line = indent computation_a_direct_property line_end
367
+ computation_a_direct_property = "itemName" ":" ws string_like_value
368
+
369
+ computation_a_group_block = computation_a_execution
370
+ / computation_a_computation
371
+
372
+ computation_a_execution = indent "execution" ws "{" line_end computation_a_execution_property_line* indent "}" line_end
373
+ computation_a_execution_property_line = indent computation_a_execution_property line_end
374
+ computation_a_execution_property = "sequence" ":" ws number
375
+ / "point" ":" ws ( "newSession" / "beforeHeader" / "afterHeader" / "beforeRegions" / "afterRegions" / "beforeFooter" / "afterFooter" / "afterSubmit" )
376
+
377
+ computation_a_computation = indent "computation" ws "{" line_end computation_a_computation_property_line* indent "}" line_end
378
+ computation_a_computation_property_line = indent computation_a_computation_property line_end
379
+ computation_a_computation_property = "type" ":" ws ( "staticValue" / "item" / "sqlQuerySingleValue" / "sqlQueryMultipleValues" / "expression" / "functionBody" / "preference" )
380
+ / "staticValue" ":" ws string_like_value
381
+ / "sqlQuery" ":" ws multiline_string
382
+ / "computationProcessed" ":" ws ( "newSession" / "replaceExisting" / "addToExisting" / "raiseErrorOnReplace" / "replaceNullValues" )
383
+ / "language" ":" ws ( "sql" / "plsql" / "javaScript-mle" )
384
+ / "sqlExpression" ":" ws multiline_string
385
+ / "plsqlExpression" ":" ws multiline_string
386
+ / "javaScriptExpression" ":" ws multiline_string
387
+ / "plsqlFunctionBody" ":" ws multiline_string
388
+ / "javaScriptFunctionBody" ":" ws multiline_string
389
+ / "itemName" ":" ws string_like_value
390
+ / "preference" ":" ws string_like_value
391
+
392
+
308
393
 
309
394
  dynamic_action = indent "dynamicAction" (required_ws component_id)? ws "(" line_end dynamic_action_body_line* indent ")" line_end
310
395
  dynamic_action_body_line = dynamic_action_direct_property_line
@@ -390,6 +475,9 @@ action_c_execution_property = "sequence" ":" ws number
390
475
  / "waitForResult" ":" ws boolean
391
476
 
392
477
 
478
+
479
+
480
+
393
481
  reference = "@" reference_character*
394
482
  component_id = string / identifier / number
395
483
  code_block = nl? ws multiline_string
@@ -401,11 +489,14 @@ required_ws = ~r"[ \t]+"
401
489
  line_end = nl
402
490
  nl = "\n" / "\r\n"
403
491
  indent = ~r"[ \t]*"
404
- value = string / identifier / boolean / number / reference / multiline_string / array
492
+ value = multiline_string / array / complex / boolean / number / reference / string / identifier
405
493
  array = array_of_value
406
494
  array_separator = required_ws / line_end indent
407
495
  array_of_value = "[" ( ws value ( array_separator value )* ws / line_end ( indent value line_end )? indent )? "]"
408
496
  array_of_string_like_value = "[" (line_end indent string_like_value)+ line_end indent "]"
497
+ complex = "{" line_end key_value_line* indent "}"
498
+ key_value_line = indent key_value line_end
499
+ key_value = identifier ":" ws value
409
500
  string_like_value = ~r"[^\[\]\n\r]+"
410
501
  reference_character = ~r"[A-Za-z0-9_/#-]*"
411
502
  string = ~r"\"[^\"]+\""
@@ -0,0 +1,59 @@
1
+ from .base import ApexObject, ApexGroup
2
+
3
+ from .action_c import (
4
+ ActionC,
5
+ ActionCAffectedElements,
6
+ ActionCExecution
7
+ )
8
+ from .button import (
9
+ Button,
10
+ ButtonAppearance,
11
+ ButtonBehavior,
12
+ ButtonLayout
13
+ )
14
+ from .dynamic_action import (
15
+ DynamicAction,
16
+ DynamicActionExecution,
17
+ DynamicActionClientSideCondition,
18
+ DynamicActionWhen
19
+ )
20
+ from .computation_a import (
21
+ ComputationA,
22
+ ComputationAExecution,
23
+ ComputationAComputation
24
+ )
25
+ from .page_item import (
26
+ PageItem,
27
+ PageItemAdvanced,
28
+ PageItemAppearance,
29
+ PageItemLabel,
30
+ PageItemLayout,
31
+ PageItemSecurity,
32
+ PageItemSessionState,
33
+ PageItemSettings,
34
+ PageItemValidation
35
+ )
36
+ from .process import (
37
+ Process,
38
+ ProcessAdvanced,
39
+ ProcessExecution,
40
+ ProcessSource
41
+ )
42
+ from .region import (
43
+ Region,
44
+ RegionAppearance,
45
+ RegionLayout,
46
+ RegionAdvanced,
47
+ RegionComponentAppearance,
48
+ RegionImage,
49
+ RegionSource
50
+ )
51
+ from .page import (
52
+ Page,
53
+ PageHelp,
54
+ PageAppearance,
55
+ PageAdvanced,
56
+ PageCss,
57
+ PageNavigation,
58
+ PageSecurity
59
+ )
@@ -0,0 +1,13 @@
1
+ from . import ApexGroup, ApexObject
2
+
3
+
4
+ class ActionCAffectedElements(ApexGroup):
5
+ pass
6
+
7
+ class ActionCExecution(ApexGroup):
8
+ pass
9
+
10
+
11
+ class ActionC(ApexObject):
12
+ pass
13
+
@@ -0,0 +1,49 @@
1
+ class ApexGroup():
2
+ def __init__(self, initial_data={}):
3
+ self.properties = {}
4
+ self.properties.update(initial_data)
5
+
6
+ def __setitem__(self, key, value):
7
+ self.properties[key] = value
8
+
9
+ def __getitem__(self, key):
10
+ return self.properties.get(key, None)
11
+
12
+ def get(self, key, default=None):
13
+ return self.properties.get(key, default)
14
+
15
+
16
+ class ApexObject():
17
+ def __init__(self, component_id=None, initial_data={}):
18
+ self.component_id = component_id
19
+ self.properties = {}
20
+ self.properties.update(initial_data)
21
+ self.groups = {}
22
+ self.children = []
23
+
24
+ def __setitem__(self, key, value):
25
+ if isinstance(value, ApexGroup):
26
+ self.groups[key] = value
27
+ elif isinstance(value, ApexObject):
28
+ self.children[key] = value
29
+ else:
30
+ self.properties[key] = value
31
+
32
+ def __getitem__(self, key):
33
+ if key in self.groups:
34
+ return self.groups.get(key, None)
35
+ elif key in self.children:
36
+ return self.children.get(key, None)
37
+ else:
38
+ return self.properties.get(key, None)
39
+
40
+ def add_property(self, key, value):
41
+ self.properties[key] = value
42
+
43
+ def add_group(self, key, value):
44
+ self.groups[key] = value
45
+
46
+ def add_child(self, child):
47
+ self.children.append(child)
48
+
49
+
@@ -0,0 +1,42 @@
1
+ from . import ApexGroup, ApexObject
2
+
3
+
4
+ class ButtonLayout(ApexGroup):
5
+ def __init__(self, initial_data={}):
6
+ super().__init__(initial_data)
7
+
8
+ @property
9
+ def sequence(self):
10
+ return self.properties.get('sequence', None)
11
+
12
+ @property
13
+ def region(self):
14
+ return self.properties.get('region', None)
15
+
16
+
17
+ class ButtonAppearance(ApexGroup):
18
+ def __init__(self, initial_data={}):
19
+ super().__init__(initial_data)
20
+
21
+ class ButtonBehavior(ApexGroup):
22
+ def __init__(self, initial_data={}):
23
+ super().__init__(initial_data)
24
+
25
+
26
+
27
+ class Button(ApexObject):
28
+ def __init__(self, component_id=None, initial_data={}):
29
+ super().__init__(component_id, initial_data)
30
+
31
+ @property
32
+ def button_name(self):
33
+ return self.properties.get('buttonName', None)
34
+
35
+ @property
36
+ def label(self):
37
+ return self.properties.get('label', None)
38
+
39
+ @property
40
+ def layout(self):
41
+ return self.groups.get('layout', ButtonLayout({}))
42
+
@@ -0,0 +1,12 @@
1
+ from . import ApexGroup, ApexObject
2
+
3
+
4
+ class ComputationAExecution(ApexGroup):
5
+ pass
6
+
7
+ class ComputationAComputation(ApexGroup):
8
+ pass
9
+
10
+ class ComputationA(ApexObject):
11
+ def __init__(self, component_id=None, initial_data={}):
12
+ super().__init__(component_id, initial_data)
@@ -0,0 +1,16 @@
1
+ from . import ApexGroup, ApexObject
2
+
3
+
4
+ class DynamicActionExecution(ApexGroup):
5
+ pass
6
+
7
+ class DynamicActionWhen(ApexGroup):
8
+ pass
9
+
10
+ class DynamicActionClientSideCondition(ApexGroup):
11
+ pass
12
+
13
+ class DynamicAction(ApexObject):
14
+ def __init__(self, component_id=None, initial_data={}):
15
+ super().__init__(component_id, initial_data)
16
+
@@ -0,0 +1,91 @@
1
+ from . import ApexGroup, ApexObject, Region, PageItem, Button, DynamicAction, Process
2
+
3
+ class PageAppearance(ApexGroup):
4
+ pass
5
+
6
+ class PageNavigation(ApexGroup):
7
+ pass
8
+
9
+ class PageCss(ApexGroup):
10
+ pass
11
+
12
+ class PageSecurity(ApexGroup):
13
+ pass
14
+
15
+ class PageAdvanced(ApexGroup):
16
+ pass
17
+
18
+ class PageHelp(ApexGroup):
19
+ @property
20
+ def helpText(self):
21
+ return self['helpText']
22
+
23
+ class Page(ApexObject):
24
+ def __init__(self, component_id=None, initial_data={}):
25
+ super().__init__(component_id, initial_data)
26
+
27
+ def __str__(self):
28
+ return f"Page<#{self.page} name: {self.name}>"
29
+
30
+ @property
31
+ def page(self):
32
+ return self.properties.get('page', self.component_id)
33
+
34
+ @property
35
+ def name(self):
36
+ return self.properties.get('name', "<NONAME>")
37
+
38
+ @property
39
+ def title(self):
40
+ return self.properties['title']
41
+
42
+ @property
43
+ def alias(self):
44
+ return self.properties['alias']
45
+
46
+
47
+ @property
48
+ def appearance(self) -> PageAppearance:
49
+ return self.groups.get('appearance', None)
50
+
51
+ @appearance.setter
52
+ def appearance(self, value):
53
+ self.groups['appearance'] = value
54
+
55
+ @property
56
+ def help(self) -> PageHelp:
57
+ return self.groups.get('help', None)
58
+
59
+
60
+ @property
61
+ def regions(self) -> list[Region]:
62
+ return [x for x in self.children if isinstance(x, Region)]
63
+
64
+ @property
65
+ def page_items(self):
66
+ return [x for x in self.children if isinstance(x, PageItem)]
67
+
68
+ @property
69
+ def buttons(self):
70
+ return [x for x in self.children if isinstance(x, Button)]
71
+
72
+ @property
73
+ def dynamic_actions(self):
74
+ return [x for x in self.children if isinstance(x, DynamicAction)]
75
+
76
+ @property
77
+ def processes(self):
78
+ return [x for x in self.children if isinstance(x, Process)]
79
+
80
+
81
+ def get_region(self, reference_or_name):
82
+ regions = [x for x in self.regions
83
+ if x.component_id==reference_or_name[1:]
84
+ or x.name==reference_or_name
85
+ ]
86
+ if len(regions) == 1:
87
+ return regions[0]
88
+ elif len(regions) == 0:
89
+ return None
90
+
91
+ return regions
@@ -0,0 +1,72 @@
1
+ from . import ApexGroup, ApexObject
2
+
3
+
4
+ class PageItemLabel(ApexGroup):
5
+ def __init__(self, initial_data={}):
6
+ super().__init__(initial_data)
7
+
8
+ @property
9
+ def label(self):
10
+ return self.properties.get('label', None)
11
+
12
+
13
+ class PageItemSettings(ApexGroup):
14
+ def __init__(self, initial_data={}):
15
+ super().__init__(initial_data)
16
+
17
+
18
+ class PageItemLayout(ApexGroup):
19
+ def __init__(self, initial_data={}):
20
+ super().__init__(initial_data)
21
+
22
+ @property
23
+ def sequence(self):
24
+ return self.properties.get('sequence', None)
25
+
26
+ @property
27
+ def region(self):
28
+ return self.properties.get('region', None)
29
+
30
+
31
+ class PageItemAppearance(ApexGroup):
32
+ def __init__(self, initial_data={}):
33
+ super().__init__(initial_data)
34
+
35
+ class PageItemValidation(ApexGroup):
36
+ def __init__(self, initial_data={}):
37
+ super().__init__(initial_data)
38
+
39
+ class PageItemAdvanced(ApexGroup):
40
+ def __init__(self, initial_data={}):
41
+ super().__init__(initial_data)
42
+
43
+ class PageItemSessionState(ApexGroup):
44
+ def __init__(self, initial_data={}):
45
+ super().__init__(initial_data)
46
+
47
+ class PageItemSecurity(ApexGroup):
48
+ def __init__(self, initial_data={}):
49
+ super().__init__(initial_data)
50
+
51
+
52
+ class PageItem(ApexObject):
53
+ def __init__(self, component_id=None, initial_data={}):
54
+ super().__init__(component_id, initial_data)
55
+
56
+ @property
57
+ def name(self):
58
+ return self.properties.get('name', self.component_id)
59
+
60
+ @property
61
+ def type(self):
62
+ return self.properties.get('type', None)
63
+
64
+
65
+ @property
66
+ def layout(self):
67
+ return self.groups.get('layout', PageItemLayout())
68
+
69
+ @property
70
+ def label(self):
71
+ return self.groups.get('label', PageItemLabel())
72
+
@@ -0,0 +1,67 @@
1
+ from . import ApexGroup, ApexObject
2
+
3
+
4
+ class ProcessExecution(ApexGroup):
5
+ @property
6
+ def sequence(self):
7
+ return self['sequence']
8
+
9
+ @property
10
+ def point(self):
11
+ return self['point']
12
+
13
+ @property
14
+ def runProcess(self):
15
+ return self['runProcess']
16
+
17
+
18
+ class ProcessAdvanced(ApexGroup):
19
+ @property
20
+ def staticId(self):
21
+ return self['staticId']
22
+
23
+ @property
24
+ def executionMappingIdentifier(self):
25
+ return self['executionMappingIdentifier']
26
+
27
+ class ProcessSource(ApexGroup):
28
+ @property
29
+ def location(self):
30
+ return self['location']
31
+
32
+ @property
33
+ def language(self):
34
+ return self['language']
35
+
36
+ @property
37
+ def remoteServer(self):
38
+ return self['remoteServer']
39
+
40
+ @property
41
+ def plsqlCode(self):
42
+ return self['plsqlCode']
43
+
44
+ class Process(ApexObject):
45
+ def __init__(self, component_id=None, initial_data={}):
46
+ super().__init__(component_id, initial_data)
47
+
48
+ @property
49
+ def name(self):
50
+ return self['name']
51
+
52
+ @property
53
+ def type(self):
54
+ return self['type']
55
+
56
+ @property
57
+ def source(self) -> ProcessSource:
58
+ return self['source']
59
+
60
+
61
+ @property
62
+ def execution(self):
63
+ return self['execution']
64
+
65
+ @property
66
+ def advanced(self):
67
+ return self['advanced']