diff --git a/cp-to-solution.sh b/cp-to-solution.sh index 8625927f807872d5fa71c35ef3ee60f26cd33647..5d2df2ee73de2b1b1f5b9a9a8ecf54bdbea4227c 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 88cfb6ee266084fa490424001ca3f14077857105..b4dd7f5e8e959f97cdab21eccf0b45ea9666dcb3 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 53a7768d4d04d734a6c57cd51b5a56a09032b531..ac6e44ffed3fa60155977f775c535d81d3159c0c 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 7156eecedeb105486a211cd46c3833b203cdb889..f1b45cf5988d5b97bf1a7f72ddf4a158163c92ad 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 d899e4b0599dad2cb7640a4f5d1cef6105002dc2..908fbc05214b69a0a49fd01639f03ebaa4649650 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 } }