Skip to content

Commit 308ac40

Browse files
authored
Merge pull request #14 from ModelDriven/feature/ST5AS-11
ST5AS-11
2 parents 86afaf8 + d586d1e commit 308ac40

54 files changed

Lines changed: 1409 additions & 595 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

app/Module.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
import com.google.inject.AbstractModule;
22
import config.MetamodelProvider;
33
import config.impl.JPAMetamodelProvider;
4+
import dao.CommitDao;
45
import dao.ElementDao;
56
import dao.ProjectDao;
67
import dao.RelationshipDao;
8+
import dao.impl.jpa.JpaCommitDao;
79
import dao.impl.jpa.JpaElementDao;
810
import dao.impl.jpa.JpaProjectDao;
911
import dao.impl.jpa.JpaRelationshipDao;
@@ -22,5 +24,6 @@ protected void configure() {
2224
bind(ElementDao.class).to(JpaElementDao.class);
2325
bind(ProjectDao.class).to(JpaProjectDao.class);
2426
bind(RelationshipDao.class).to(JpaRelationshipDao.class);
27+
bind(CommitDao.class).to(JpaCommitDao.class);
2528
}
2629
}

app/config/impl/JPAMetamodelProvider.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,11 @@ public class JPAMetamodelProvider implements MetamodelProvider {
1313

1414
static {
1515
INTERFACES.add(MofObject.class);
16-
for (String pakkage : new String[]{"org.omg.sysml.metamodel", "org.omg.sysml.extension"}) {
16+
for (String pakkage : new String[]{"org.omg.sysml.metamodel", "org.omg.sysml.extension", "org.omg.sysml.versioning"}) {
1717
INTERFACES.addAll(new Reflections(pakkage).getSubTypesOf(MofObject.class));
1818
}
1919
IMPLEMENTATION_CLASSES.add(MofObjectImpl.class);
20-
for (String pakkage : new String[]{"org.omg.sysml.metamodel.impl", "org.omg.sysml.extension.impl"}) {
20+
for (String pakkage : new String[]{"org.omg.sysml.metamodel.impl", "org.omg.sysml.extension.impl", "org.omg.sysml.versioning.impl"}) {
2121
IMPLEMENTATION_CLASSES.addAll(new Reflections(pakkage).getSubTypesOf(MofObjectImpl.class));
2222
}
2323
}
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
package controllers;
2+
3+
import com.fasterxml.jackson.databind.JsonNode;
4+
import config.MetamodelProvider;
5+
import jackson.JacksonHelper;
6+
import org.omg.sysml.lifecycle.Commit;
7+
import org.omg.sysml.lifecycle.impl.CommitImpl;
8+
import play.libs.Json;
9+
import play.mvc.Controller;
10+
import play.mvc.Http;
11+
import play.mvc.Result;
12+
import play.mvc.Results;
13+
import services.CommitService;
14+
15+
import javax.inject.Inject;
16+
import java.time.ZonedDateTime;
17+
import java.util.List;
18+
import java.util.Optional;
19+
import java.util.UUID;
20+
21+
public class CommitController extends Controller {
22+
@Inject
23+
private MetamodelProvider metamodelProvider;
24+
25+
@Inject
26+
private CommitService commitService;
27+
28+
public Result byId(String id) {
29+
UUID uuid = UUID.fromString(id);
30+
Optional<Commit> commit = commitService.getById(uuid);
31+
return commit.map(e -> ok(Json.toJson(e))).orElseGet(Results::notFound);
32+
}
33+
34+
public Result all() {
35+
List<Commit> commits = commitService.getAll();
36+
return ok(JacksonHelper.collectionValueToTree(List.class, metamodelProvider.getImplementationClass(Commit.class), commits));
37+
}
38+
39+
public Result create(Http.Request request) {
40+
JsonNode requestBodyJson = request.body().asJson();
41+
Commit requestedObject = Json.fromJson(requestBodyJson, metamodelProvider.getImplementationClass(Commit.class));
42+
if (requestedObject.getId() != null || requestedObject.getTimestamp() != null) {
43+
return Results.badRequest();
44+
}
45+
requestedObject.setTimestamp(ZonedDateTime.now());
46+
Optional<Commit> responseCommit = commitService.create(requestedObject);
47+
return responseCommit.map(e -> created(Json.toJson(e))).orElseGet(Results::internalServerError);
48+
}
49+
50+
public Result createWithProjectId(UUID projectId, Http.Request request) {
51+
JsonNode requestBodyJson = request.body().asJson();
52+
Commit requestedObject = Json.fromJson(requestBodyJson, metamodelProvider.getImplementationClass(Commit.class));
53+
if (requestedObject.getId() != null || requestedObject.getTimestamp() != null) {
54+
return Results.badRequest();
55+
}
56+
requestedObject.setTimestamp(ZonedDateTime.now());
57+
Optional<Commit> responseCommit = commitService.create(projectId, requestedObject);
58+
return responseCommit.map(e -> created(Json.toJson(e))).orElseGet(Results::internalServerError);
59+
}
60+
61+
public Result byProject(UUID projectId) {
62+
List<Commit> commits = commitService.getByProjectId(projectId);
63+
return ok(JacksonHelper.collectionValueToTree(List.class, metamodelProvider.getImplementationClass(Commit.class), commits, writer -> writer.withView(CommitImpl.Views.Compact.class)));
64+
}
65+
66+
public Result byProjectAndId(UUID projectId, UUID commitId) {
67+
Optional<Commit> commit = commitService.getByProjectIdAndId(projectId, commitId);
68+
return commit.map(e -> ok(Json.toJson(e))).orElseGet(Results::notFound);
69+
}
70+
71+
public Result headByProject(UUID projectId) {
72+
Optional<Commit> commit = commitService.getHeadByProjectId(projectId);
73+
return commit.map(e -> ok(Json.toJson(e))).orElseGet(Results::notFound);
74+
}
75+
}

app/controllers/ElementController.java

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
import javax.inject.Inject;
1616
import java.util.List;
1717
import java.util.Optional;
18+
import java.util.Set;
1819
import java.util.UUID;
1920

2021
/**
@@ -47,19 +48,29 @@ public Result create(Http.Request request) {
4748
return Results.badRequest();
4849
}
4950
Optional<Element> responseElement = elementService.create(((Element) requestedObject));
50-
return responseElement.map(e -> created(Json.toJson(e))).orElseGet(Results::badRequest);
51+
return responseElement.map(e -> created(Json.toJson(e))).orElseGet(Results::internalServerError);
5152
}
5253

53-
public Result byProject(String projectId) {
54-
UUID projectUuid = UUID.fromString(projectId);
55-
List<Element> elements = elementService.getByProjectId(projectUuid);
56-
return ok(JacksonHelper.collectionValueToTree(List.class, metamodelProvider.getImplementationClass(Element.class), elements));
54+
public Result byCommit(String commitId) {
55+
UUID commitUuid = UUID.fromString(commitId);
56+
Set<Element> elements = elementService.getByCommitId(commitUuid);
57+
return ok(JacksonHelper.collectionValueToTree(Set.class, metamodelProvider.getImplementationClass(Element.class), elements));
5758
}
5859

59-
public Result byProjectAndId(String elementId, String projectId) {
60+
public Result byCommitAndId(String commitId, String elementId) {
61+
UUID commitUuid = UUID.fromString(commitId);
6062
UUID elementUuid = UUID.fromString(elementId);
61-
UUID projectUuid = UUID.fromString(projectId);
62-
Optional<Element> element = elementService.getByProjectIdAndId(projectUuid, elementUuid);
63+
Optional<Element> element = elementService.getByCommitIdAndId(commitUuid, elementUuid);
64+
return element.map(e -> ok(Json.toJson(e))).orElseGet(Results::notFound);
65+
}
66+
67+
public Result getElementsByProjectIdCommitId(UUID projectId, UUID commitId) {
68+
Set<Element> elements = elementService.getElementsByProjectIdCommitId(projectId, commitId);
69+
return ok(JacksonHelper.collectionValueToTree(Set.class, metamodelProvider.getImplementationClass(Element.class), elements));
70+
}
71+
72+
public Result getElementByProjectIdCommitIdElementId(UUID projectId, UUID commitId, UUID elementId) {
73+
Optional<Element> element = elementService.getElementsByProjectIdCommitIdElementId(projectId, commitId, elementId);
6374
return element.map(e -> ok(Json.toJson(e))).orElseGet(Results::notFound);
6475
}
6576
}

app/controllers/ProjectController.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import com.fasterxml.jackson.databind.JsonNode;
44
import config.MetamodelProvider;
55
import jackson.JacksonHelper;
6-
import org.omg.sysml.extension.Project;
6+
import org.omg.sysml.lifecycle.Project;
77
import play.libs.Json;
88
import play.mvc.Controller;
99
import play.mvc.Http;
@@ -28,9 +28,8 @@ public class ProjectController extends Controller {
2828
@Inject
2929
private ProjectService projectService;
3030

31-
public Result byId(String id) {
32-
UUID uuid = UUID.fromString(id);
33-
Optional<Project> project = projectService.getById(uuid);
31+
public Result byId(UUID id) {
32+
Optional<Project> project = projectService.getById(id);
3433
return project.map(m -> ok(Json.toJson(m))).orElseGet(Results::notFound);
3534
}
3635

@@ -43,6 +42,6 @@ public Result create(Http.Request request) {
4342
JsonNode requestBodyJson = request.body().asJson();
4443
Project requestProject = Json.fromJson(requestBodyJson, metamodelProvider.getImplementationClass(Project.class));
4544
Optional<Project> responseProject = projectService.create(requestProject);
46-
return responseProject.map(e -> created(Json.toJson(e))).orElseGet(Results::badRequest);
45+
return responseProject.map(e -> created(Json.toJson(e))).orElseGet(Results::internalServerError);
4746
}
4847
}

app/controllers/RelationshipController.java

Lines changed: 6 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
import javax.inject.Inject;
1616
import java.util.List;
1717
import java.util.Optional;
18+
import java.util.Set;
1819
import java.util.UUID;
1920

2021
/**
@@ -47,30 +48,12 @@ public Result create(Http.Request request) {
4748
return Results.badRequest();
4849
}
4950
Optional<Relationship> responseRelationship = relationshipService.create((Relationship) requestedObject);
50-
return responseRelationship.map(e -> created(Json.toJson(e))).orElseGet(Results::badRequest);
51+
return responseRelationship.map(e -> created(Json.toJson(e))).orElseGet(Results::internalServerError);
5152
}
5253

53-
public Result byRelatedElementId(String id) {
54-
UUID elementUuid = UUID.fromString(id);
55-
List<Relationship> relationships = relationshipService.getByRelatedElementId(elementUuid);
56-
return ok(JacksonHelper.collectionValueToTree(List.class, metamodelProvider.getImplementationClass(Relationship.class), relationships));
57-
}
58-
59-
public Result bySourceElementId(String id) {
60-
UUID elementUuid = UUID.fromString(id);
61-
List<Relationship> relationships = relationshipService.getBySourceElementId(elementUuid);
62-
return ok(JacksonHelper.collectionValueToTree(List.class, metamodelProvider.getImplementationClass(Relationship.class), relationships));
63-
}
64-
65-
public Result byTargetElementId(String id) {
66-
UUID elementUuid = UUID.fromString(id);
67-
List<Relationship> relationships = relationshipService.getByTargetElementId(elementUuid);
68-
return ok(JacksonHelper.collectionValueToTree(List.class, metamodelProvider.getImplementationClass(Relationship.class), relationships));
69-
}
70-
71-
public Result byProject(String projectId) {
72-
UUID projectUuid = UUID.fromString(projectId);
73-
List<Relationship> relationships = relationshipService.getByProjectId(projectUuid);
74-
return ok(JacksonHelper.collectionValueToTree(List.class, metamodelProvider.getImplementationClass(Relationship.class), relationships));
54+
public Result getRelationshipsByProjectIdCommitIdRelatedElementId(UUID projectId, UUID commitId, UUID elementId) {
55+
System.out.println(projectId + " : " + commitId + " : " + elementId);
56+
Set<Relationship> relationships = relationshipService.getRelationshipsByProjectCommitRelatedElement(projectId, commitId, elementId);
57+
return ok(JacksonHelper.collectionValueToTree(Set.class, metamodelProvider.getImplementationClass(Relationship.class), relationships));
7558
}
7659
}

app/dao/CommitDao.java

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package dao;
2+
3+
import org.omg.sysml.lifecycle.Project;
4+
import org.omg.sysml.lifecycle.Commit;
5+
6+
import java.util.List;
7+
import java.util.Optional;
8+
import java.util.UUID;
9+
10+
public interface CommitDao extends Dao<Commit> {
11+
Optional<Commit> persist(Commit commit);
12+
13+
Optional<Commit> update(Commit commit);
14+
15+
Optional<Commit> findById(UUID id);
16+
17+
List<Commit> findAll();
18+
19+
void delete(Commit commit);
20+
21+
void deleteAll();
22+
23+
List<Commit> findAllByProject(Project project);
24+
25+
Optional<Commit> findByProjectAndId(Project project, UUID id);
26+
27+
Optional<Commit> findHeadByProject(Project project);
28+
}

app/dao/ElementDao.java

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,27 @@
11
package dao;
22

3-
import org.omg.sysml.extension.Project;
3+
import org.omg.sysml.lifecycle.Commit;
44
import org.omg.sysml.metamodel.Element;
55

66
import java.util.List;
77
import java.util.Optional;
8+
import java.util.Set;
89
import java.util.UUID;
910

1011
public interface ElementDao extends Dao<Element> {
11-
Optional<Element> persist(Element Element);
12+
Optional<Element> persist(Element element);
1213

13-
Optional<Element> update(Element entity);
14+
Optional<Element> update(Element element);
1415

1516
Optional<Element> findById(UUID id);
1617

1718
List<Element> findAll();
1819

19-
void delete(Element Element);
20+
void delete(Element element);
2021

2122
void deleteAll();
2223

23-
List<Element> findAllByProject(Project project);
24+
Set<Element> findAllByCommit(Commit commit);
2425

25-
Optional<Element> findByProjectAndId(Project project, UUID id);
26+
Optional<Element> findByCommitAndId(Commit commit, UUID id);
2627
}

app/dao/ProjectDao.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,21 @@
11
package dao;
22

3-
import org.omg.sysml.extension.Project;
3+
import org.omg.sysml.lifecycle.Project;
44

55
import java.util.List;
66
import java.util.Optional;
77
import java.util.UUID;
88

99
public interface ProjectDao extends Dao<Project> {
10-
Optional<Project> persist(Project Project);
10+
Optional<Project> persist(Project project);
1111

12-
Optional<Project> update(Project entity);
12+
Optional<Project> update(Project project);
1313

1414
Optional<Project> findById(UUID id);
1515

1616
List<Project> findAll();
1717

18-
void delete(Project Project);
18+
void delete(Project project);
1919

2020
void deleteAll();
2121
}

app/dao/RelationshipDao.java

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,27 @@
11
package dao;
22

3+
import org.omg.sysml.lifecycle.Commit;
4+
import org.omg.sysml.lifecycle.Project;
35
import org.omg.sysml.metamodel.Element;
4-
import org.omg.sysml.extension.Project;
56
import org.omg.sysml.metamodel.Relationship;
67

78
import java.util.List;
89
import java.util.Optional;
10+
import java.util.Set;
911
import java.util.UUID;
1012

1113
public interface RelationshipDao extends Dao<Relationship> {
12-
Optional<Relationship> persist(Relationship Relationship);
14+
Optional<Relationship> persist(Relationship relationship);
1315

14-
Optional<Relationship> update(Relationship entity);
16+
Optional<Relationship> update(Relationship relationship);
1517

1618
Optional<Relationship> findById(UUID id);
1719

1820
List<Relationship> findAll();
1921

20-
void delete(Relationship Relationship);
22+
void delete(Relationship relationship);
2123

2224
void deleteAll();
2325

24-
List<Relationship> findAllByRelatedElement(Element element);
25-
26-
List<Relationship> findAllBySourceElement(Element element);
27-
28-
List<Relationship> findAllByTargetElement(Element element);
29-
30-
List<Relationship> findAllByProject(Project project);
26+
Set<Relationship> findAllByCommitRelatedElement(Commit commit, Element relatedElement);
3127
}

0 commit comments

Comments
 (0)