-
Notifications
You must be signed in to change notification settings - Fork 38
Expand file tree
/
Copy pathworkspace.java.tmpl
More file actions
79 lines (70 loc) · 2.62 KB
/
Copy pathworkspace.java.tmpl
File metadata and controls
79 lines (70 loc) · 2.62 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT.
package com.databricks.sdk;
import com.databricks.sdk.core.ApiClient;
import com.databricks.sdk.core.ConfigLoader;
import com.databricks.sdk.core.DatabricksConfig;
{{- /* The mapping of mixin replacements should be defined in the .codegen.json file somehow, so that it can be used
in multiple pipelines in the template itself. Pipelines in go template are not able to reference variables
defined in an outer scope (https://github.com/golang/go/issues/17454). */ -}}
import com.databricks.sdk.mixin.ClustersExt;
import com.databricks.sdk.mixin.DbfsExt;
import com.databricks.sdk.mixin.SecretsExt;
{{range .Services}}{{if not .IsAccounts}}
import com.databricks.sdk.service.{{.Package.Name}}.{{.PascalName}}API;
import com.databricks.sdk.service.{{.Package.Name}}.{{.PascalName}}Service;
{{end}}{{end}}
import com.databricks.sdk.support.Generated;
{{- define "api" -}}
{{- $mixins := dict "ClustersAPI" "ClustersExt" "DbfsAPI" "DbfsExt" "SecretsAPI" "SecretsExt" -}}
{{- $genApi := concat .PascalName "API" -}}
{{- getOrDefault $mixins $genApi $genApi -}}
{{- end -}}
/**
* Entry point for accessing Databricks workspace-level APIs
*/
@Generated
public class WorkspaceClient {
private final ApiClient apiClient;
private final DatabricksConfig config;
{{range .Services}}{{if not .IsAccounts}}
private {{template "api" .}} {{.CamelName}}API;{{end}}{{end}}
public WorkspaceClient() {
this(ConfigLoader.getDefault());
}
public WorkspaceClient(DatabricksConfig config) {
this.config = config;
apiClient = new ApiClient(config);
{{range .Services}}{{if not .IsAccounts}}
{{.CamelName}}API = new {{template "api" .}}(apiClient);{{end}}{{end}}
}
/** Constructor for mocks */
public WorkspaceClient(boolean mock) {
this(mock, null /* apiClient */);
}
/** Constructor for mocks */
public WorkspaceClient(boolean mock, ApiClient apiClient) {
this.apiClient = apiClient;
this.config = null;
}
{{range .Services}}{{if not .IsAccounts}}
{{if .Description}}/**
{{.Comment " * " 80}}
*/{{end}}
public {{template "api" .}} {{.CamelName}}() {
return {{.CamelName}}API;
}
{{end}}{{end}}
{{range .Services}}{{if not .IsAccounts}}
/** Replace {{.PascalName}}API implementation with mock */
public WorkspaceClient with{{.PascalName}}Impl({{.PascalName}}Service {{.CamelName}}) {
{{.CamelName}}API = new {{template "api" .}}({{.CamelName}});
return this;
}
{{end}}{{end}}
public ApiClient apiClient() {
return apiClient;
}
public DatabricksConfig config() {
return config;
}
}