From 9552d8c0445b64d9df3e1123fdd9057143a43274 Mon Sep 17 00:00:00 2001 From: rschoene <rene.schoene@tu-dresden.de> Date: Wed, 8 Aug 2018 15:19:53 +0200 Subject: [PATCH] Finish relast variant creation. - always use same accessors - add workaround after switching from non-relast to relast build --- cp-to-solution.sh | 11 +++++++-- solve/src/main/jastadd/Checking.jrag | 6 ++--- solve/src/main/jastadd/Refs.jadd.unused | 24 +++++++++++++++++-- .../SocialNetworkNamelookup.ast.unused | 8 +++---- .../de/tudresden/inf/st/ttc18live/Main.java | 2 +- 5 files changed, 39 insertions(+), 12 deletions(-) diff --git a/cp-to-solution.sh b/cp-to-solution.sh index 8625927..5d2df2e 100755 --- a/cp-to-solution.sh +++ b/cp-to-solution.sh @@ -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" diff --git a/solve/src/main/jastadd/Checking.jrag b/solve/src/main/jastadd/Checking.jrag index 88cfb6e..b4dd7f5 100644 --- a/solve/src/main/jastadd/Checking.jrag +++ b/solve/src/main/jastadd/Checking.jrag @@ -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() { diff --git a/solve/src/main/jastadd/Refs.jadd.unused b/solve/src/main/jastadd/Refs.jadd.unused index 53a7768..ac6e44f 100644 --- a/solve/src/main/jastadd/Refs.jadd.unused +++ b/solve/src/main/jastadd/Refs.jadd.unused @@ -1,4 +1,6 @@ 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; diff --git a/solve/src/main/jastadd/SocialNetworkNamelookup.ast.unused b/solve/src/main/jastadd/SocialNetworkNamelookup.ast.unused index 7156eec..f1b45cf 100644 --- a/solve/src/main/jastadd/SocialNetworkNamelookup.ast.unused +++ b/solve/src/main/jastadd/SocialNetworkNamelookup.ast.unused @@ -1,12 +1,12 @@ 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> ; diff --git a/solve/src/main/java/de/tudresden/inf/st/ttc18live/Main.java b/solve/src/main/java/de/tudresden/inf/st/ttc18live/Main.java index d899e4b..908fbc0 100644 --- a/solve/src/main/java/de/tudresden/inf/st/ttc18live/Main.java +++ b/solve/src/main/java/de/tudresden/inf/st/ttc18live/Main.java @@ -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 } } -- GitLab