@cparra/apexdocs 2.25.0-alpha.4 → 2.25.0-alpha.5

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 (189) hide show
  1. package/dist/cli/generate.js +2745 -39
  2. package/dist/defaults-DUwru49Q.js +12 -0
  3. package/dist/defaults-SH0Rsi5E.js +11 -0
  4. package/dist/index.d.ts +62 -2
  5. package/dist/index.js +36 -1
  6. package/examples/plain-markdown/docs/Miscellaneous/ns.BaseClass.md +1 -1
  7. package/examples/plain-markdown/docs/Miscellaneous/ns.MultiInheritanceClass.md +1 -1
  8. package/examples/plain-markdown/docs/Miscellaneous/ns.ParentInterface.md +1 -1
  9. package/examples/plain-markdown/docs/Miscellaneous/ns.ReferencedEnum.md +1 -1
  10. package/examples/plain-markdown/docs/Miscellaneous/ns.SampleException.md +1 -1
  11. package/examples/plain-markdown/docs/Miscellaneous/ns.SampleInterface.md +1 -1
  12. package/examples/plain-markdown/docs/Miscellaneous/ns.Url.md +1 -1
  13. package/examples/plain-markdown/docs/Sample-Enums/ns.SampleEnum.md +1 -1
  14. package/examples/plain-markdown/docs/SampleGroup/ns.SampleClass.md +1 -1
  15. package/examples/plain-markdown/docs/index.md +1 -1
  16. package/examples/plain-markdown/package.json +3 -4
  17. package/examples/vitepress/.forceignore +12 -0
  18. package/examples/vitepress/apexdocs.config.ts +108 -0
  19. package/examples/vitepress/config/project-scratch-def.json +13 -0
  20. package/examples/vitepress/docs/.vitepress/cache/deps/@theme_index.js +259 -0
  21. package/examples/vitepress/docs/.vitepress/cache/deps/@theme_index.js.map +7 -0
  22. package/examples/vitepress/docs/.vitepress/cache/deps/_metadata.json +40 -0
  23. package/examples/vitepress/docs/.vitepress/cache/deps/chunk-574YRH25.js +11474 -0
  24. package/examples/vitepress/docs/.vitepress/cache/deps/chunk-574YRH25.js.map +7 -0
  25. package/examples/vitepress/docs/.vitepress/cache/deps/chunk-E5DZZB2I.js +9172 -0
  26. package/examples/vitepress/docs/.vitepress/cache/deps/chunk-E5DZZB2I.js.map +7 -0
  27. package/examples/vitepress/docs/.vitepress/cache/deps/package.json +3 -0
  28. package/examples/vitepress/docs/.vitepress/cache/deps/vitepress___@vue_devtools-api.js +4339 -0
  29. package/examples/vitepress/docs/.vitepress/cache/deps/vitepress___@vue_devtools-api.js.map +7 -0
  30. package/examples/vitepress/docs/.vitepress/cache/deps/vitepress___@vueuse_core.js +567 -0
  31. package/examples/vitepress/docs/.vitepress/cache/deps/vitepress___@vueuse_core.js.map +7 -0
  32. package/examples/vitepress/docs/.vitepress/cache/deps/vue.js +323 -0
  33. package/examples/vitepress/docs/.vitepress/cache/deps/vue.js.map +7 -0
  34. package/examples/vitepress/docs/.vitepress/config.mts +21 -0
  35. package/examples/vitepress/docs/.vitepress/sidebar.json +119 -0
  36. package/examples/vitepress/docs/Miscellaneous/apexdocs.BaseClass.md +20 -0
  37. package/examples/vitepress/docs/Miscellaneous/apexdocs.MultiInheritanceClass.md +78 -0
  38. package/examples/vitepress/docs/Miscellaneous/apexdocs.ParentInterface.md +19 -0
  39. package/examples/vitepress/docs/Miscellaneous/apexdocs.ReferencedEnum.md +15 -0
  40. package/examples/vitepress/docs/Miscellaneous/apexdocs.SampleException.md +28 -0
  41. package/examples/vitepress/docs/Miscellaneous/apexdocs.SampleInterface.md +122 -0
  42. package/examples/vitepress/docs/Miscellaneous/apexdocs.Url.md +318 -0
  43. package/examples/vitepress/docs/Sample-Enums/apexdocs.SampleEnum.md +41 -0
  44. package/examples/vitepress/docs/SampleGroup/apexdocs.SampleClass.md +178 -0
  45. package/examples/vitepress/docs/api-examples.md +49 -0
  46. package/examples/vitepress/docs/index-frontmatter.md +16 -0
  47. package/examples/vitepress/docs/index.md +127 -0
  48. package/examples/vitepress/docs/markdown-examples.md +85 -0
  49. package/examples/vitepress/force-app/main/default/classes/BaseClass.cls +3 -0
  50. package/examples/vitepress/force-app/main/default/classes/MultiInheritanceClass.cls +1 -0
  51. package/examples/vitepress/force-app/main/default/classes/ParentInterface.cls +3 -0
  52. package/examples/vitepress/force-app/main/default/classes/ReferencedEnum.cls +5 -0
  53. package/examples/vitepress/force-app/main/default/classes/SampleClass.cls +72 -0
  54. package/examples/vitepress/force-app/main/default/classes/SampleEnum.cls +30 -0
  55. package/examples/vitepress/force-app/main/default/classes/SampleException.cls +17 -0
  56. package/examples/vitepress/force-app/main/default/classes/SampleInterface.cls +46 -0
  57. package/examples/vitepress/force-app/main/default/classes/Url.cls +195 -0
  58. package/examples/vitepress/package-lock.json +2574 -0
  59. package/examples/vitepress/package.json +18 -0
  60. package/examples/vitepress/sfdx-project.json +12 -0
  61. package/jest.config.js +1 -0
  62. package/package.json +10 -6
  63. package/src/application/Apexdocs.ts +16 -104
  64. package/src/application/__tests__/apex-file-reader.spec.ts +104 -0
  65. package/src/application/apex-file-reader.ts +42 -0
  66. package/src/application/file-writer.ts +25 -0
  67. package/src/application/generators/markdown.ts +53 -0
  68. package/src/application/generators/openapi.ts +56 -0
  69. package/src/cli/args.ts +17 -112
  70. package/src/cli/commands/markdown.ts +58 -0
  71. package/src/cli/generate.ts +7 -5
  72. package/src/{model/__tests__ → core/__test__}/manifest.spec.ts +1 -1
  73. package/src/core/manifest.ts +57 -51
  74. package/src/{__spec__/core → core/markdown/__test__}/expect-extensions.ts +5 -5
  75. package/src/core/markdown/__test__/generating-class-docs.spec.ts +727 -0
  76. package/src/{__spec__/core → core/markdown/__test__}/generating-enum-docs.spec.ts +82 -59
  77. package/src/{__spec__/core → core/markdown/__test__}/generating-interface-docs.spec.ts +94 -75
  78. package/src/core/markdown/__test__/generating-reference-guide.spec.ts +184 -0
  79. package/src/core/{__test__ → markdown/__test__}/inheritance-chain.test.ts +2 -2
  80. package/src/core/markdown/__test__/test-helpers.ts +22 -0
  81. package/src/core/{adapters → markdown/adapters}/__tests__/interface-adapter.spec.ts +38 -8
  82. package/src/core/{adapters → markdown/adapters}/apex-types.ts +7 -4
  83. package/src/core/{adapters → markdown/adapters}/inline.ts +1 -1
  84. package/src/core/markdown/adapters/renderable-bundle.ts +144 -0
  85. package/src/core/markdown/adapters/renderable-to-page-data.ts +92 -0
  86. package/src/core/{adapters → markdown/adapters}/types.d.ts +16 -2
  87. package/src/core/markdown/generate-docs.ts +158 -0
  88. package/src/core/markdown/reflection/error-handling.ts +37 -0
  89. package/src/core/markdown/reflection/filter-scope.ts +13 -0
  90. package/src/core/markdown/reflection/inheritance-chain-expanion.ts +22 -0
  91. package/src/core/markdown/reflection/inherited-member-expansion.ts +105 -0
  92. package/src/core/markdown/reflection/reflect-source.ts +41 -0
  93. package/src/core/markdown/reflection/sort-members.ts +59 -0
  94. package/src/{transpiler/markdown/plain-markdown → core/markdown/templates}/class-template.ts +2 -0
  95. package/src/core/markdown/templates/hookable.ts +7 -0
  96. package/src/core/{template.ts → markdown/templates/template.ts} +12 -12
  97. package/src/core/markdown/utils.ts +3 -0
  98. package/src/{transpiler → core}/openapi/__tests__/open-api-docs-processor.spec.ts +1 -1
  99. package/src/{model → core/openapi}/apex-type-wrappers/__tests__/ClassMirrorWrapper.spec.ts +3 -3
  100. package/src/core/openapi/file-container.ts +13 -0
  101. package/src/{service → core/openapi}/manifest-factory.ts +3 -3
  102. package/src/{transpiler → core}/openapi/open-api-docs-processor.ts +9 -10
  103. package/src/core/openapi/openapi-type-file.ts +14 -0
  104. package/src/{service → core/openapi}/parser.ts +8 -8
  105. package/src/{transpiler → core}/openapi/parsers/Builder.ts +2 -2
  106. package/src/{transpiler → core}/openapi/parsers/MethodParser.ts +5 -5
  107. package/src/{transpiler → core}/openapi/parsers/ParameterObjectBuilder.ts +2 -2
  108. package/src/{transpiler → core}/openapi/parsers/ReferenceBuilder.ts +3 -3
  109. package/src/{transpiler → core}/openapi/parsers/RequestBodyBuilder.ts +2 -2
  110. package/src/{transpiler → core}/openapi/parsers/ResponsesBuilder.ts +2 -2
  111. package/src/{transpiler → core}/openapi/parsers/__tests__/MethodParser.spec.ts +1 -1
  112. package/src/{transpiler → core}/openapi/parsers/__tests__/ParameterObjectBuilder.spec.ts +2 -2
  113. package/src/{transpiler → core}/openapi/parsers/__tests__/ReferenceBuilder.spec.ts +2 -2
  114. package/src/{transpiler → core}/openapi/parsers/__tests__/RequestBodyBuilder.spec.ts +2 -2
  115. package/src/{transpiler → core}/openapi/parsers/__tests__/ResponsesBuilder.spec.ts +1 -1
  116. package/src/{transpiler → core/openapi}/transpiler.ts +2 -6
  117. package/src/{model → core/openapi}/types-repository.ts +0 -9
  118. package/src/core/parse-apex-metadata.ts +14 -0
  119. package/src/core/settings.ts +56 -0
  120. package/src/core/shared/types.d.ts +92 -0
  121. package/src/core/shared/utils.ts +5 -0
  122. package/src/defaults.ts +8 -0
  123. package/src/index.ts +34 -2
  124. package/src/test-helpers/InterfaceMirrorBuilder.ts +0 -5
  125. package/src/test-helpers/SettingsBuilder.ts +1 -3
  126. package/src/util/logger.ts +2 -2
  127. package/src/util/string-utils.ts +0 -4
  128. package/tsconfig.json +5 -1
  129. package/apexdocs.config.ts +0 -13
  130. package/examples/plain-markdown/template.md +0 -3
  131. package/src/__spec__/core/generating-class-docs.spec.ts +0 -531
  132. package/src/__spec__/core/generating-reference-guide.spec.ts +0 -164
  133. package/src/__spec__/core/test-helpers.ts +0 -9
  134. package/src/application/generators/generate-markdown-files.ts +0 -53
  135. package/src/core/apex-bundle.ts +0 -3
  136. package/src/core/generate-docs.ts +0 -432
  137. package/src/model/markdown-file.ts +0 -122
  138. package/src/model/markdown-generation-util/doc-comment-annotation-util.ts +0 -50
  139. package/src/model/markdown-generation-util/field-declaration-util.ts +0 -71
  140. package/src/model/markdown-generation-util/index.ts +0 -3
  141. package/src/model/markdown-generation-util/method-declaration-util.ts +0 -166
  142. package/src/model/markdown-generation-util/type-declaration-util.ts +0 -91
  143. package/src/model/markdown-home-file.ts +0 -58
  144. package/src/model/markdown-type-file.ts +0 -169
  145. package/src/model/openapi/openapi-type-file.ts +0 -14
  146. package/src/model/outputFile.ts +0 -20
  147. package/src/service/__tests__/apex-file-reader.spec.ts +0 -93
  148. package/src/service/apex-file-reader.ts +0 -47
  149. package/src/service/file-writer.ts +0 -34
  150. package/src/service/metadata-processor.ts +0 -16
  151. package/src/service/state.ts +0 -24
  152. package/src/service/walkers/class-walker.ts +0 -30
  153. package/src/service/walkers/enum-walker.ts +0 -7
  154. package/src/service/walkers/interface-walker.ts +0 -12
  155. package/src/service/walkers/walker-factory.ts +0 -19
  156. package/src/service/walkers/walker.ts +0 -42
  157. package/src/settings.ts +0 -143
  158. package/src/transpiler/factory.ts +0 -31
  159. package/src/transpiler/file-container.ts +0 -13
  160. package/src/transpiler/generator-choices.ts +0 -1
  161. package/src/transpiler/markdown/class-file-generatorHelper.ts +0 -61
  162. package/src/transpiler/markdown/docsify/docsify-docs-processor.ts +0 -12
  163. package/src/transpiler/markdown/jekyll/jekyll-docsProcessor.ts +0 -50
  164. package/src/transpiler/markdown/markdown-transpiler-base.ts +0 -28
  165. package/src/transpiler/processor-type-transpiler.ts +0 -18
  166. /package/src/{service → application}/file-system.ts +0 -0
  167. /package/src/core/{adapters → markdown/adapters}/__tests__/documentables.spec.ts +0 -0
  168. /package/src/core/{adapters → markdown/adapters}/__tests__/references.spec.ts +0 -0
  169. /package/src/core/{adapters → markdown/adapters}/documentables.ts +0 -0
  170. /package/src/core/{adapters → markdown/adapters}/fields-and-properties.ts +0 -0
  171. /package/src/core/{adapters → markdown/adapters}/methods-and-constructors.ts +0 -0
  172. /package/src/core/{adapters → markdown/adapters}/type-utils.ts +0 -0
  173. /package/src/core/{inheritance-chain.ts → markdown/reflection/inheritance-chain.ts} +0 -0
  174. /package/src/{transpiler/markdown/plain-markdown → core/markdown/templates}/constructors-partial-template.ts +0 -0
  175. /package/src/{transpiler/markdown/plain-markdown → core/markdown/templates}/documentable-partial-template.ts +0 -0
  176. /package/src/{transpiler/markdown/plain-markdown → core/markdown/templates}/enum-template.ts +0 -0
  177. /package/src/{transpiler/markdown/plain-markdown → core/markdown/templates}/fieldsPartialTemplate.ts +0 -0
  178. /package/src/{transpiler/markdown/plain-markdown → core/markdown/templates}/grouped-members-partial-template.ts +0 -0
  179. /package/src/{transpiler/markdown/plain-markdown → core/markdown/templates}/interface-template.ts +0 -0
  180. /package/src/{transpiler/markdown/plain-markdown → core/markdown/templates}/methods-partial-template.ts +0 -0
  181. /package/src/core/{templates → markdown/templates}/reference-guide.ts +0 -0
  182. /package/src/{transpiler/markdown/plain-markdown → core/markdown/templates}/type-doc-partial.ts +0 -0
  183. /package/src/{service → core/openapi}/__tests__/manifest-factory.spec.ts +0 -0
  184. /package/src/{model → core}/openapi/__tests__/open-api.spec.ts +0 -0
  185. /package/src/{model → core}/openapi/apex-doc-types.ts +0 -0
  186. /package/src/{model → core/openapi}/apex-type-wrappers/ClassMirrorWrapper.ts +0 -0
  187. /package/src/{model → core/openapi}/apex-type-wrappers/MethodMirrorWrapper.ts +0 -0
  188. /package/src/{model → core}/openapi/open-api-types.ts +0 -0
  189. /package/src/{model → core}/openapi/open-api.ts +0 -0
