Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@

import org.rdfarchitect.api.controller.Response;
import org.rdfarchitect.database.inmemory.diagrams.ClassInDiagram;
import org.rdfarchitect.services.diagrams.AddToDiagramUseCase;
import org.rdfarchitect.services.dl.update.classlayout.CustomDiagramLayoutUseCase;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.http.HttpHeaders;
Expand All @@ -35,6 +35,7 @@
import org.springframework.web.bind.annotation.RestController;

import java.util.List;
import java.util.UUID;

@RestController
@RequestMapping("/api/datasets/{datasetName}/diagrams/{diagramId}/classes")
Expand All @@ -44,7 +45,7 @@ public class CustomDatasetDiagramAllClassesRESTController {
private static final Logger logger =
LoggerFactory.getLogger(CustomDatasetDiagramAllClassesRESTController.class);

private final AddToDiagramUseCase addToDiagramUseCase;
private final CustomDiagramLayoutUseCase customDiagramLayoutUseCase;

@PostMapping
public String addToDiagram(
Expand All @@ -66,7 +67,8 @@ public String addToDiagram(
diagramId,
originURL);

addToDiagramUseCase.addToDiagram(datasetName, diagramId, classes);
customDiagramLayoutUseCase.addClassesToCustomDatasetDiagram(
datasetName, UUID.fromString(diagramId), classes);

logger.info(
"Sending response to DELETE request: \"/api/datasets/{{}}/diagrams/{{}}/classes\" from \"{}\"",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
import lombok.RequiredArgsConstructor;

import org.rdfarchitect.api.controller.Response;
import org.rdfarchitect.services.diagrams.RemoveFromDiagramUseCase;
import org.rdfarchitect.services.dl.update.classlayout.CustomDiagramLayoutUseCase;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.http.HttpHeaders;
Expand All @@ -42,7 +42,7 @@ public class CustomDatasetDiagramClassRESTController {
private static final Logger logger =
LoggerFactory.getLogger(CustomDatasetDiagramClassRESTController.class);

private final RemoveFromDiagramUseCase removeFromDiagramUseCase;
private final CustomDiagramLayoutUseCase customDiagramLayoutUseCase;

@DeleteMapping
public String removeFromDiagram(
Expand All @@ -65,7 +65,8 @@ public String removeFromDiagram(
classId,
originURL);

removeFromDiagramUseCase.removeFromDiagram(datasetName, diagramId, classId);
customDiagramLayoutUseCase.removeClassFromCustomDatasetDiagram(
datasetName, UUID.fromString(diagramId), classId);

logger.info(
"Sending response to DELETE request: \"/api/datasets/{{}}/diagrams/{{}}/classes/{{}}\" from \"{}\"",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@

import org.rdfarchitect.api.dto.ChangeLogEntryDTO;
import org.rdfarchitect.database.GraphIdentifier;
import org.rdfarchitect.models.changelog.GraphChangeLog;
import org.rdfarchitect.models.changelog.ChangeLog;
import org.rdfarchitect.services.ChangeLogUseCase;
import org.rdfarchitect.services.ExpandURIUseCase;
import org.slf4j.Logger;
Expand Down Expand Up @@ -61,7 +61,7 @@ public class ChangelogRESTController {
content =
@Content(
mediaType = "application/json",
schema = @Schema(implementation = GraphChangeLog.class)))
schema = @Schema(implementation = ChangeLog.class)))
})
@GetMapping
public List<ChangeLogEntryDTO> getChangeLog(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@
import org.springframework.web.bind.annotation.RestController;

import java.util.List;
import java.util.UUID;

@RestController
@RequestMapping("api/datasets/{datasetName}/graphs/{graphURI}/classes/{classUUID}/associations")
Expand Down Expand Up @@ -102,7 +103,7 @@ public String replaceAllAssociations(
var graphIdentifier = new GraphIdentifier(datasetName, extendedGraphURI);

updateAssociationsUseCase.replaceAllAssociations(
graphIdentifier, classUUID, associationPairList);
graphIdentifier, UUID.fromString(classUUID), associationPairList);

logger.info(
"Sending response to PUT request: \"/api/datasets/{{}}/graphs/{{}}/classes/{{}}/associations\" to \"{}\".",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -150,7 +150,8 @@ public String replaceAllAttributes(
var extendedGraphURI = expandURIUseCase.expandUri(datasetName, graphURI);
var graphIdentifier = new GraphIdentifier(datasetName, extendedGraphURI);

updateAttributesUseCase.replaceAllAttributes(graphIdentifier, classUUID, attributeList);
updateAttributesUseCase.replaceAllAttributes(
graphIdentifier, UUID.fromString(classUUID), attributeList);

logger.info(
"Sending response to PUT request: \"/api/datasets/{{}}/graphs/{{}}/classes/{{}}/attributes\" to \"{}\".",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,8 @@
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.UUID;

@RestController
@RequestMapping("/api/datasets/{datasetName}/graphs/{graphURI}/classes/{classUUID}")
@RequiredArgsConstructor
Expand Down Expand Up @@ -190,7 +192,7 @@ public String deleteClass(

var graphIdentifier = new GraphIdentifier(datasetName, graphURI);

deleteClassUseCase.deleteClass(graphIdentifier, classUUID);
deleteClassUseCase.deleteClass(graphIdentifier, UUID.fromString(classUUID));

logger.info(
"Sending response to DELETE request: \"/api/datasets/{{}}/graphs/{{}}/classes/{{}}\" to \"{}\".",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
import org.rdfarchitect.database.GraphIdentifier;
import org.rdfarchitect.database.inmemory.diagrams.ClassInDiagram;
import org.rdfarchitect.services.ExpandURIUseCase;
import org.rdfarchitect.services.diagrams.AddToDiagramUseCase;
import org.rdfarchitect.services.dl.update.classlayout.CustomDiagramLayoutUseCase;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.http.HttpHeaders;
Expand All @@ -37,6 +37,7 @@
import org.springframework.web.bind.annotation.RestController;

import java.util.List;
import java.util.UUID;

@RestController
@RequestMapping("/api/datasets/{datasetName}/graphs/{graphURI}/diagrams/{diagramId}/classes")
Expand All @@ -48,7 +49,7 @@ public class CustomDiagramAllClassesRESTController {

private final ExpandURIUseCase expandURIUseCase;

private final AddToDiagramUseCase addToDiagramUseCase;
private final CustomDiagramLayoutUseCase customDiagramLayoutUseCase;

@PostMapping
public String addToDiagram(
Expand Down Expand Up @@ -77,8 +78,10 @@ public String addToDiagram(
originURL);

var extendedGraphURI = expandURIUseCase.expandUri(datasetName, graphURI);
addToDiagramUseCase.addToDiagram(
new GraphIdentifier(datasetName, extendedGraphURI), diagramId, classes);
customDiagramLayoutUseCase.addClassesToCustomDiagram(
new GraphIdentifier(datasetName, extendedGraphURI),
UUID.fromString(diagramId),
classes);

logger.info(
"Sending response to DELETE request: \"/api/datasets/{{}}/graphs/{{}}/diagrams/{{}}/classes\" from \"{}\"",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
import org.rdfarchitect.api.controller.Response;
import org.rdfarchitect.database.GraphIdentifier;
import org.rdfarchitect.services.ExpandURIUseCase;
import org.rdfarchitect.services.diagrams.RemoveFromDiagramUseCase;
import org.rdfarchitect.services.dl.update.classlayout.CustomDiagramLayoutUseCase;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.http.HttpHeaders;
Expand All @@ -47,7 +47,7 @@ public class CustomDiagramClassRESTController {

private final ExpandURIUseCase expandURIUseCase;

private final RemoveFromDiagramUseCase removeFromDiagramUseCase;
private final CustomDiagramLayoutUseCase customDiagramLayoutUseCase;

@DeleteMapping
public String removeFromDiagram(
Expand Down Expand Up @@ -77,8 +77,10 @@ public String removeFromDiagram(
originURL);

var extendedGraphURI = expandURIUseCase.expandUri(datasetName, graphURI);
removeFromDiagramUseCase.removeFromDiagram(
new GraphIdentifier(datasetName, extendedGraphURI), diagramId, classId);
customDiagramLayoutUseCase.removeClassFromCustomDiagram(
new GraphIdentifier(datasetName, extendedGraphURI),
UUID.fromString(diagramId),
classId);

logger.info(
"Sending response to DELETE request: \"/api/datasets/{{}}/graphs/{{}}/diagrams/{{}}/classes/{{}}\" from \"{}\"",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
import org.rdfarchitect.services.ExpandURIUseCase;
import org.rdfarchitect.services.diagrams.DeleteCustomDiagramUseCase;
import org.rdfarchitect.services.diagrams.ReplaceCustomDiagramUseCase;
import org.rdfarchitect.services.dl.select.FetchRenderingLayoutDataUseCase;
import org.rdfarchitect.services.rendering.DiagramToCIMCollectionConverterUseCase;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
Expand Down Expand Up @@ -56,6 +57,8 @@ public class CustomDiagramsRESTController {

private final RenderCIMCollectionUseCase renderer;

private final FetchRenderingLayoutDataUseCase fetchRenderingLayoutDataUseCase;

private final DeleteCustomDiagramUseCase deleteCustomDiagram;

private final ReplaceCustomDiagramUseCase replaceCustomDiagram;
Expand Down Expand Up @@ -90,11 +93,11 @@ public RenderingDataDTO getDiagramRenderingData(
var cimCollection =
converter.convert(new GraphIdentifier(datasetName, extendedGraphURI), diagramId);

var result =
renderer.renderUML(
cimCollection,
var layoutData =
fetchRenderingLayoutDataUseCase.fetchRenderingLayoutData(
new GraphIdentifier(datasetName, extendedGraphURI),
UUID.fromString(diagramId));
var result = renderer.renderUML(cimCollection, layoutData);

logger.info(
"Sending response to GET request: \"/api/datasets/{{}}/graphs/{{}}/diagrams/{{}}\" from \"{}\"",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,11 +27,9 @@

import org.rdfarchitect.api.dto.rendering.RenderingDataDTO;
import org.rdfarchitect.database.GraphIdentifier;
import org.rdfarchitect.models.cim.data.dto.CIMCollection;
import org.rdfarchitect.models.cim.rendering.GraphFilter;
import org.rdfarchitect.models.cim.rendering.RenderCIMCollectionUseCase;
import org.rdfarchitect.services.ExpandURIUseCase;
import org.rdfarchitect.services.rendering.GraphToCIMCollectionConverterUseCase;
import org.rdfarchitect.services.GetRenderingDataUseCase;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.http.HttpHeaders;
Expand All @@ -51,9 +49,7 @@ public class RenderingRESTController {

private static final Logger logger = LoggerFactory.getLogger(RenderingRESTController.class);

private final GraphToCIMCollectionConverterUseCase converter;

private final RenderCIMCollectionUseCase renderer;
private final GetRenderingDataUseCase getRenderingDataUseCase;

private final ExpandURIUseCase expandURIUseCase;

Expand Down Expand Up @@ -101,9 +97,8 @@ public RenderingDataDTO getRenderingDataParameterized(
? UUID.fromString(filter.getPackageUUID())
: null;

CIMCollection cimCollection = converter.convert(graphIdentifier, filter);
RenderingDataDTO renderingData =
renderer.renderUML(cimCollection, graphIdentifier, packageUUID);
getRenderingDataUseCase.getRenderingData(graphIdentifier, filter, packageUUID);

logger.info(
"Sending response to GET request \"/api/datasets/{{}}/graphs/{{}}/rendering\" to \"{}\".",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,5 @@ public class ChangeLogEntryDTO {
private String changeId;
private String timestamp;
private String message;
private List<TripleDTO> additions;
private List<TripleDTO> deletions;
private List<ContextDeltaDTO> contextDeltas;
}
Original file line number Diff line number Diff line change
Expand Up @@ -20,27 +20,32 @@
import org.apache.jena.graph.Graph;
import org.apache.jena.graph.Triple;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import org.rdfarchitect.models.changelog.ChangeLogEntry;
import org.rdfarchitect.models.changelog.ContextDelta;
import org.rdfarchitect.models.cim.rdf.resources.RDFA;

import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.List;

@Mapper(componentModel = "spring")
public interface ChangeLogEntryMapper {

ChangeLogEntryMapper INSTANCE = Mappers.getMapper(ChangeLogEntryMapper.class);

ChangeLogEntryDTO toDTO(ChangeLogEntry entry);

List<ChangeLogEntryDTO> toDTOList(List<ChangeLogEntry> entries);

default ContextDeltaDTO toContextDeltaDTO(ContextDelta contextDelta) {
var dto = new ContextDeltaDTO();
dto.setContextName(contextDelta.contextName());
dto.setAdditions(mapTriples(contextDelta.additions()));
dto.setDeletions(mapTriples(contextDelta.deletions()));
return dto;
}

default List<TripleDTO> mapTriples(WeakReference<Graph> graphReference) {
var graph = graphReference.get();
if (graph == null) {
return new ArrayList<>();
return null;
}
return graph.stream()
.filter(triple -> !triple.getPredicate().equals(RDFA.uuid.asNode()))
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
/*
* Copyright (c) 2024-2026 SOPTIM AG
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/

package org.rdfarchitect.api.dto;

import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

@Data
@NoArgsConstructor
public class ContextDeltaDTO {
private String contextName;
private List<TripleDTO> additions;
private List<TripleDTO> deletions;
}
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
public class InMemoryDatabaseConfig {

@Bean
public InMemoryDatabase createInMemoryDatabase() {
return new InMemoryDatabaseImpl();
public InMemoryDatabase createInMemoryDatabase(SchemaConfig schemaConfig) {
return new InMemoryDatabaseImpl(schemaConfig);
}
}
4 changes: 2 additions & 2 deletions backend/src/main/java/org/rdfarchitect/config/PortConfig.java
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,8 @@
public class PortConfig {

@Bean
public DatabasePort databasePort(InMemoryDatabase inMemoryDatabase, SchemaConfig schemaConfig) {
return new InMemoryDatabaseAdapter(inMemoryDatabase, schemaConfig);
public DatabasePort databasePort(InMemoryDatabase inMemoryDatabase) {
return new InMemoryDatabaseAdapter(inMemoryDatabase);
}

@Bean
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@
import org.rdfarchitect.models.cim.rendering.mermaid.RenderCIMCollectionMermaidService;
import org.rdfarchitect.models.cim.rendering.svelteflow.RenderCIMCollectionSvelteFlowService;
import org.rdfarchitect.services.dl.select.FetchRenderingLayoutDataUseCase;
import org.rdfarchitect.services.dl.update.EnsureDiagramLayoutForCIMCollectionUseCase;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
Expand All @@ -34,13 +33,10 @@ public class RenderingConfig {

@Bean
public RenderCIMCollectionUseCase renderingPort(
FetchRenderingLayoutDataUseCase fetchRenderingLayoutDataUseCase,
EnsureDiagramLayoutForCIMCollectionUseCase ensureDiagramLayoutForCIMCollectionUseCase) {
FetchRenderingLayoutDataUseCase fetchRenderingLayoutDataUseCase) {
return switch (rendererType) {
case "svelteflow" ->
new RenderCIMCollectionSvelteFlowService(
fetchRenderingLayoutDataUseCase,
ensureDiagramLayoutForCIMCollectionUseCase);
new RenderCIMCollectionSvelteFlowService(fetchRenderingLayoutDataUseCase);
case "mermaid" -> new RenderCIMCollectionMermaidService();
default -> new RenderCIMCollectionMermaidService();
};
Expand Down
Loading