Skip to content
Snippets Groups Projects
Commit 9552d8c0 authored by René Schöne's avatar René Schöne
Browse files

Finish relast variant creation.

- always use same accessors
- add workaround after switching from non-relast to relast build
parent 7a1ff46e
No related branches found
No related tags found
1 merge request!1All4one relast
......@@ -17,7 +17,7 @@ function build_sed_deactivate() {
function build_incremental() {
#TODO
name="$1-inc"
echo "Building $name"
echo ">> Building $name"
build_sed_activate
sed -i 's/--flush=full/--flush=api/g' solve/build.gradle
sed -i 's/"--incremental=[^"]*"/"--incremental=param"/g' solve/build.gradle
......@@ -29,7 +29,7 @@ function build_incremental() {
function build_flushing() {
#TODO
name="$1-flush"
echo "Building $name"
echo ">> Building $name"
build_sed_activate
sed -i 's/--flush=api/--flush=full/g' solve/build.gradle
sed -i 's/"--incremental=[^"]*"/"--incremental=none"/g' solve/build.gradle
......@@ -87,6 +87,13 @@ sed -i 's/LiveContestDriverEMF/LiveContestDriverXml/' solve/build.gradle
build "jastadd-ttc18-xml"
revert_namelookup
# workaround for failing build
sleep 1
./gradlew --console=plain preprocess jastadd build
sleep 1
./gradlew --console=plain preprocess jastadd build
# Build jastadd-ttc18-xml
sed -i 's/LiveContestDriverEMF/LiveContestDriverXml/' solve/build.gradle
build "jastadd-ttc18-relast-xml"
......
......@@ -40,9 +40,9 @@ aspect Checking {
}
eq User.isValid() {
return checkGeneralListValid(getFriendList(), "Friend") &&
checkGeneralListValid(getSubmissionList(), "Submission") &&
checkGeneralListValid(getLikeList(), "Like") && checkThat(getName() != null, "User" + getId() + ".Name == null");
return checkGeneralListValid(getFriends(), "Friend") &&
checkGeneralListValid(getSubmissions(), "Submission") &&
checkGeneralListValid(getLikes(), "Like") && checkThat(getName() != null, "User" + getId() + ".Name == null");
}
eq Submission.isValid() {
......
aspect NameLookup {
// accessor replica getFriends
syn java.util.List<User> User.getFriends() {
java.util.List<User> result = new java.util.ArrayList<>();
for (UserRef userRef : getFriendRefList()) {
......@@ -7,6 +9,24 @@ aspect NameLookup {
return result;
}
// accessor replica getLikes
syn java.util.List<Comment> User.getLikes() {
java.util.List<Comment> result = new java.util.ArrayList<>();
for (CommentRef commentRef : getLikeRefList()) {
result.add(commentRef.getComment());
}
return result;
}
// accessor replica getSubmissions
syn java.util.List<Submission> User.getSubmissions() {
java.util.List<Submission> result = new java.util.ArrayList<>();
for (SubmissionRef submissionRef : getSubmissionRefList()) {
result.add(submissionRef.getSubmission());
}
return result;
}
syn java.util.List<User> Comment.getLikedByList() = socialNetwork().getLikedByMap().get(this);
syn Map<Comment, java.util.List<User>> SocialNetwork.getLikedByMap() {
......@@ -15,8 +35,8 @@ aspect NameLookup {
result.put(comment, new java.util.ArrayList<>());
}
for (User user : getUserList()) {
for (CommentRef commentRef : user.getLikes()) {
result.get(commentRef.getComment()).add(user);
for (Comment comment : user.getLikes()) {
result.get(comment).add(user);
}
}
return result;
......
abstract ModelElement ::= <Id:Long> ;
SocialNetwork : ModelElement ::= User* Post* ;
User:ModelElement ::= <Name:String> ;
User:ModelElement ::= <Name:String> FriendRef:UserRef* SubmissionRef:SubmissionRef* LikeRef:CommentRef* ;
abstract Submission : ModelElement ::= <Timestamp:Long> <Content:String> Comment* ;
Comment : Submission ::= ;
Post : Submission ::= ;
rel User.Friend* -> User ;
rel User.Submission* -> Submission ;
rel User.Like* <-> Comment.LikedBy* ;
UserRef ::= <User:User> ;
CommentRef ::= <Comment:Comment> ;
SubmissionRef ::= <Submission:Submission> ;
......@@ -199,7 +199,7 @@ public class Main {
logger.debug("{} likedBy {}", comment, comment.getLikedByList());
for (User user : comment.getLikedByList()) {
logger.debug("{} and {}: {}", comment, user, user.getCommentLikerFriends(comment));
logger.debug("{} friends: {}", user, printList(user.getFriendList()));
logger.debug("{} friends: {}", user, printList(user.getFriends()));
// check that commentLikers are all friends
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment