Skip to content

Commit 84211c6

Browse files
committed
Merge remote-tracking branch 'origin/main' into koesie10/update-set-selected-method-message
2 parents 667bf19 + c459d0f commit 84211c6

File tree

13 files changed

+194
-199
lines changed

13 files changed

+194
-199
lines changed

extensions/ql-vscode/src/common/interface-types.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -507,7 +507,7 @@ interface SetMethodsMessage {
507507

508508
interface SetModeledMethodsMessage {
509509
t: "setModeledMethods";
510-
methods: Record<string, ModeledMethod>;
510+
methods: Record<string, ModeledMethod[]>;
511511
}
512512

513513
interface SetModifiedMethodsMessage {

extensions/ql-vscode/src/model-editor/methods-usage/methods-usage-data-provider.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ export class MethodsUsageDataProvider
102102
}
103103

104104
private getModelingStatusIcon(method: Method): ThemeIcon {
105-
const modeledMethods = this.modeledMethods[method.signature];
105+
const modeledMethods = this.modeledMethods[method.signature] ?? [];
106106
const modifiedMethod = this.modifiedMethodSignatures.has(method.signature);
107107

108108
const status = getModelingStatus(modeledMethods, modifiedMethod);

extensions/ql-vscode/src/model-editor/model-editor-view.ts

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -43,10 +43,7 @@ import { AutoModeler } from "./auto-modeler";
4343
import { telemetryListener } from "../common/vscode/telemetry";
4444
import { ModelingStore } from "./modeling-store";
4545
import { ModelEditorViewTracker } from "./model-editor-view-tracker";
46-
import {
47-
convertFromLegacyModeledMethod,
48-
convertToLegacyModeledMethods,
49-
} from "./shared/modeled-methods-legacy";
46+
import { convertFromLegacyModeledMethod } from "./shared/modeled-methods-legacy";
5047

5148
export class ModelEditorView extends AbstractWebview<
5249
ToModelEditorMessage,
@@ -640,7 +637,7 @@ export class ModelEditorView extends AbstractWebview<
640637
if (event.dbUri === this.databaseItem.databaseUri.toString()) {
641638
await this.postMessage({
642639
t: "setModeledMethods",
643-
methods: convertToLegacyModeledMethods(event.modeledMethods),
640+
methods: event.modeledMethods,
644641
});
645642
}
646643
}),

extensions/ql-vscode/src/model-editor/shared/modeled-methods-legacy.ts

Lines changed: 0 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,5 @@
11
import { ModeledMethod } from "../modeled-method";
22

