-
Notifications
You must be signed in to change notification settings - Fork 36
/
model_dataset.go
141 lines (120 loc) · 3.76 KB
/
model_dataset.go
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
package dataset
import (
"encoding/json"
"fmt"
"strings"
)
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License. See NOTICE.txt in the project root for license information.
type DataSet interface {
}
// RawDataSetImpl is returned when the Discriminated Value
// doesn't match any of the defined types
// NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround)
// and is used only for Deserialization (e.g. this cannot be used as a Request Payload).
type RawDataSetImpl struct {
Type string
Values map[string]interface{}
}
func unmarshalDataSetImplementation(input []byte) (DataSet, error) {
if input == nil {
return nil, nil
}
var temp map[string]interface{}
if err := json.Unmarshal(input, &temp); err != nil {
return nil, fmt.Errorf("unmarshaling DataSet into map[string]interface: %+v", err)
}
value, ok := temp["kind"].(string)
if !ok {
return nil, nil
}
if strings.EqualFold(value, "AdlsGen1File") {
var out ADLSGen1FileDataSet
if err := json.Unmarshal(input, &out); err != nil {
return nil, fmt.Errorf("unmarshaling into ADLSGen1FileDataSet: %+v", err)
}
return out, nil
}
if strings.EqualFold(value, "AdlsGen1Folder") {
var out ADLSGen1FolderDataSet
if err := json.Unmarshal(input, &out); err != nil {
return nil, fmt.Errorf("unmarshaling into ADLSGen1FolderDataSet: %+v", err)
}
return out, nil
}
if strings.EqualFold(value, "AdlsGen2File") {
var out ADLSGen2FileDataSet
if err := json.Unmarshal(input, &out); err != nil {
return nil, fmt.Errorf("unmarshaling into ADLSGen2FileDataSet: %+v", err)
}
return out, nil
}
if strings.EqualFold(value, "AdlsGen2FileSystem") {
var out ADLSGen2FileSystemDataSet
if err := json.Unmarshal(input, &out); err != nil {
return nil, fmt.Errorf("unmarshaling into ADLSGen2FileSystemDataSet: %+v", err)
}
return out, nil
}
if strings.EqualFold(value, "AdlsGen2Folder") {
var out ADLSGen2FolderDataSet
if err := json.Unmarshal(input, &out); err != nil {
return nil, fmt.Errorf("unmarshaling into ADLSGen2FolderDataSet: %+v", err)
}
return out, nil
}
if strings.EqualFold(value, "Container") {
var out BlobContainerDataSet
if err := json.Unmarshal(input, &out); err != nil {
return nil, fmt.Errorf("unmarshaling into BlobContainerDataSet: %+v", err)
}
return out, nil
}
if strings.EqualFold(value, "Blob") {
var out BlobDataSet
if err := json.Unmarshal(input, &out); err != nil {
return nil, fmt.Errorf("unmarshaling into BlobDataSet: %+v", err)
}
return out, nil
}
if strings.EqualFold(value, "BlobFolder") {
var out BlobFolderDataSet
if err := json.Unmarshal(input, &out); err != nil {
return nil, fmt.Errorf("unmarshaling into BlobFolderDataSet: %+v", err)
}
return out, nil
}
if strings.EqualFold(value, "KustoCluster") {
var out KustoClusterDataSet
if err := json.Unmarshal(input, &out); err != nil {
return nil, fmt.Errorf("unmarshaling into KustoClusterDataSet: %+v", err)
}
return out, nil
}
if strings.EqualFold(value, "KustoDatabase") {
var out KustoDatabaseDataSet
if err := json.Unmarshal(input, &out); err != nil {
return nil, fmt.Errorf("unmarshaling into KustoDatabaseDataSet: %+v", err)
}
return out, nil
}
if strings.EqualFold(value, "SqlDBTable") {
var out SqlDBTableDataSet
if err := json.Unmarshal(input, &out); err != nil {
return nil, fmt.Errorf("unmarshaling into SqlDBTableDataSet: %+v", err)
}
return out, nil
}
if strings.EqualFold(value, "SqlDWTable") {
var out SqlDWTableDataSet
if err := json.Unmarshal(input, &out); err != nil {
return nil, fmt.Errorf("unmarshaling into SqlDWTableDataSet: %+v", err)
}
return out, nil
}
out := RawDataSetImpl{
Type: value,
Values: temp,
}
return out, nil
}