@finos/legend-extension-dsl-persistence 2.0.8 → 2.0.11
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.
- package/lib/components/studio/DSLPersistence_CodeSnippets.d.ts +1 -0
- package/lib/components/studio/DSLPersistence_CodeSnippets.d.ts.map +1 -1
- package/lib/components/studio/DSLPersistence_CodeSnippets.js +5 -1
- package/lib/components/studio/DSLPersistence_CodeSnippets.js.map +1 -1
- package/lib/components/studio/{DSLPersistence_LegendStudioPlugin.d.ts → DSLPersistence_LegendStudioApplicationPlugin.d.ts} +3 -3
- package/lib/components/studio/DSLPersistence_LegendStudioApplicationPlugin.d.ts.map +1 -0
- package/lib/components/studio/{DSLPersistence_LegendStudioPlugin.js → DSLPersistence_LegendStudioApplicationPlugin.js} +39 -8
- package/lib/components/studio/DSLPersistence_LegendStudioApplicationPlugin.js.map +1 -0
- package/lib/components/studio/DSLPersistence_LegendStudioDocumentation.d.ts +2 -1
- package/lib/components/studio/DSLPersistence_LegendStudioDocumentation.d.ts.map +1 -1
- package/lib/components/studio/DSLPersistence_LegendStudioDocumentation.js +1 -0
- package/lib/components/studio/DSLPersistence_LegendStudioDocumentation.js.map +1 -1
- package/lib/graph/DSLPersistence_PureGraphPlugin.d.ts.map +1 -1
- package/lib/graph/DSLPersistence_PureGraphPlugin.js +2 -1
- package/lib/graph/DSLPersistence_PureGraphPlugin.js.map +1 -1
- package/lib/graphManager/DSLPersistence_GraphManagerHelper.d.ts +3 -0
- package/lib/graphManager/DSLPersistence_GraphManagerHelper.d.ts.map +1 -1
- package/lib/graphManager/DSLPersistence_GraphManagerHelper.js +3 -0
- package/lib/graphManager/DSLPersistence_GraphManagerHelper.js.map +1 -1
- package/lib/graphManager/DSLPersistence_PureGraphManagerPlugin.d.ts +1 -0
- package/lib/graphManager/DSLPersistence_PureGraphManagerPlugin.d.ts.map +1 -1
- package/lib/graphManager/DSLPersistence_PureGraphManagerPlugin.js +13 -1
- package/lib/graphManager/DSLPersistence_PureGraphManagerPlugin.js.map +1 -1
- package/lib/graphManager/action/changeDetection/DSLPersistenceContext_ObserverHelper.d.ts +18 -0
- package/lib/graphManager/action/changeDetection/DSLPersistenceContext_ObserverHelper.d.ts.map +1 -0
- package/lib/graphManager/action/changeDetection/DSLPersistenceContext_ObserverHelper.js +29 -0
- package/lib/graphManager/action/changeDetection/DSLPersistenceContext_ObserverHelper.js.map +1 -0
- package/lib/index.css +2 -2
- package/lib/index.css.map +1 -1
- package/lib/index.d.ts +9 -2
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +12 -2
- package/lib/index.js.map +1 -1
- package/lib/models/DSLPersistence_ModelUtils.d.ts +5 -0
- package/lib/models/DSLPersistence_ModelUtils.d.ts.map +1 -1
- package/lib/models/DSLPersistence_ModelUtils.js +9 -0
- package/lib/models/DSLPersistence_ModelUtils.js.map +1 -1
- package/lib/models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_PersistenceContext.d.ts +29 -0
- package/lib/models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_PersistenceContext.d.ts.map +1 -0
- package/lib/models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_PersistenceContext.js +37 -0
- package/lib/models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_PersistenceContext.js.map +1 -0
- package/lib/models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_PersistencePlatform.d.ts +23 -0
- package/lib/models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_PersistencePlatform.d.ts.map +1 -0
- package/lib/models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_PersistencePlatform.js +25 -0
- package/lib/models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_PersistencePlatform.js.map +1 -0
- package/lib/models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_ServiceParameter.d.ts +34 -0
- package/lib/models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_ServiceParameter.d.ts.map +1 -0
- package/lib/models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_ServiceParameter.js +49 -0
- package/lib/models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_ServiceParameter.js.map +1 -0
- package/lib/models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_Sink.d.ts +3 -2
- package/lib/models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_Sink.d.ts.map +1 -1
- package/lib/models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_Sink.js +6 -1
- package/lib/models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_Sink.js.map +1 -1
- package/lib/models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_TargetShape.d.ts +2 -2
- package/lib/models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_TargetShape.d.ts.map +1 -1
- package/lib/models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_TargetShape.js +1 -1
- package/lib/models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_TargetShape.js.map +1 -1
- package/lib/models/protocols/pure/DSLPersistence_PureProtocolProcessorPlugin.d.ts +1 -0
- package/lib/models/protocols/pure/DSLPersistence_PureProtocolProcessorPlugin.d.ts.map +1 -1
- package/lib/models/protocols/pure/DSLPersistence_PureProtocolProcessorPlugin.js +33 -0
- package/lib/models/protocols/pure/DSLPersistence_PureProtocolProcessorPlugin.js.map +1 -1
- package/lib/models/protocols/pure/DSLPersistence_PureProtocolProcessorPlugin_Extension.d.ts +30 -0
- package/lib/models/protocols/pure/DSLPersistence_PureProtocolProcessorPlugin_Extension.d.ts.map +1 -0
- package/lib/models/protocols/pure/DSLPersistence_PureProtocolProcessorPlugin_Extension.js +17 -0
- package/lib/models/protocols/pure/DSLPersistence_PureProtocolProcessorPlugin_Extension.js.map +1 -0
- package/lib/models/protocols/pure/v1/model/packageableElements/persistence/V1_DSLPersistence_PersistenceContext.d.ts +28 -0
- package/lib/models/protocols/pure/v1/model/packageableElements/persistence/V1_DSLPersistence_PersistenceContext.d.ts.map +1 -0
- package/lib/models/protocols/pure/v1/model/packageableElements/persistence/V1_DSLPersistence_PersistenceContext.js +37 -0
- package/lib/models/protocols/pure/v1/model/packageableElements/persistence/V1_DSLPersistence_PersistenceContext.js.map +1 -0
- package/lib/models/protocols/pure/v1/model/packageableElements/persistence/V1_DSLPersistence_PersistencePlatform.d.ts +23 -0
- package/lib/models/protocols/pure/v1/model/packageableElements/persistence/V1_DSLPersistence_PersistencePlatform.d.ts.map +1 -0
- package/lib/models/protocols/pure/v1/model/packageableElements/persistence/V1_DSLPersistence_PersistencePlatform.js +25 -0
- package/lib/models/protocols/pure/v1/model/packageableElements/persistence/V1_DSLPersistence_PersistencePlatform.js.map +1 -0
- package/lib/models/protocols/pure/v1/model/packageableElements/persistence/V1_DSLPersistence_ServiceParameter.d.ts +34 -0
- package/lib/models/protocols/pure/v1/model/packageableElements/persistence/V1_DSLPersistence_ServiceParameter.d.ts.map +1 -0
- package/lib/models/protocols/pure/v1/model/packageableElements/persistence/V1_DSLPersistence_ServiceParameter.js +49 -0
- package/lib/models/protocols/pure/v1/model/packageableElements/persistence/V1_DSLPersistence_ServiceParameter.js.map +1 -0
- package/lib/models/protocols/pure/v1/model/packageableElements/persistence/V1_DSLPersistence_Sink.d.ts +2 -1
- package/lib/models/protocols/pure/v1/model/packageableElements/persistence/V1_DSLPersistence_Sink.d.ts.map +1 -1
- package/lib/models/protocols/pure/v1/model/packageableElements/persistence/V1_DSLPersistence_Sink.js +6 -1
- package/lib/models/protocols/pure/v1/model/packageableElements/persistence/V1_DSLPersistence_Sink.js.map +1 -1
- package/lib/models/protocols/pure/v1/transformation/pureGraph/V1_DSLPersistence_GraphBuilderHelper.d.ts +2 -0
- package/lib/models/protocols/pure/v1/transformation/pureGraph/V1_DSLPersistence_GraphBuilderHelper.d.ts.map +1 -1
- package/lib/models/protocols/pure/v1/transformation/pureGraph/V1_DSLPersistence_GraphBuilderHelper.js +2 -1
- package/lib/models/protocols/pure/v1/transformation/pureGraph/V1_DSLPersistence_GraphBuilderHelper.js.map +1 -1
- package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_PersistenceContextTransformer.d.ts +36 -0
- package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_PersistenceContextTransformer.d.ts.map +1 -0
- package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_PersistenceContextTransformer.js +75 -0
- package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_PersistenceContextTransformer.js.map +1 -0
- package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_PersistenceTransformer.d.ts.map +1 -1
- package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_PersistenceTransformer.js +7 -2
- package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_PersistenceTransformer.js.map +1 -1
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_PersistenceBuilder.d.ts.map +1 -1
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_PersistenceBuilder.js +11 -4
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_PersistenceBuilder.js.map +1 -1
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_PersistenceContextBuilder.d.ts +35 -0
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_PersistenceContextBuilder.d.ts.map +1 -0
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_PersistenceContextBuilder.js +74 -0
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_PersistenceContextBuilder.js.map +1 -0
- package/lib/models/protocols/pure/v1/transformation/pureProtocol/V1_DSLPersistenceContext_ProtocolHelper.d.ts +31 -0
- package/lib/models/protocols/pure/v1/transformation/pureProtocol/V1_DSLPersistenceContext_ProtocolHelper.d.ts.map +1 -0
- package/lib/models/protocols/pure/v1/transformation/pureProtocol/V1_DSLPersistenceContext_ProtocolHelper.js +118 -0
- package/lib/models/protocols/pure/v1/transformation/pureProtocol/V1_DSLPersistenceContext_ProtocolHelper.js.map +1 -0
- package/lib/models/protocols/pure/v1/transformation/pureProtocol/V1_DSLPersistence_ProtocolHelper.d.ts +3 -3
- package/lib/models/protocols/pure/v1/transformation/pureProtocol/V1_DSLPersistence_ProtocolHelper.d.ts.map +1 -1
- package/lib/models/protocols/pure/v1/transformation/pureProtocol/V1_DSLPersistence_ProtocolHelper.js +3 -5
- package/lib/models/protocols/pure/v1/transformation/pureProtocol/V1_DSLPersistence_ProtocolHelper.js.map +1 -1
- package/lib/package.json +5 -5
- package/package.json +12 -12
- package/src/components/studio/DSLPersistence_CodeSnippets.ts +6 -1
- package/src/components/studio/{DSLPersistence_LegendStudioPlugin.tsx → DSLPersistence_LegendStudioApplicationPlugin.tsx} +51 -12
- package/src/components/studio/DSLPersistence_LegendStudioDocumentation.ts +1 -0
- package/src/graph/DSLPersistence_PureGraphPlugin.ts +2 -1
- package/src/graphManager/DSLPersistence_GraphManagerHelper.ts +20 -0
- package/src/graphManager/DSLPersistence_PureGraphManagerPlugin.ts +12 -1
- package/src/graphManager/action/changeDetection/DSLPersistenceContext_ObserverHelper.ts +38 -0
- package/src/index.ts +14 -2
- package/src/models/DSLPersistence_ModelUtils.ts +14 -0
- package/src/models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_PersistenceContext.ts +50 -0
- package/src/models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_PersistencePlatform.ts +30 -0
- package/src/models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_ServiceParameter.ts +61 -0
- package/src/models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_Sink.ts +8 -2
- package/src/models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_TargetShape.ts +3 -7
- package/src/models/protocols/pure/DSLPersistence_PureProtocolProcessorPlugin.ts +52 -0
- package/src/models/protocols/pure/DSLPersistence_PureProtocolProcessorPlugin_Extension.ts +57 -0
- package/src/models/protocols/pure/v1/model/packageableElements/persistence/V1_DSLPersistence_PersistenceContext.ts +51 -0
- package/src/models/protocols/pure/v1/model/packageableElements/persistence/V1_DSLPersistence_PersistencePlatform.ts +31 -0
- package/src/models/protocols/pure/v1/model/packageableElements/persistence/V1_DSLPersistence_ServiceParameter.ts +64 -0
- package/src/models/protocols/pure/v1/model/packageableElements/persistence/V1_DSLPersistence_Sink.ts +7 -2
- package/src/models/protocols/pure/v1/transformation/pureGraph/V1_DSLPersistence_GraphBuilderHelper.ts +13 -1
- package/src/models/protocols/pure/v1/transformation/pureGraph/from/V1_PersistenceContextTransformer.ts +141 -0
- package/src/models/protocols/pure/v1/transformation/pureGraph/from/V1_PersistenceTransformer.ts +11 -6
- package/src/models/protocols/pure/v1/transformation/pureGraph/to/V1_PersistenceBuilder.ts +15 -12
- package/src/models/protocols/pure/v1/transformation/pureGraph/to/V1_PersistenceContextBuilder.ts +151 -0
- package/src/models/protocols/pure/v1/transformation/pureProtocol/V1_DSLPersistenceContext_ProtocolHelper.ts +242 -0
- package/src/models/protocols/pure/v1/transformation/pureProtocol/V1_DSLPersistence_ProtocolHelper.ts +20 -31
- package/tsconfig.json +12 -1
- package/lib/components/studio/DSLPersistence_LegendStudioPlugin.d.ts.map +0 -1
- package/lib/components/studio/DSLPersistence_LegendStudioPlugin.js.map +0 -1
|
@@ -15,12 +15,13 @@
|
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
17
|
import packageJson from '../../../package.json';
|
|
18
|
-
import {
|
|
18
|
+
import type { DocumentationEntry } from '@finos/legend-application';
|
|
19
|
+
import { MeteorIcon, PuzzlePieceIcon } from '@finos/legend-art';
|
|
19
20
|
import type { PackageableElement } from '@finos/legend-graph';
|
|
20
21
|
import {
|
|
21
|
-
|
|
22
|
+
LegendStudioApplicationPlugin,
|
|
22
23
|
UnsupportedElementEditorState,
|
|
23
|
-
type
|
|
24
|
+
type DSL_LegendStudioApplicationPlugin_Extension,
|
|
24
25
|
type EditorStore,
|
|
25
26
|
type ElementEditorState,
|
|
26
27
|
type ElementEditorStateCreator,
|
|
@@ -36,21 +37,29 @@ import {
|
|
|
36
37
|
type PureGrammarParserDocumentationGetter,
|
|
37
38
|
} from '@finos/legend-studio';
|
|
38
39
|
import { Persistence } from '../../models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_Persistence.js';
|
|
40
|
+
import { PersistenceContext } from '../../models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_PersistenceContext.js';
|
|
39
41
|
import {
|
|
42
|
+
PURE_GRAMMAR_PERSISTENCE_CONTEXT_ELEMENT_TYPE_LABEL,
|
|
40
43
|
PURE_GRAMMAR_PERSISTENCE_ELEMENT_TYPE_LABEL,
|
|
41
44
|
PURE_GRAMMAR_PERSISTENCE_PARSER_NAME,
|
|
42
45
|
} from '../../graphManager/DSLPersistence_PureGraphManagerPlugin.js';
|
|
46
|
+
import {
|
|
47
|
+
BLANK_PERSISTENCE_CONTEXT_SNIPPET,
|
|
48
|
+
BLANK_PERSISTENCE_SNIPPET,
|
|
49
|
+
} from './DSLPersistence_CodeSnippets.js';
|
|
43
50
|
import { DSL_PERSISTENCE_LEGEND_STUDIO_DOCUMENTATION_KEY } from './DSLPersistence_LegendStudioDocumentation.js';
|
|
44
|
-
import { BLANK_PERSISTENCE_SNIPPET } from './DSLPersistence_CodeSnippets.js';
|
|
45
|
-
import type { LegendApplicationDocumentationEntry } from '@finos/legend-application';
|
|
46
51
|
|
|
47
52
|
const PERSISTENCE_ELEMENT_TYPE = 'PERSISTENCE';
|
|
53
|
+
const PERSISTENCE_CONTEXT_ELEMENT_TYPE = 'PERSISTENCE_CONTEXT';
|
|
54
|
+
|
|
48
55
|
const PERSISTENCE_ELEMENT_PROJECT_EXPLORER_DND_TYPE =
|
|
49
56
|
'PROJECT_EXPLORER_PERSISTENCE';
|
|
57
|
+
const PERSISTENCE_CONTEXT_ELEMENT_PROJECT_EXPLORER_DND_TYPE =
|
|
58
|
+
'PROJECT_EXPLORER_PERSISTENCE_CONTEXT';
|
|
50
59
|
|
|
51
|
-
export class
|
|
52
|
-
extends
|
|
53
|
-
implements
|
|
60
|
+
export class DSLPersistence_LegendStudioApplicationPlugin
|
|
61
|
+
extends LegendStudioApplicationPlugin
|
|
62
|
+
implements DSL_LegendStudioApplicationPlugin_Extension
|
|
54
63
|
{
|
|
55
64
|
constructor() {
|
|
56
65
|
super(packageJson.extensions.studioPlugin, packageJson.version);
|
|
@@ -59,12 +68,13 @@ export class DSLPersistence_LegendStudioPlugin
|
|
|
59
68
|
override getExtraRequiredDocumentationKeys(): string[] {
|
|
60
69
|
return [
|
|
61
70
|
DSL_PERSISTENCE_LEGEND_STUDIO_DOCUMENTATION_KEY.GRAMMAR_ELEMENT_PERSISTENCE,
|
|
71
|
+
DSL_PERSISTENCE_LEGEND_STUDIO_DOCUMENTATION_KEY.GRAMMAR_ELEMENT_PERSISTENCE_CONTEXT,
|
|
62
72
|
DSL_PERSISTENCE_LEGEND_STUDIO_DOCUMENTATION_KEY.GRAMMAR_PARSER,
|
|
63
73
|
];
|
|
64
74
|
}
|
|
65
75
|
|
|
66
76
|
getExtraSupportedElementTypes(): string[] {
|
|
67
|
-
return [PERSISTENCE_ELEMENT_TYPE];
|
|
77
|
+
return [PERSISTENCE_ELEMENT_TYPE, PERSISTENCE_CONTEXT_ELEMENT_TYPE];
|
|
68
78
|
}
|
|
69
79
|
|
|
70
80
|
getExtraElementTypeGetters(): ElementTypeGetter[] {
|
|
@@ -72,6 +82,8 @@ export class DSLPersistence_LegendStudioPlugin
|
|
|
72
82
|
(element: PackageableElement): string | undefined => {
|
|
73
83
|
if (element instanceof Persistence) {
|
|
74
84
|
return PERSISTENCE_ELEMENT_TYPE;
|
|
85
|
+
} else if (element instanceof PersistenceContext) {
|
|
86
|
+
return PERSISTENCE_CONTEXT_ELEMENT_TYPE;
|
|
75
87
|
}
|
|
76
88
|
return undefined;
|
|
77
89
|
},
|
|
@@ -87,6 +99,12 @@ export class DSLPersistence_LegendStudioPlugin
|
|
|
87
99
|
<MeteorIcon />
|
|
88
100
|
</div>
|
|
89
101
|
);
|
|
102
|
+
} else if (type === PERSISTENCE_CONTEXT_ELEMENT_TYPE) {
|
|
103
|
+
return (
|
|
104
|
+
<div className="icon icon--persistence-context">
|
|
105
|
+
<PuzzlePieceIcon />
|
|
106
|
+
</div>
|
|
107
|
+
);
|
|
90
108
|
}
|
|
91
109
|
return undefined;
|
|
92
110
|
},
|
|
@@ -102,6 +120,8 @@ export class DSLPersistence_LegendStudioPlugin
|
|
|
102
120
|
): PackageableElement | undefined => {
|
|
103
121
|
if (type === PERSISTENCE_ELEMENT_TYPE) {
|
|
104
122
|
return new Persistence(name);
|
|
123
|
+
} else if (type === PERSISTENCE_CONTEXT_ELEMENT_TYPE) {
|
|
124
|
+
return new PersistenceContext(name);
|
|
105
125
|
}
|
|
106
126
|
return undefined;
|
|
107
127
|
},
|
|
@@ -116,6 +136,8 @@ export class DSLPersistence_LegendStudioPlugin
|
|
|
116
136
|
): ElementEditorState | undefined => {
|
|
117
137
|
if (element instanceof Persistence) {
|
|
118
138
|
return new UnsupportedElementEditorState(editorStore, element);
|
|
139
|
+
} else if (element instanceof PersistenceContext) {
|
|
140
|
+
return new UnsupportedElementEditorState(editorStore, element);
|
|
119
141
|
}
|
|
120
142
|
return undefined;
|
|
121
143
|
},
|
|
@@ -127,6 +149,8 @@ export class DSLPersistence_LegendStudioPlugin
|
|
|
127
149
|
(element: PackageableElement): string | undefined => {
|
|
128
150
|
if (element instanceof Persistence) {
|
|
129
151
|
return PERSISTENCE_ELEMENT_PROJECT_EXPLORER_DND_TYPE;
|
|
152
|
+
} else if (element instanceof PersistenceContext) {
|
|
153
|
+
return PERSISTENCE_CONTEXT_ELEMENT_PROJECT_EXPLORER_DND_TYPE;
|
|
130
154
|
}
|
|
131
155
|
return undefined;
|
|
132
156
|
},
|
|
@@ -134,7 +158,10 @@ export class DSLPersistence_LegendStudioPlugin
|
|
|
134
158
|
}
|
|
135
159
|
|
|
136
160
|
getExtraGrammarTextEditorDnDTypes(): string[] {
|
|
137
|
-
return [
|
|
161
|
+
return [
|
|
162
|
+
PERSISTENCE_ELEMENT_PROJECT_EXPLORER_DND_TYPE,
|
|
163
|
+
PERSISTENCE_CONTEXT_ELEMENT_PROJECT_EXPLORER_DND_TYPE,
|
|
164
|
+
];
|
|
138
165
|
}
|
|
139
166
|
|
|
140
167
|
getExtraPureGrammarParserElementDocumentationGetters(): PureGrammarParserElementDocumentationGetter[] {
|
|
@@ -143,12 +170,19 @@ export class DSLPersistence_LegendStudioPlugin
|
|
|
143
170
|
editorStore: EditorStore,
|
|
144
171
|
parserKeyword: string,
|
|
145
172
|
elementKeyword: string,
|
|
146
|
-
):
|
|
173
|
+
): DocumentationEntry | undefined => {
|
|
147
174
|
if (parserKeyword === PURE_GRAMMAR_PERSISTENCE_PARSER_NAME) {
|
|
148
175
|
if (elementKeyword === PURE_GRAMMAR_PERSISTENCE_ELEMENT_TYPE_LABEL) {
|
|
149
176
|
return editorStore.applicationStore.documentationService.getDocEntry(
|
|
150
177
|
DSL_PERSISTENCE_LEGEND_STUDIO_DOCUMENTATION_KEY.GRAMMAR_ELEMENT_PERSISTENCE,
|
|
151
178
|
);
|
|
179
|
+
} else if (
|
|
180
|
+
elementKeyword ===
|
|
181
|
+
PURE_GRAMMAR_PERSISTENCE_CONTEXT_ELEMENT_TYPE_LABEL
|
|
182
|
+
) {
|
|
183
|
+
return editorStore.applicationStore.documentationService.getDocEntry(
|
|
184
|
+
DSL_PERSISTENCE_LEGEND_STUDIO_DOCUMENTATION_KEY.GRAMMAR_ELEMENT_PERSISTENCE_CONTEXT,
|
|
185
|
+
);
|
|
152
186
|
}
|
|
153
187
|
}
|
|
154
188
|
return undefined;
|
|
@@ -161,7 +195,7 @@ export class DSLPersistence_LegendStudioPlugin
|
|
|
161
195
|
(
|
|
162
196
|
editorStore: EditorStore,
|
|
163
197
|
parserKeyword: string,
|
|
164
|
-
):
|
|
198
|
+
): DocumentationEntry | undefined => {
|
|
165
199
|
if (parserKeyword === PURE_GRAMMAR_PERSISTENCE_PARSER_NAME) {
|
|
166
200
|
return editorStore.applicationStore.documentationService.getDocEntry(
|
|
167
201
|
DSL_PERSISTENCE_LEGEND_STUDIO_DOCUMENTATION_KEY.GRAMMAR_PARSER,
|
|
@@ -201,6 +235,11 @@ export class DSLPersistence_LegendStudioPlugin
|
|
|
201
235
|
description: '(blank)',
|
|
202
236
|
insertText: BLANK_PERSISTENCE_SNIPPET,
|
|
203
237
|
},
|
|
238
|
+
{
|
|
239
|
+
text: PURE_GRAMMAR_PERSISTENCE_CONTEXT_ELEMENT_TYPE_LABEL,
|
|
240
|
+
description: '(blank)',
|
|
241
|
+
insertText: BLANK_PERSISTENCE_CONTEXT_SNIPPET,
|
|
242
|
+
},
|
|
204
243
|
]
|
|
205
244
|
: undefined,
|
|
206
245
|
];
|
|
@@ -17,4 +17,5 @@
|
|
|
17
17
|
export enum DSL_PERSISTENCE_LEGEND_STUDIO_DOCUMENTATION_KEY {
|
|
18
18
|
GRAMMAR_PARSER = 'dsl-persistence.grammar.parser',
|
|
19
19
|
GRAMMAR_ELEMENT_PERSISTENCE = 'dsl-persistence.grammar.element.persistence',
|
|
20
|
+
GRAMMAR_ELEMENT_PERSISTENCE_CONTEXT = 'dsl-persistence.grammar.element.persistence-context',
|
|
20
21
|
}
|
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
|
|
17
17
|
import packageJson from '../../package.json';
|
|
18
18
|
import { Persistence } from '../models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_Persistence.js';
|
|
19
|
+
import { PersistenceContext } from '../models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_PersistenceContext.js';
|
|
19
20
|
import type { Clazz } from '@finos/legend-shared';
|
|
20
21
|
import { type PackageableElement, PureGraphPlugin } from '@finos/legend-graph';
|
|
21
22
|
|
|
@@ -25,6 +26,6 @@ export class DSLPersistence_PureGraphPlugin extends PureGraphPlugin {
|
|
|
25
26
|
}
|
|
26
27
|
|
|
27
28
|
override getExtraPureGraphExtensionClasses(): Clazz<PackageableElement>[] {
|
|
28
|
-
return [Persistence];
|
|
29
|
+
return [Persistence, PersistenceContext];
|
|
29
30
|
}
|
|
30
31
|
}
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
17
|
import { Persistence } from '../models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_Persistence.js';
|
|
18
|
+
import { PersistenceContext } from '../models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_PersistenceContext.js';
|
|
18
19
|
import type { BasicModel, PureModel } from '@finos/legend-graph';
|
|
19
20
|
import { guaranteeNonNullable } from '@finos/legend-shared';
|
|
20
21
|
|
|
@@ -25,6 +26,16 @@ export const getPersistence = (path: string, graph: PureModel): Persistence =>
|
|
|
25
26
|
`Can't find persistence '${path}'`,
|
|
26
27
|
);
|
|
27
28
|
|
|
29
|
+
export const getPersistenceContext = (
|
|
30
|
+
path: string,
|
|
31
|
+
graph: PureModel,
|
|
32
|
+
): PersistenceContext =>
|
|
33
|
+
graph.getExtensionElement(
|
|
34
|
+
path,
|
|
35
|
+
PersistenceContext,
|
|
36
|
+
`Can't find persistence context '${path}'`,
|
|
37
|
+
);
|
|
38
|
+
|
|
28
39
|
export const getOwnPersistence = (
|
|
29
40
|
path: string,
|
|
30
41
|
graph: BasicModel,
|
|
@@ -33,3 +44,12 @@ export const getOwnPersistence = (
|
|
|
33
44
|
graph.getOwnNullableExtensionElement(path, Persistence),
|
|
34
45
|
`Can't find persistence '${path}'`,
|
|
35
46
|
);
|
|
47
|
+
|
|
48
|
+
export const getOwnPersistenceContext = (
|
|
49
|
+
path: string,
|
|
50
|
+
graph: BasicModel,
|
|
51
|
+
): PersistenceContext =>
|
|
52
|
+
guaranteeNonNullable(
|
|
53
|
+
graph.getOwnNullableExtensionElement(path, PersistenceContext),
|
|
54
|
+
`Can't find persistence context '${path}'`,
|
|
55
|
+
);
|
|
@@ -16,7 +16,9 @@
|
|
|
16
16
|
|
|
17
17
|
import packageJson from '../../package.json';
|
|
18
18
|
import { Persistence } from '../models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_Persistence.js';
|
|
19
|
+
import { PersistenceContext } from '../models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_PersistenceContext.js';
|
|
19
20
|
import { observe_Persistence } from './action/changeDetection/DSLPersistence_ObserverHelper.js';
|
|
21
|
+
import { observe_PersistenceContext } from './action/changeDetection/DSLPersistenceContext_ObserverHelper.js';
|
|
20
22
|
import {
|
|
21
23
|
PureGraphManagerPlugin,
|
|
22
24
|
type PackageableElement,
|
|
@@ -27,6 +29,8 @@ import {
|
|
|
27
29
|
|
|
28
30
|
export const PURE_GRAMMAR_PERSISTENCE_PARSER_NAME = 'Persistence';
|
|
29
31
|
export const PURE_GRAMMAR_PERSISTENCE_ELEMENT_TYPE_LABEL = 'Persistence';
|
|
32
|
+
export const PURE_GRAMMAR_PERSISTENCE_CONTEXT_ELEMENT_TYPE_LABEL =
|
|
33
|
+
'PersistenceContext';
|
|
30
34
|
|
|
31
35
|
export class DSLPersistence_PureGraphManagerPlugin extends PureGraphManagerPlugin {
|
|
32
36
|
constructor() {
|
|
@@ -38,7 +42,10 @@ export class DSLPersistence_PureGraphManagerPlugin extends PureGraphManagerPlugi
|
|
|
38
42
|
}
|
|
39
43
|
|
|
40
44
|
override getExtraPureGrammarKeywords(): string[] {
|
|
41
|
-
return [
|
|
45
|
+
return [
|
|
46
|
+
PURE_GRAMMAR_PERSISTENCE_ELEMENT_TYPE_LABEL,
|
|
47
|
+
PURE_GRAMMAR_PERSISTENCE_CONTEXT_ELEMENT_TYPE_LABEL,
|
|
48
|
+
];
|
|
42
49
|
}
|
|
43
50
|
|
|
44
51
|
override getExtraPureGrammarElementLabelers(): PureGrammarElementLabeler[] {
|
|
@@ -46,6 +53,8 @@ export class DSLPersistence_PureGraphManagerPlugin extends PureGraphManagerPlugi
|
|
|
46
53
|
(element: PackageableElement): string | undefined => {
|
|
47
54
|
if (element instanceof Persistence) {
|
|
48
55
|
return PURE_GRAMMAR_PERSISTENCE_ELEMENT_TYPE_LABEL;
|
|
56
|
+
} else if (element instanceof PersistenceContext) {
|
|
57
|
+
return PURE_GRAMMAR_PERSISTENCE_CONTEXT_ELEMENT_TYPE_LABEL;
|
|
49
58
|
}
|
|
50
59
|
return undefined;
|
|
51
60
|
},
|
|
@@ -60,6 +69,8 @@ export class DSLPersistence_PureGraphManagerPlugin extends PureGraphManagerPlugi
|
|
|
60
69
|
): PackageableElement | undefined => {
|
|
61
70
|
if (element instanceof Persistence) {
|
|
62
71
|
return observe_Persistence(element);
|
|
72
|
+
} else if (element instanceof PersistenceContext) {
|
|
73
|
+
return observe_PersistenceContext(element);
|
|
63
74
|
}
|
|
64
75
|
return undefined;
|
|
65
76
|
},
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2020-present, Goldman Sachs
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
import type { PersistenceContext } from '../../../models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_PersistenceContext.js';
|
|
18
|
+
import {
|
|
19
|
+
observe_Abstract_PackageableElement,
|
|
20
|
+
skipObserved,
|
|
21
|
+
} from '@finos/legend-graph';
|
|
22
|
+
import { makeObservable, observable, override } from 'mobx';
|
|
23
|
+
|
|
24
|
+
export const observe_PersistenceContext = skipObserved(
|
|
25
|
+
(metamodel: PersistenceContext): PersistenceContext => {
|
|
26
|
+
observe_Abstract_PackageableElement(metamodel);
|
|
27
|
+
|
|
28
|
+
makeObservable<PersistenceContext, '_elementHashCode'>(metamodel, {
|
|
29
|
+
persistence: observable,
|
|
30
|
+
platform: observable,
|
|
31
|
+
serviceParameters: observable,
|
|
32
|
+
sinkConnection: observable,
|
|
33
|
+
_elementHashCode: override,
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
return metamodel;
|
|
37
|
+
},
|
|
38
|
+
);
|
package/src/index.ts
CHANGED
|
@@ -15,17 +15,29 @@
|
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
17
|
export * from './DSLPersistence_Extension.js';
|
|
18
|
-
export {
|
|
18
|
+
export { DSLPersistence_LegendStudioApplicationPlugin } from './components/studio/DSLPersistence_LegendStudioApplicationPlugin.js';
|
|
19
19
|
|
|
20
20
|
// ---------- PACKAGEABLE ELEMENT ----------
|
|
21
21
|
|
|
22
22
|
// metamodels
|
|
23
23
|
export { Persistence } from './models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_Persistence.js';
|
|
24
|
+
export { PersistenceContext } from './models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_PersistenceContext.js';
|
|
25
|
+
export { PersistencePlatform } from './models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_PersistencePlatform.js';
|
|
24
26
|
|
|
25
27
|
// v1 protocols
|
|
26
28
|
export { V1_Persistence } from './models/protocols/pure/v1/model/packageableElements/persistence/V1_DSLPersistence_Persistence.js';
|
|
29
|
+
export { V1_PersistenceContext } from './models/protocols/pure/v1/model/packageableElements/persistence/V1_DSLPersistence_PersistenceContext.js';
|
|
30
|
+
export { V1_PersistencePlatform } from './models/protocols/pure/v1/model/packageableElements/persistence/V1_DSLPersistence_PersistencePlatform.js';
|
|
27
31
|
|
|
28
32
|
// ---------- TRANSFORMATION ----------
|
|
29
33
|
|
|
30
|
-
|
|
34
|
+
// extension
|
|
35
|
+
export * from './models/protocols/pure/DSLPersistence_PureProtocolProcessorPlugin_Extension.js';
|
|
36
|
+
|
|
37
|
+
// builders
|
|
31
38
|
export { V1_buildPersistence } from './models/protocols/pure/v1/transformation/pureGraph/to/V1_PersistenceBuilder.js';
|
|
39
|
+
export { V1_buildPersistenceContext } from './models/protocols/pure/v1/transformation/pureGraph/to/V1_PersistenceContextBuilder.js';
|
|
40
|
+
|
|
41
|
+
// transformers
|
|
42
|
+
export { V1_transformPersistence } from './models/protocols/pure/v1/transformation/pureGraph/from/V1_PersistenceTransformer.js';
|
|
43
|
+
export { V1_transformPersistenceContext } from './models/protocols/pure/v1/transformation/pureGraph/from/V1_PersistenceContextTransformer.js';
|
|
@@ -15,6 +15,20 @@
|
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
17
|
export enum PERSISTENCE_HASH_STRUCTURE {
|
|
18
|
+
// ----- PERSISTENCE CONTEXT -----
|
|
19
|
+
|
|
20
|
+
PERSISTENCE_CONTEXT = 'PERSISTENCE_CONTEXT',
|
|
21
|
+
|
|
22
|
+
// platform
|
|
23
|
+
DEFAULT_PERSISTENCE_PLATFORM = 'DEFAULT_PERSISTENCE_PLATFORM',
|
|
24
|
+
|
|
25
|
+
// service parameter
|
|
26
|
+
SERVICE_PARAMETER = 'SERVICE_PARAMETER',
|
|
27
|
+
PRIMITIVE_TYPE_VALUE_SERVICE_PARAMETER = 'PRIMITIVE_TYPE_VALUE_SERVICE_PARAMETER',
|
|
28
|
+
CONNECTION_VALUE_SERVICE_PARAMETER = 'CONNECTION_VALUE_SERVICE_PARAMETER',
|
|
29
|
+
|
|
30
|
+
// ----- PERSISTENCE -----
|
|
31
|
+
|
|
18
32
|
PERSISTENCE = 'PERSISTENCE',
|
|
19
33
|
|
|
20
34
|
// trigger
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2020-present, Goldman Sachs
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
import type { Persistence } from './DSLPersistence_Persistence.js';
|
|
18
|
+
import type { PersistencePlatform } from './DSLPersistence_PersistencePlatform.js';
|
|
19
|
+
import type { ServiceParameter } from './DSLPersistence_ServiceParameter.js';
|
|
20
|
+
import { PERSISTENCE_HASH_STRUCTURE } from '../../../../../DSLPersistence_ModelUtils.js';
|
|
21
|
+
import {
|
|
22
|
+
type Connection,
|
|
23
|
+
PackageableElement,
|
|
24
|
+
type PackageableElementReference,
|
|
25
|
+
type PackageableElementVisitor,
|
|
26
|
+
} from '@finos/legend-graph';
|
|
27
|
+
import { type Hashable, hashArray } from '@finos/legend-shared';
|
|
28
|
+
|
|
29
|
+
export class PersistenceContext extends PackageableElement implements Hashable {
|
|
30
|
+
persistence!: PackageableElementReference<Persistence>;
|
|
31
|
+
platform!: PersistencePlatform;
|
|
32
|
+
serviceParameters: ServiceParameter[] = [];
|
|
33
|
+
sinkConnection?: Connection;
|
|
34
|
+
|
|
35
|
+
protected override get _elementHashCode(): string {
|
|
36
|
+
return hashArray([
|
|
37
|
+
PERSISTENCE_HASH_STRUCTURE.PERSISTENCE_CONTEXT,
|
|
38
|
+
this.persistence.valueForSerialization ?? '',
|
|
39
|
+
this.platform,
|
|
40
|
+
hashArray(this.serviceParameters),
|
|
41
|
+
this.sinkConnection ?? '',
|
|
42
|
+
]);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
accept_PackageableElementVisitor<T>(
|
|
46
|
+
visitor: PackageableElementVisitor<T>,
|
|
47
|
+
): T {
|
|
48
|
+
return visitor.visit_PackageableElement(this);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2020-present, Goldman Sachs
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
import { PERSISTENCE_HASH_STRUCTURE } from '../../../../../DSLPersistence_ModelUtils.js';
|
|
18
|
+
import { type Hashable, hashArray } from '@finos/legend-shared';
|
|
19
|
+
|
|
20
|
+
export abstract class PersistencePlatform implements Hashable {
|
|
21
|
+
abstract get hashCode(): string;
|
|
22
|
+
}
|
|
23
|
+
export class DefaultPersistencePlatform
|
|
24
|
+
extends PersistencePlatform
|
|
25
|
+
implements Hashable
|
|
26
|
+
{
|
|
27
|
+
override get hashCode(): string {
|
|
28
|
+
return hashArray([PERSISTENCE_HASH_STRUCTURE.DEFAULT_PERSISTENCE_PLATFORM]);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2020-present, Goldman Sachs
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
import { PERSISTENCE_HASH_STRUCTURE } from '../../../../../DSLPersistence_ModelUtils.js';
|
|
18
|
+
import type { Connection, ValueSpecification } from '@finos/legend-graph';
|
|
19
|
+
import { type Hashable, hashArray } from '@finos/legend-shared';
|
|
20
|
+
|
|
21
|
+
export class ServiceParameter implements Hashable {
|
|
22
|
+
name!: string;
|
|
23
|
+
value!: ServiceParameterValue;
|
|
24
|
+
|
|
25
|
+
get hashCode(): string {
|
|
26
|
+
return hashArray([
|
|
27
|
+
PERSISTENCE_HASH_STRUCTURE.SERVICE_PARAMETER,
|
|
28
|
+
this.name,
|
|
29
|
+
this.value,
|
|
30
|
+
]);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export abstract class ServiceParameterValue implements Hashable {
|
|
35
|
+
abstract get hashCode(): string;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export class PrimitiveTypeValue
|
|
39
|
+
extends ServiceParameterValue
|
|
40
|
+
implements Hashable
|
|
41
|
+
{
|
|
42
|
+
primitiveType!: ValueSpecification;
|
|
43
|
+
|
|
44
|
+
override get hashCode(): string {
|
|
45
|
+
return hashArray([
|
|
46
|
+
PERSISTENCE_HASH_STRUCTURE.PRIMITIVE_TYPE_VALUE_SERVICE_PARAMETER,
|
|
47
|
+
//TODO: ledav -- hash value specification
|
|
48
|
+
]);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
export class ConnectionValue extends ServiceParameterValue implements Hashable {
|
|
53
|
+
connection!: Connection;
|
|
54
|
+
|
|
55
|
+
override get hashCode(): string {
|
|
56
|
+
return hashArray([
|
|
57
|
+
PERSISTENCE_HASH_STRUCTURE.CONNECTION_VALUE_SERVICE_PARAMETER,
|
|
58
|
+
this.connection,
|
|
59
|
+
]);
|
|
60
|
+
}
|
|
61
|
+
}
|
package/src/models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_Sink.ts
CHANGED
|
@@ -18,6 +18,7 @@ import { PERSISTENCE_HASH_STRUCTURE } from '../../../../../DSLPersistence_ModelU
|
|
|
18
18
|
import type {
|
|
19
19
|
Binding,
|
|
20
20
|
Connection,
|
|
21
|
+
Database,
|
|
21
22
|
PackageableElementReference,
|
|
22
23
|
} from '@finos/legend-graph';
|
|
23
24
|
import { type Hashable, hashArray } from '@finos/legend-shared';
|
|
@@ -27,11 +28,15 @@ export abstract class Sink implements Hashable {
|
|
|
27
28
|
}
|
|
28
29
|
|
|
29
30
|
export class RelationalSink extends Sink implements Hashable {
|
|
31
|
+
//TODO: ledav -- make required once persistence changes are rolled out in engine
|
|
32
|
+
database?: PackageableElementReference<Database>;
|
|
33
|
+
//TODO: ledav -- remove once persistence changes are rolled out in engine
|
|
30
34
|
connection?: Connection;
|
|
31
35
|
|
|
32
36
|
override get hashCode(): string {
|
|
33
37
|
return hashArray([
|
|
34
38
|
PERSISTENCE_HASH_STRUCTURE.RELATIONAL_SINK,
|
|
39
|
+
this.database?.valueForSerialization ?? '',
|
|
35
40
|
this.connection ?? '',
|
|
36
41
|
]);
|
|
37
42
|
}
|
|
@@ -39,13 +44,14 @@ export class RelationalSink extends Sink implements Hashable {
|
|
|
39
44
|
|
|
40
45
|
export class ObjectStorageSink extends Sink implements Hashable {
|
|
41
46
|
binding!: PackageableElementReference<Binding>;
|
|
42
|
-
|
|
47
|
+
//TODO: ledav -- remove once persistence changes are rolled out in engine
|
|
48
|
+
connection?: Connection;
|
|
43
49
|
|
|
44
50
|
override get hashCode(): string {
|
|
45
51
|
return hashArray([
|
|
46
52
|
PERSISTENCE_HASH_STRUCTURE.OBJECT_STORAGE_SINK,
|
|
47
53
|
this.binding.valueForSerialization ?? '',
|
|
48
|
-
this.connection,
|
|
54
|
+
this.connection ?? '',
|
|
49
55
|
]);
|
|
50
56
|
}
|
|
51
57
|
}
|
|
@@ -17,18 +17,14 @@
|
|
|
17
17
|
import type { DeduplicationStrategy } from './DSLPersistence_DeduplicationStrategy.js';
|
|
18
18
|
import { PERSISTENCE_HASH_STRUCTURE } from '../../../../../DSLPersistence_ModelUtils.js';
|
|
19
19
|
import { type Hashable, hashArray } from '@finos/legend-shared';
|
|
20
|
-
import type {
|
|
21
|
-
Class,
|
|
22
|
-
OptionalPackageableElementReference,
|
|
23
|
-
PackageableElementReference,
|
|
24
|
-
} from '@finos/legend-graph';
|
|
20
|
+
import type { Class, PackageableElementReference } from '@finos/legend-graph';
|
|
25
21
|
|
|
26
22
|
export abstract class TargetShape implements Hashable {
|
|
27
23
|
abstract get hashCode(): string;
|
|
28
24
|
}
|
|
29
25
|
|
|
30
26
|
export class FlatTarget extends TargetShape implements Hashable {
|
|
31
|
-
modelClass
|
|
27
|
+
modelClass?: PackageableElementReference<Class> | undefined;
|
|
32
28
|
targetName!: string;
|
|
33
29
|
partitionFields: string[] = [];
|
|
34
30
|
deduplicationStrategy!: DeduplicationStrategy;
|
|
@@ -36,7 +32,7 @@ export class FlatTarget extends TargetShape implements Hashable {
|
|
|
36
32
|
override get hashCode(): string {
|
|
37
33
|
return hashArray([
|
|
38
34
|
PERSISTENCE_HASH_STRUCTURE.FLAT_TARGET,
|
|
39
|
-
this.modelClass
|
|
35
|
+
this.modelClass?.valueForSerialization ?? '',
|
|
40
36
|
this.targetName,
|
|
41
37
|
hashArray(this.partitionFields),
|
|
42
38
|
this.deduplicationStrategy,
|