3-
/**
4-
* Converts a record of a single ModeledMethod indexed by signature to a record of ModeledMethod[] indexed by signature
5-
* for legacy usage. This function should always be used instead of the trivial conversion to track usages of this
6-
* conversion.
7-
*
8-
* This method should only be called inside a `postMessage` call. If it's used anywhere else, consider whether the
9-
* boundary is correct: the boundary should as close as possible to the extension host -> webview boundary.
10-
*
11-
* @param modeledMethods The record of a single ModeledMethod indexed by signature
12-
*/
13-
export function convertToLegacyModeledMethods(
14-
modeledMethods: Record<string, ModeledMethod[]>,
15-
): Record<string, ModeledMethod> {
16-
// Always take the first modeled method in the array
17-
return Object.fromEntries(
18-
Object.entries(modeledMethods)
19-
.map(([signature, modeledMethods]) => {
20-
const modeledMethod = convertToLegacyModeledMethod(modeledMethods);
21-
if (!modeledMethod) {
22-
return null;
23-
}
24-
return [signature, modeledMethod];
25-
})
26-
.filter((entry): entry is [string, ModeledMethod] => entry !== null),
27-
);
28-
}
29-
303
/**
314
* Converts a single ModeledMethod to a ModeledMethod[] for legacy usage. This function should always be used instead
325
* of the trivial conversion to track usages of this conversion.

extensions/ql-vscode/src/stories/model-editor/LibraryRow.stories.tsx

Lines changed: 71 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -146,67 +146,77 @@ LibraryRow.args = {
146146
],
147147
},
148148
],
149-
modeledMethods: {
150-
"org.sql2o.Sql2o#Sql2o(String)": {
151-
type: "sink",
152-
input: "Argument[0]",
153-
output: "",
154-
kind: "jndi-injection",
155-
provenance: "df-generated",
156-
signature: "org.sql2o.Sql2o#Sql2o(String)",
157-
packageName: "org.sql2o",
158-
typeName: "Sql2o",
159-
methodName: "Sql2o",
160-
methodParameters: "(String)",
161-
},
162-
"org.sql2o.Connection#createQuery(String)": {
163-
type: "summary",
164-
input: "Argument[this]",
165-
output: "ReturnValue",
166-
kind: "taint",
167-
provenance: "df-manual",
168-
signature: "org.sql2o.Connection#createQuery(String)",
169-
packageName: "org.sql2o",
170-
typeName: "Connection",
171-
methodName: "createQuery",
172-
methodParameters: "(String)",
173-
},
174-
"org.sql2o.Sql2o#open()": {
175-
type: "summary",
176-
input: "Argument[this]",
177-
output: "ReturnValue",
178-
kind: "taint",
179-
provenance: "manual",
180-
signature: "org.sql2o.Sql2o#open()",
181-
packageName: "org.sql2o",
182-
typeName: "Sql2o",
183-
methodName: "open",
184-
methodParameters: "()",
185-
},
186-
"org.sql2o.Query#executeScalar(Class)": {
187-
type: "neutral",
188-
input: "",
189-
output: "",
190-
kind: "",
191-
provenance: "df-generated",
192-
signature: "org.sql2o.Query#executeScalar(Class)",
193-
packageName: "org.sql2o",
194-
typeName: "Query",
195-
methodName: "executeScalar",
196-
methodParameters: "(Class)",
197-
},
198-
"org.sql2o.Sql2o#Sql2o(String,String,String)": {
199-
type: "neutral",
200-
input: "",
201-
output: "",
202-
kind: "",
203-
provenance: "df-generated",
204-
signature: "org.sql2o.Sql2o#Sql2o(String,String,String)",
205-
packageName: "org.sql2o",
206-
typeName: "Sql2o",
207-
methodName: "Sql2o",
208-
methodParameters: "(String,String,String)",
209-
},
149+
modeledMethodsMap: {
150+
"org.sql2o.Sql2o#Sql2o(String)": [
151+
{
152+
type: "sink",
153+
input: "Argument[0]",
154+
output: "",
155+
kind: "jndi-injection",
156+
provenance: "df-generated",
157+
signature: "org.sql2o.Sql2o#Sql2o(String)",
158+
packageName: "org.sql2o",
159+
typeName: "Sql2o",
160+
methodName: "Sql2o",
161+
methodParameters: "(String)",
162+
},
163+
],
164+
"org.sql2o.Connection#createQuery(String)": [
165+
{
166+
type: "summary",
167+
input: "Argument[this]",
168+
output: "ReturnValue",
169+
kind: "taint",
170+
provenance: "df-manual",
171+
signature: "org.sql2o.Connection#createQuery(String)",
172+
packageName: "org.sql2o",
173+
typeName: "Connection",
174+
methodName: "createQuery",
175+
methodParameters: "(String)",
176+
},
177+
],
178+
"org.sql2o.Sql2o#open()": [
179+
{
180+
type: "summary",
181+
input: "Argument[this]",
182+
output: "ReturnValue",
183+
kind: "taint",
184+
provenance: "manual",
185+
signature: "org.sql2o.Sql2o#open()",
186+
packageName: "org.sql2o",
187+
typeName: "Sql2o",
188+
methodName: "open",
189+
methodParameters: "()",
190+
},
191+
],
192+
"org.sql2o.Query#executeScalar(Class)": [
193+
{
194+
type: "neutral",
195+
input: "",
196+
output: "",
197+
kind: "",
198+
provenance: "df-generated",
199+
signature: "org.sql2o.Query#executeScalar(Class)",
200+
packageName: "org.sql2o",
201+
typeName: "Query",
202+
methodName: "executeScalar",
203+
methodParameters: "(Class)",
204+
},
205+
],
206+
"org.sql2o.Sql2o#Sql2o(String,String,String)": [
207+
{
208+
type: "neutral",
209+
input: "",
210+
output: "",
211+
kind: "",
212+
provenance: "df-generated",
213+
signature: "org.sql2o.Sql2o#Sql2o(String,String,String)",
214+
packageName: "org.sql2o",
215+
typeName: "Sql2o",
216+
methodName: "Sql2o",
217+
methodParameters: "(String,String,String)",
218+
},
219+
],
210220
},
211221
modifiedSignatures: new Set(["org.sql2o.Sql2o#Sql2o(String)"]),
212222
inProgressMethods: new InProgressMethods(),

extensions/ql-vscode/src/stories/model-editor/ModelEditor.stories.tsx

Lines changed: 70 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -216,65 +216,75 @@ ModelEditor.args = {
216216
},
217217
],
218218
initialModeledMethods: {
219-
"org.sql2o.Sql2o#Sql2o(String)": {
220-
type: "sink",
221-
input: "Argument[0]",
222-
output: "",
223-
kind: "jndi-injection",
224-
provenance: "df-generated",
225-
signature: "org.sql2o.Sql2o#Sql2o(String)",
226-
packageName: "org.sql2o",
227-
typeName: "Sql2o",
228-
methodName: "Sql2o",
229-
methodParameters: "(String)",
230-
},
231-
"org.sql2o.Connection#createQuery(String)": {
232-
type: "summary",
233-
input: "Argument[this]",
234-
output: "ReturnValue",
235-
kind: "taint",
236-
provenance: "df-manual",
237-
signature: "org.sql2o.Connection#createQuery(String)",
238-
packageName: "org.sql2o",
239-
typeName: "Connection",
240-
methodName: "createQuery",
241-
methodParameters: "(String)",
242-
},
243-
"org.sql2o.Sql2o#open()": {
244-
type: "summary",
245-
input: "Argument[this]",
246-
output: "ReturnValue",
247-
kind: "taint",
248-
provenance: "manual",
249-
signature: "org.sql2o.Sql2o#open()",
250-
packageName: "org.sql2o",
251-
typeName: "Sql2o",
252-
methodName: "open",
253-
methodParameters: "()",
254-
},
255-
"org.sql2o.Query#executeScalar(Class)": {
256-
type: "neutral",
257-
input: "",
258-
output: "",
259-
kind: "",
260-
provenance: "df-generated",
261-
signature: "org.sql2o.Query#executeScalar(Class)",
262-
packageName: "org.sql2o",
263-
typeName: "Query",
264-
methodName: "executeScalar",
265-
methodParameters: "(Class)",
266-
},
267-
"org.sql2o.Sql2o#Sql2o(String,String,String)": {
268-
type: "neutral",
269-
input: "",
270-
output: "",
271-
kind: "",
272-
provenance: "df-generated",
273-
signature: "org.sql2o.Sql2o#Sql2o(String,String,String)",
274-
packageName: "org.sql2o",
275-
typeName: "Sql2o",
276-
methodName: "Sql2o",
277-
methodParameters: "(String,String,String)",
278-
},
219+
"org.sql2o.Sql2o#Sql2o(String)": [
220+
{
221+
type: "sink",
222+
input: "Argument[0]",
223+
output: "",
224+
kind: "jndi-injection",
225+
provenance: "df-generated",
226+
signature: "org.sql2o.Sql2o#Sql2o(String)",
227+
packageName: "org.sql2o",
228+
typeName: "Sql2o",
229+
methodName: "Sql2o",
230+
methodParameters: "(String)",
231+
},
232+
],
233+
"org.sql2o.Connection#createQuery(String)": [
234+
{
235+
type: "summary",
236+
input: "Argument[this]",
237+
output: "ReturnValue",
238+
kind: "taint",
239+
provenance: "df-manual",
240+
signature: "org.sql2o.Connection#createQuery(String)",
241+
packageName: "org.sql2o",
242+
typeName: "Connection",
243+
methodName: "createQuery",
244+
methodParameters: "(String)",
245+
},
246+
],
247+
"org.sql2o.Sql2o#open()": [
248+
{
249+
type: "summary",
250+
input: "Argument[this]",
251+
output: "ReturnValue",
252+
kind: "taint",
253+
provenance: "manual",
254+
signature: "org.sql2o.Sql2o#open()",
255+
packageName: "org.sql2o",
256+
typeName: "Sql2o",
257+
methodName: "open",
258+
methodParameters: "()",
259+
},
260+
],
261+
"org.sql2o.Query#executeScalar(Class)": [
262+
{
263+
type: "neutral",
264+
input: "",
265+
output: "",
266+
kind: "",
267+
provenance: "df-generated",
268+
signature: "org.sql2o.Query#executeScalar(Class)",
269+
packageName: "org.sql2o",
270+
typeName: "Query",
271+
methodName: "executeScalar",
272+
methodParameters: "(Class)",
273+
},
274+
],
275+
"org.sql2o.Sql2o#Sql2o(String,String,String)": [
276+
{
277+
type: "neutral",
278+
input: "",
279+
output: "",
280+
kind: "",
281+
provenance: "df-generated",
282+
signature: "org.sql2o.Sql2o#Sql2o(String,String,String)",
283+
packageName: "org.sql2o",
284+
typeName: "Sql2o",
285+
methodName: "Sql2o",
286+
methodParameters: "(String,String,String)",
287+
},
288+
],
279289
},
280290
};

extensions/ql-vscode/src/view/model-editor/LibraryRow.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ export type LibraryRowProps = {
7171
title: string;
7272
libraryVersion?: string;
7373
methods: Method[];
74-
modeledMethods: Record<string, ModeledMethod>;
74+
modeledMethodsMap: Record<string, ModeledMethod[]>;
7575
modifiedSignatures: Set<string>;
7676
inProgressMethods: InProgressMethods;
7777
viewState: ModelEditorViewState;
@@ -92,7 +92,7 @@ export const LibraryRow = ({
9292
title,
9393
libraryVersion,
9494
methods,
95-
modeledMethods,
95+
modeledMethodsMap,
9696
modifiedSignatures,
9797
inProgressMethods,
9898
viewState,
@@ -231,7 +231,7 @@ export const LibraryRow = ({
231231
<ModeledMethodDataGrid
232232
packageName={title}
233233
methods={methods}
234-
modeledMethods={modeledMethods}
234+
modeledMethodsMap={modeledMethodsMap}
235235
modifiedSignatures={modifiedSignatures}
236236
inProgressMethods={inProgressMethods}
237237
viewState={viewState}

0 commit comments

Comments
 (0)