|
6 | 6 | import jackson.JsonLdMofObjectAdornment; |
7 | 7 | import org.omg.sysml.metamodel.MofObject; |
8 | 8 | import org.omg.sysml.metamodel.Relationship; |
| 9 | +import org.omg.sysml.utils.RelationshipDirection; |
9 | 10 | import play.Environment; |
10 | 11 | import play.libs.Json; |
11 | 12 | import play.mvc.Controller; |
|
15 | 16 | import services.RelationshipService; |
16 | 17 |
|
17 | 18 | import javax.inject.Inject; |
18 | | -import java.util.List; |
19 | | -import java.util.Optional; |
20 | | -import java.util.Set; |
21 | | -import java.util.UUID; |
| 19 | +import java.util.*; |
22 | 20 | import java.util.stream.Collectors; |
23 | 21 |
|
24 | 22 | /** |
@@ -57,8 +55,14 @@ public Result create(Http.Request request) { |
57 | 55 | return responseRelationship.map(e -> created(Json.toJson(e))).orElseGet(Results::internalServerError); |
58 | 56 | } |
59 | 57 |
|
60 | | - public Result getRelationshipsByProjectIdCommitIdRelatedElementId(UUID projectId, UUID commitId, UUID elementId, Http.Request request) { |
61 | | - Set<Relationship> relationships = relationshipService.getRelationshipsByProjectCommitRelatedElement(projectId, commitId, elementId); |
| 58 | + public Result getRelationshipsByProjectIdCommitIdRelatedElementId(UUID projectId, UUID commitId, UUID elementId, Optional<String> direction, Http.Request request) { |
| 59 | + RelationshipDirection relDirection = direction |
| 60 | + .flatMap(d -> Arrays.stream(RelationshipDirection.values()) |
| 61 | + .filter(rd -> rd.toString().equalsIgnoreCase(d)) |
| 62 | + .findAny()) |
| 63 | + .orElse(RelationshipDirection.BOTH); |
| 64 | + |
| 65 | + Set<Relationship> relationships = relationshipService.getRelationshipsByProjectCommitRelatedElement(projectId, commitId, elementId, relDirection); |
62 | 66 | boolean respondWithJsonLd = ElementController.respondWithJsonLd(request); |
63 | 67 | return ok(JacksonHelper.collectionValueToTree(Set.class, |
64 | 68 | respondWithJsonLd ? JsonLdMofObjectAdornment.class : metamodelProvider.getImplementationClass(Relationship.class), |
|
0 commit comments