@@ -0,0 +1,127 @@
1
+ ---
2
+ # https://vitepress.dev/reference/default-theme-home-page
3
+ layout: home
4
+
5
+ hero:
6
+ name: "Apexdocs Vitepress Example"
7
+ text: "API Documentation"
8
+ tagline: My great project tagline
9
+ actions:
10
+ - theme: brand
11
+ text: Markdown Examples
12
+ link: /markdown-examples
13
+ - theme: alt
14
+ text: API Examples
15
+ link: /api-examples
16
+ ---
17
+
18
+ # Apex Reference Guide
19
+
20
+ ## Miscellaneous
21
+
22
+ ### [apexdocs.BaseClass](./Miscellaneous/apexdocs.BaseClass.md)
23
+
24
+ ### [apexdocs.MultiInheritanceClass](./Miscellaneous/apexdocs.MultiInheritanceClass.md)
25
+
26
+ ### [apexdocs.ParentInterface](./Miscellaneous/apexdocs.ParentInterface.md)
27
+
28
+ ### [apexdocs.ReferencedEnum](./Miscellaneous/apexdocs.ReferencedEnum.md)
29
+
30
+ ### [apexdocs.SampleException](./Miscellaneous/apexdocs.SampleException.md)
31
+
32
+ This is a sample exception.
33
+
34
+ ### [apexdocs.SampleInterface](./Miscellaneous/apexdocs.SampleInterface.md)
35
+
36
+ This is a sample interface
37
+
38
+ ### [apexdocs.Url](./Miscellaneous/apexdocs.Url.md)
39
+
40
+ Represents a uniform resource locator (URL) and provides access to parts of the URL.
41
+ Enables access to the base URL used to access your Salesforce org.
42
+
43
+ ## Usage
44
+ Use the methods of the `System.URL` class to create links to objects in your organization. Such objects can be files, images,
45
+ logos, or records that you want to include in external emails, in activities, or in Chatter posts. For example, you can create
46
+ a link to a file uploaded as an attachment to a Chatter post by concatenating the Salesforce base URL with the file ID:
47
+
48
+ ```apex
49
+ // Get a file uploaded through Chatter.
50
+ ContentDocument doc = [SELECT Id FROM ContentDocument
51
+ WHERE Title = 'myfile'];
52
+ // Create a link to the file.
53
+ String fullFileURL = URL.getOrgDomainURL().toExternalForm() +
54
+ '/' + doc.id;
55
+ System.debug(fullFileURL);
56
+ ```
57
+
58
+
59
+ The following example creates a link to a Salesforce record. The full URL is created by concatenating the Salesforce base
60
+ URL with the record ID.
61
+
62
+ ```apex
63
+ Account acct = [SELECT Id FROM Account WHERE Name = 'Acme' LIMIT 1];
64
+ String fullRecordURL = URL.getOrgDomainURL().toExternalForm() + '/' + acct.Id;
65
+ ```
66
+
67
+
68
+ ## Example
69
+ In this example, the base URL and the full request URL of the current Salesforce server instance are retrieved. Next, a URL
70
+ pointing to a specific account object is created. Finally, components of the base and full URL are obtained. This example
71
+ prints out all the results to the debug log output.
72
+
73
+ ```apex
74
+ // Create a new account called Acme that we will create a link for later.
75
+ Account myAccount = new Account(Name='Acme');
76
+ insert myAccount;
77
+
78
+ // Get the base URL.
79
+ String sfdcBaseURL = URL.getOrgDomainURL().toExternalForm();
80
+ System.debug('Base URL: ' + sfdcBaseURL );
81
+
82
+ // Get the URL for the current request.
83
+ String currentRequestURL = URL.getCurrentRequestUrl().toExternalForm();
84
+ System.debug('Current request URL: ' + currentRequestURL);
85
+
86
+ // Create the account URL from the base URL.
87
+ String accountURL = URL.getOrgDomainURL().toExternalForm() +
88
+ '/' + myAccount.Id;
89
+ System.debug('URL of a particular account: ' + accountURL);
90
+
91
+ // Get some parts of the base URL.
92
+ System.debug('Host: ' + URL.getOrgDomainURL().getHost());
93
+ System.debug('Protocol: ' + URL.getOrgDomainURL().getProtocol());
94
+
95
+ // Get the query string of the current request.
96
+ System.debug('Query: ' + URL.getCurrentRequestUrl().getQuery());
97
+ ```
98
+
99
+
100
+ ## Version Behavior Changes
101
+ In API version 41.0 and later, Apex URL objects are represented by the java.net.URI type, not the java.net.URL type.
102
+
103
+ The API version in which the URL object was instantiated determines the behavior of subsequent method calls to the
104
+ specific instance. Salesforce strongly encourages you to use API 41.0 and later versions for fully RFC-compliant URL
105
+ parsing that includes proper handling of edge cases of complex URL structures. API 41.0 and later versions also enforce
106
+ that inputs are valid, RFC-compliant URL or URI strings.
107
+
108
+ * [URL Constructors](https://developer.salesforce.com/docs/atlas.en-us.apexref.meta/apexref/apex_methods_system_url.htm#apex_System_URL_constructors)
109
+ * [URL Methods](https://developer.salesforce.com/docs/atlas.en-us.apexref.meta/apexref/apex_methods_system_url.htm#apex_System_URL_methods)
110
+
111
+ **See Also**
112
+ * [URL Class](https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_classes_url.htm)
113
+
114
+ ## Sample Enums
115
+
116
+ ### [apexdocs.SampleEnum](./Sample-Enums/apexdocs.SampleEnum.md)
117
+
118
+ This is a sample enum. This references [apexdocs.ReferencedEnum](./Miscellaneous/apexdocs.ReferencedEnum.md) .
119
+
120
+ This description has several lines
121
+
122
+ ## SampleGroup
123
+
124
+ ### [apexdocs.SampleClass](./SampleGroup/apexdocs.SampleClass.md)
125
+
126
+ aliquip ex sunt officia ullamco anim deserunt magna aliquip nisi eiusmod in sit officia veniam ex
127
+ deserunt ea officia exercitation laboris enim in duis quis enim eiusmod eu amet cupidatat.
@@ -0,0 +1,85 @@
1
+ # Markdown Extension Examples
2
+
3
+ This page demonstrates some of the built-in markdown extensions provided by VitePress.
4
+
5
+ ## Syntax Highlighting
6
+
7
+ VitePress provides Syntax Highlighting powered by [Shiki](https://github.com/shikijs/shiki), with additional features like line-highlighting:
8
+
9
+ **Input**
10
+
11
+ ````md
12
+ ```js{4}
13
+ export default {
14
+ data () {
15
+ return {
16
+ msg: 'Highlighted!'
17
+ }
18
+ }
19
+ }
20
+ ```
21
+ ````
22
+
23
+ **Output**
24
+
25
+ ```js{4}
26
+ export default {
27
+ data () {
28
+ return {
29
+ msg: 'Highlighted!'
30
+ }
31
+ }
32
+ }
33
+ ```
34
+
35
+ ## Custom Containers
36
+
37
+ **Input**
38
+
39
+ ```md
40
+ ::: info
41
+ This is an info box.
42
+ :::
43
+
44
+ ::: tip
45
+ This is a tip.
46
+ :::
47
+
48
+ ::: warning
49
+ This is a warning.
50
+ :::
51
+
52
+ ::: danger
53
+ This is a dangerous warning.
54
+ :::
55
+
56
+ ::: details
57
+ This is a details block.
58
+ :::
59
+ ```
60
+
61
+ **Output**
62
+
63
+ ::: info
64
+ This is an info box.
65
+ :::
66
+
67
+ ::: tip
68
+ This is a tip.
69
+ :::
70
+
71
+ ::: warning
72
+ This is a warning.
73
+ :::
74
+
75
+ ::: danger
76
+ This is a dangerous warning.
77
+ :::
78
+
79
+ ::: details
80
+ This is a details block.
81
+ :::
82
+
83
+ ## More
84
+
85
+ Check out the documentation for the [full list of markdown extensions](https://vitepress.dev/guide/markdown).
@@ -0,0 +1,3 @@
1
+ public abstract class BaseClass {
2
+ public SampleEnum sampleEnumFromBase;
3
+ }
@@ -0,0 +1 @@
1
+ public class MultiInheritanceClass extends SampleClass {}
@@ -0,0 +1,3 @@
1
+ public interface ParentInterface {
2
+ void sampleParentMethod();
3
+ }
@@ -0,0 +1,5 @@
1
+ public enum ReferencedEnum {
2
+ VALUE1,
3
+ VALUE2,
4
+ VALUE3
5
+ }
@@ -0,0 +1,72 @@
1
+ /**
2
+ * @description aliquip ex sunt officia ullamco anim deserunt magna aliquip nisi eiusmod in sit officia veniam ex
3
+ * deserunt ea officia exercitation laboris enim in duis quis enim eiusmod eu amet cupidatat.
4
+ * @group SampleGroup
5
+ * @example
6
+ * SampleClass sample = new SampleClass();
7
+ * sample.doSomething();
8
+ */
9
+ public with sharing virtual class SampleClass extends BaseClass implements SampleInterface, ParentInterface {
10
+ // @start-group Group Name
11
+ /**
12
+ * @description This is a sample field.
13
+ */
14
+ private final String name;
15
+ public String someProperty { get; private set; }
16
+ // @end-group
17
+
18
+ /**
19
+ * @description This is a sample constructor.
20
+ */
21
+ public SampleClass() {}
22
+
23
+ // @start-group Other Constructors
24
+ public SampleClass(String name) {
25
+ this.name = name;
26
+ }
27
+ // @end-group
28
+
29
+ // @start-group Available Methods
30
+ public void doSomething() {
31
+ System.debug('Doing something');
32
+ }
33
+ // @end-group
34
+
35
+ // @start-group Deprecated Methods
36
+
37
+ /**
38
+ * @description This is a sample method.
39
+ * @return A string value.
40
+ * @example
41
+ * SampleClass sample = new SampleClass();
42
+ * sample.doSomething();
43
+ */
44
+ @Deprecated
45
+ public virtual String sayHello() {
46
+ return 'Hello';
47
+ }
48
+
49
+ // @end-group
50
+
51
+ public class SomeInnerClass {
52
+ public String someInnerField;
53
+
54
+ public void doSomething() {
55
+ System.debug('Doing something');
56
+ }
57
+ }
58
+
59
+ /**
60
+ * @description This enum is used for foo and bar.
61
+ */
62
+ public enum SomeEnum {
63
+ /** @description This is a test. */
64
+ TEST_1,
65
+ TEST_2,
66
+ TEST_3
67
+ }
68
+
69
+ public interface SomeInterface {
70
+ void doSomething();
71
+ }
72
+ }
@@ -0,0 +1,30 @@
1
+ /**
2
+ * @description This is a sample enum. This references {@link ReferencedEnum}.
3
+ *
4
+ * This description has several lines
5
+ * @group Sample Enums
6
+ * @author John Doe
7
+ * @date 2022-01-01
8
+ * @some-custom Test. I can also have a {@link ReferencedEnum} here.
9
+ * And it can be multiline.
10
+ * @see ReferencedEnum
11
+ * @mermaid
12
+ * graph TD
13
+ * A[SampleEnum] -->|references| B[ReferencedEnum]
14
+ * B -->|referenced by| A
15
+ */
16
+ @NamespaceAccessible
17
+ public enum SampleEnum {
18
+ /**
19
+ * @description This is value 1
20
+ */
21
+ VALUE1,
22
+ /**
23
+ * @description This is value 2
24
+ */
25
+ VALUE2,
26
+ /**
27
+ * @description This is value 3
28
+ */
29
+ VALUE3
30
+ }
@@ -0,0 +1,17 @@
1
+ /**
2
+ * @description This is a sample exception.
3
+ * @usage
4
+ *
5
+ * You can use the exception the following way.
6
+ * You can also take a look at {@link SampleClass} to see how it is used.
7
+ * This is a dangerous HTML tag: <script>alert('Hello');</script>
8
+ *
9
+ * ```
10
+ * try {
11
+ * throw new SampleException();
12
+ * } catch (SampleException e) {
13
+ * System.debug('Caught exception');
14
+ * }
15
+ * ```
16
+ */
17
+ public class SampleException extends Exception {}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * @description This is a sample interface
3
+ * @author John Doe
4
+ * @date 2020-01-01
5
+ * @see SampleEnum
6
+ * @see ReferencedEnum
7
+ * @mermaid
8
+ * graph TD
9
+ * A[SampleInterface] -->|extends| B[ParentInterface]
10
+ * B -->|extends| C[GrandParentInterface]
11
+ * C -->|extends| D[GreatGrandParentInterface]
12
+ * @example
13
+ * SampleInterface sampleInterface = new SampleInterface();
14
+ * sampleInterface.sampleMethod();
15
+ */
16
+ @NamespaceAccessible
17
+ public interface SampleInterface extends ParentInterface {
18
+ /**
19
+ * @description This is a sample method
20
+ * @return Some return value
21
+ * @throws SampleException This is a sample exception
22
+ * @throws AnotherSampleException This is another sample exception
23
+ * @custom-tag This is a custom tag
24
+ * @another-custom-tag This is another custom tag
25
+ * @mermaid
26
+ * graph TD
27
+ * A[SampleInterface] -->|extends| B[ParentInterface]
28
+ * B -->|extends| C[GrandParentInterface]
29
+ * C -->|extends| D[GreatGrandParentInterface]
30
+ * @example
31
+ * SampleInterface sampleInterface = new SampleInterface();
32
+ * sampleInterface.sampleMethod();
33
+ */
34
+ String sampleMethod();
35
+
36
+ /**
37
+ * @description This is a sample method with parameters
38
+ * Sometimes it won't be possible to find a {@link NonExistent} link.
39
+ * @param param1 This is the first parameter
40
+ * @param param2 This is the second parameter
41
+ * @param theEnum This is an enum parameter
42
+ * @return Some return value
43
+ */
44
+ @Deprecated
45
+ SampleEnum sampleMethodWithParams(String param1, Integer param2, SampleEnum theEnum);
46
+ }
@@ -0,0 +1,195 @@
1
+ /**
2
+ * @description Represents a uniform resource locator (URL) and provides access to parts of the URL.
3
+ * Enables access to the base URL used to access your Salesforce org.
4
+ *
5
+ * ## Usage
6
+ * Use the methods of the `System.URL` class to create links to objects in your organization. Such objects can be files, images,
7
+ * logos, or records that you want to include in external emails, in activities, or in Chatter posts. For example, you can create
8
+ * a link to a file uploaded as an attachment to a Chatter post by concatenating the Salesforce base URL with the file ID:
9
+ *
10
+ * ```apex
11
+ * // Get a file uploaded through Chatter.
12
+ * ContentDocument doc = [SELECT Id FROM ContentDocument
13
+ * WHERE Title = 'myfile'];
14
+ * // Create a link to the file.
15
+ * String fullFileURL = URL.getOrgDomainURL().toExternalForm() +
16
+ * '/' + doc.id;
17
+ * System.debug(fullFileURL);
18
+ * ```
19
+ *
20
+ * The following example creates a link to a Salesforce record. The full URL is created by concatenating the Salesforce base
21
+ * URL with the record ID.
22
+ *
23
+ * ```apex
24
+ * Account acct = [SELECT Id FROM Account WHERE Name = 'Acme' LIMIT 1];
25
+ * String fullRecordURL = URL.getOrgDomainURL().toExternalForm() + '/' + acct.Id;
26
+ * ```
27
+ *
28
+ * ## Example
29
+ * In this example, the base URL and the full request URL of the current Salesforce server instance are retrieved. Next, a URL
30
+ * pointing to a specific account object is created. Finally, components of the base and full URL are obtained. This example
31
+ * prints out all the results to the debug log output.
32
+ *
33
+ * ```apex
34
+ * // Create a new account called Acme that we will create a link for later.
35
+ * Account myAccount = new Account(Name='Acme');
36
+ * insert myAccount;
37
+ *
38
+ * // Get the base URL.
39
+ * String sfdcBaseURL = URL.getOrgDomainURL().toExternalForm();
40
+ * System.debug('Base URL: ' + sfdcBaseURL );
41
+ *
42
+ * // Get the URL for the current request.
43
+ * String currentRequestURL = URL.getCurrentRequestUrl().toExternalForm();
44
+ * System.debug('Current request URL: ' + currentRequestURL);
45
+ *
46
+ * // Create the account URL from the base URL.
47
+ * String accountURL = URL.getOrgDomainURL().toExternalForm() +
48
+ * '/' + myAccount.Id;
49
+ * System.debug('URL of a particular account: ' + accountURL);
50
+ *
51
+ * // Get some parts of the base URL.
52
+ * System.debug('Host: ' + URL.getOrgDomainURL().getHost());
53
+ * System.debug('Protocol: ' + URL.getOrgDomainURL().getProtocol());
54
+ *
55
+ * // Get the query string of the current request.
56
+ * System.debug('Query: ' + URL.getCurrentRequestUrl().getQuery());
57
+ * ```
58
+ *
59
+ * ## Version Behavior Changes
60
+ * In API version 41.0 and later, Apex URL objects are represented by the java.net.URI type, not the java.net.URL type.
61
+ *
62
+ * The API version in which the URL object was instantiated determines the behavior of subsequent method calls to the
63
+ * specific instance. Salesforce strongly encourages you to use API 41.0 and later versions for fully RFC-compliant URL
64
+ * parsing that includes proper handling of edge cases of complex URL structures. API 41.0 and later versions also enforce
65
+ * that inputs are valid, RFC-compliant URL or URI strings.
66
+ *
67
+ * * [URL Constructors](https://developer.salesforce.com/docs/atlas.en-us.apexref.meta/apexref/apex_methods_system_url.htm#apex_System_URL_constructors)
68
+ * * [URL Methods](https://developer.salesforce.com/docs/atlas.en-us.apexref.meta/apexref/apex_methods_system_url.htm#apex_System_URL_methods)
69
+ *
70
+ * **See Also**
71
+ * * [URL Class](https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_classes_url.htm)
72
+ */
73
+ global class Url {
74
+ /**
75
+ * @description Creates a new instance of the URL class using the specified string representation of the URL.
76
+ * @param spec The string to parse as a URL.
77
+ */
78
+ global Url(String spec) { }
79
+
80
+ /**
81
+ * @description Creates a new instance of the URL class by parsing the specified spec within the specified context.
82
+ * @param context The context in which to parse the specification.
83
+ * @param spec The string to parse as a URL.
84
+ *
85
+ * @usage
86
+ * The new URL is created from the given context URL and the spec argument as described in RFC2396 "Uniform Resource Identifiers : Generic * Syntax" :
87
+ * ```xml
88
+ * <scheme>://<authority><path>?<query>#<fragment>
89
+ * ```
90
+ *
91
+ * For more information about the arguments of this constructor, see the corresponding URL(java.net.URL, java.lang.String) constructor for Java.
92
+ */
93
+ global Url(Url context, String spec) { }
94
+
95
+ /**
96
+ * @description Creates a new instance of the URL class using the specified protocol, host, and file on the host. The default port for the specified protocol is used.
97
+ * @param protocol The protocol name for this URL.
98
+ * @param host The host name for this URL.
99
+ * @param file The file name for this URL.
100
+ */
101
+ global Url(String protocol, String host, String file) {}
102
+
103
+ /**
104
+ * @description Creates a new instance of the URL class using the specified protocol, host, port number, and file on the host.
105
+ * @param protocol The protocol name for this URL.
106
+ * @param host The host name for this URL.
107
+ * @param port The port number for this URL.
108
+ * @param file The file name for this URL.
109
+ */
110
+ global Url(String protocol, String host, Integer port, String file) {}
111
+
112
+ /**
113
+ * @description Returns the authority portion of the current URL.
114
+ * @return The authority portion of the current URL.
115
+ */
116
+ global String getAuthority() {
117
+ return null;
118
+ }
119
+
120
+ /**
121
+ * @description Returns the URL of an entire request on a Salesforce instance.
122
+ * @return The URL of the entire request.
123
+ * @usage An example of a URL for an entire request is https://yourInstance.salesforce.com/apex/myVfPage.apexp.
124
+ */
125
+ global static Url getCurrentRequestUrl() {
126
+ return null;
127
+ }
128
+
129
+ /**
130
+ * @description Returns the default port number of the protocol associated with the current URL.
131
+ * @return The default port number of the protocol associated with the current URL.
132
+ * @usage Returns -1 if the URL scheme or the stream protocol handler for the URL doesn't define a default port number.
133
+ */
134
+ global Integer getDefPort() {
135
+ return null;
136
+ }
137
+
138
+ /**
139
+ * @description Returns the file name of the current URL.
140
+ * @return The file name of the current URL.
141
+ */
142
+ global String getFile() {
143
+ return null;
144
+ }
145
+
146
+ /**
147
+ * @description Returns the download URL for a file attachment.
148
+ * @param entityId Specifies the ID of the entity that holds the file data.
149
+ * @param fieldName Specifies the API name of a file field component, such as `AttachmentBody`.
150
+ * @return The download URL for the file attachment.
151
+ * @example
152
+ * String fileURL =
153
+ * URL.getFileFieldURL(
154
+ * '087000000000123' ,
155
+ * 'AttachmentBody');
156
+ */
157
+ global static String getFileFieldURL(String entityId, String fieldName) {
158
+ return null;
159
+ }
160
+
161
+ /**
162
+ * @description Returns the host name of the current URL.
163
+ * @return The host name of the current URL.
164
+ */
165
+ global String getHost() {
166
+ return null;
167
+ }
168
+
169
+ /**
170
+ * @description Returns the canonical URL for your org. For example, https://MyDomainName.my.salesforce.com.
171
+ * @return getOrgDomainUrl() always returns the login URL for your org, regardless of context. Use that URL when making API calls to your org.
172
+ * @usage
173
+ * Use getOrgDomainUrl() to interact with Salesforce REST and SOAP APIs in Apex code. Get endpoints for User Interface API calls, for creating and customizing picklist value sets and custom fields, and more.
174
+ *
175
+ * `getOrgDomainUrl()` can access the domain URL only for the org in which the Apex code is running.
176
+ *
177
+ * You don't need a RemoteSiteSetting for your org to interact with the Salesforce APIs using domain URLs retrieved with this method.
178
+ *
179
+ * @example
180
+ * // This example uses the Salesforce REST API to get organization limit values. For information on limits, see Limits in the REST API Developer Guide.
181
+ * Http h = new Http();
182
+ * HttpRequest req = new HttpRequest();
183
+ * req.setEndpoint(Url.getOrgDomainUrl().toExternalForm()
184
+ * + '/services/data/v44.0/limits');
185
+ * req.setMethod('GET');
186
+ * req.setHeader('Authorization', 'Bearer ' + UserInfo.getSessionId());
187
+ * HttpResponse res = h.send(req);
188
+ *
189
+ * @see-also
190
+ * * [Lightning Aura Components Developer Guide: Making API Calls from Apex](https://developer.salesforce.com/docs/atlas.en-us.250.0.lightning.meta/lightning/apex_api_calls.htm)
191
+ */
192
+ global static Url getOrgDomainUrl() {
193
+ return null;
194
+ }
195
+ }