Skip to content

Commit

Permalink
Merge pull request #563 from KavinduZoysa/fix-latency
Browse files Browse the repository at this point in the history
Get semantic model when it is used
  • Loading branch information
KavinduZoysa authored Jan 29, 2025
2 parents b05b6b6 + fa0f353 commit 27a2946
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 19 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -108,18 +108,16 @@
public class DataMapManager {

private final WorkspaceManager workspaceManager;
private final SemanticModel semanticModel;
private final Document document;
private final Gson gson;

public DataMapManager(WorkspaceManager workspaceManager, SemanticModel semanticModel, Document document) {
public DataMapManager(WorkspaceManager workspaceManager, Document document) {
this.workspaceManager = workspaceManager;
this.semanticModel = semanticModel;
this.document = document;
this.gson = new Gson();
}

public JsonElement getTypes(JsonElement node, String propertyKey) {
public JsonElement getTypes(JsonElement node, String propertyKey, SemanticModel semanticModel) {
FlowNode flowNode = gson.fromJson(node, FlowNode.class);
Codedata codedata = flowNode.codedata();
NodeKind nodeKind = codedata.node();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -73,9 +73,9 @@ public CompletableFuture<DataMapperTypesResponse> types(DataMapperTypesRequest r
return response;
}

DataMapManager dataMapManager = new DataMapManager(this.workspaceManager, semanticModel.get(),
document.get());
response.setType(dataMapManager.getTypes(request.flowNode(), request.propertyKey()));
DataMapManager dataMapManager = new DataMapManager(this.workspaceManager, document.get());
response.setType(dataMapManager.getTypes(request.flowNode(), request.propertyKey(),
semanticModel.get()));
} catch (Throwable e) {
response.setError(e);
}
Expand All @@ -90,14 +90,12 @@ public CompletableFuture<DataMapperModelResponse> mappings(DataMapperModelReques
try {
Path filePath = Path.of(request.filePath());
Project project = this.workspaceManager.loadProject(filePath);
Optional<SemanticModel> semanticModel = this.workspaceManager.semanticModel(filePath);
Optional<Document> document = this.workspaceManager.document(filePath);
if (semanticModel.isEmpty() || document.isEmpty()) {
if (document.isEmpty()) {
return response;
}

DataMapManager dataMapManager = new DataMapManager(this.workspaceManager, semanticModel.get(),
document.get());
DataMapManager dataMapManager = new DataMapManager(this.workspaceManager, document.get());
response.setMappingsModel(dataMapManager.getMappings(request.flowNode(), request.position(),
request.propertyKey(), Path.of(request.filePath()), request.targetField(), project));
} catch (Throwable e) {
Expand All @@ -112,7 +110,7 @@ public CompletableFuture<DataMapperSourceResponse> getSource(DataMapperSourceReq
return CompletableFuture.supplyAsync(() -> {
DataMapperSourceResponse response = new DataMapperSourceResponse();
try {
DataMapManager dataMapManager = new DataMapManager(null, null, null);
DataMapManager dataMapManager = new DataMapManager(null, null);
response.setSource(dataMapManager.getSource(request.mappings(), request.flowNode(),
request.targetField()));
} catch (Throwable e) {
Expand All @@ -134,7 +132,7 @@ public CompletableFuture<DataMapperSourceResponse> convertToQuery(DataMapperQuer
if (semanticModel.isEmpty() || document.isEmpty()) {
return response;
}
DataMapManager dataMapManager = new DataMapManager(null, null, document.get());
DataMapManager dataMapManager = new DataMapManager(null, document.get());
response.setSource(dataMapManager.getQuery(request.flowNode(), request.targetField(),
Path.of(request.filePath()), request.position(), project));
} catch (Throwable e) {
Expand All @@ -151,13 +149,11 @@ public CompletableFuture<DataMapperVisualizeResponse> visualizable(DataMapperVis
try {
Path filePath = Path.of(request.filePath());
Project project = this.workspaceManager.loadProject(filePath);
Optional<SemanticModel> semanticModel = this.workspaceManager.semanticModel(filePath);
Optional<Document> document = this.workspaceManager.document(filePath);
if (semanticModel.isEmpty() || document.isEmpty()) {
if (document.isEmpty()) {
return response;
}
DataMapManager dataMapManager = new DataMapManager(workspaceManager, semanticModel.get(),
document.get());
DataMapManager dataMapManager = new DataMapManager(workspaceManager, document.get());
response.setVisualizableProperties(dataMapManager.getVisualizableProperties(request.flowNode(),
project, filePath, request.position()));
} catch (Throwable e) {
Expand All @@ -179,8 +175,7 @@ public CompletableFuture<DataMapperAddElementResponse> addElement(DataMapperAddE
if (semanticModel.isEmpty() || document.isEmpty()) {
return response;
}
DataMapManager dataMapManager = new DataMapManager(workspaceManager, semanticModel.get(),
document.get());
DataMapManager dataMapManager = new DataMapManager(workspaceManager, document.get());
response.setSource(dataMapManager.addElement(request.flowNode(), request.propertyKey(),
Path.of(request.filePath()), request.targetField(), project, request.position()));
} catch (Throwable e) {
Expand Down

0 comments on commit 27a2946

Please sign in to comment.