diff --git a/solve/build.gradle b/solve/build.gradle index 70bdcd6bc8b7843bf5f6c405598368923de6bd6c..e230dc084de1d3b7fe532d77d8a8cdbf744b1024 100644 --- a/solve/build.gradle +++ b/solve/build.gradle @@ -91,7 +91,7 @@ sourceSets { test.outputs.upToDateWhen {false} // Comment this in to regenerate the generated AST -//jastadd.dependsOn preprocess +jastadd.dependsOn preprocess compileJava.dependsOn jastadd // always run jastadd diff --git a/solve/libs/relast-compiler.jar b/solve/libs/relast-compiler.jar index 071b1ada529fc6a87987e9756fd049058d99dbc9..b34b7ad458dc69677a919df76e649aa72b773873 100644 Binary files a/solve/libs/relast-compiler.jar and b/solve/libs/relast-compiler.jar differ diff --git a/solve/src/main/jastadd/ApplyChanges.jadd b/solve/src/main/jastadd/ApplyChanges.jadd index d449578d85ff0d18d4f4d2a821c7fc73e685f851..274e1c29893f4f08ba50eb611175a4ef86da7848 100644 --- a/solve/src/main/jastadd/ApplyChanges.jadd +++ b/solve/src/main/jastadd/ApplyChanges.jadd @@ -25,19 +25,19 @@ aspect ApplyChanges { java.util.Objects.requireNonNull(getAddedElement(), () -> "Added Element was null in " + this); Submission submission = java.util.Objects.requireNonNull(getAddedElement().asSubmission(), () -> "Was no submission, instead " + getAddedElement()); - user.addToSubmissions(submission); + user.addSubmission(submission); return; case "friends": java.util.Objects.requireNonNull(getAddedElement(), () -> "Added Element was null in " + this); User friend = java.util.Objects.requireNonNull(getAddedElement().asUser(), () -> "Was no user, instead " + getAddedElement()); - user.addToFriends(friend); + user.addFriend(friend); return; case "likes": java.util.Objects.requireNonNull(getAddedElement(), () -> "Added Element was null in " + this); Comment like = java.util.Objects.requireNonNull(getAddedElement().asComment(), () -> "Was no comment, instead " + getAddedElement()); - user.addToLikes(like); + user.addLike(like); return; } } diff --git a/solve/src/main/jastadd/Checking.jrag b/solve/src/main/jastadd/Checking.jrag index a485b1eb144613c19d9340bc2ee4831fdcf44c92..88cfb6ee266084fa490424001ca3f14077857105 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(friends(), "Friend") && - checkGeneralListValid(submissions(), "Submission") && - checkGeneralListValid(likes(), "Like") && checkThat(getName() != null, "User" + getId() + ".Name == null"); + return checkGeneralListValid(getFriendList(), "Friend") && + checkGeneralListValid(getSubmissionList(), "Submission") && + checkGeneralListValid(getLikeList(), "Like") && checkThat(getName() != null, "User" + getId() + ".Name == null"); } eq Submission.isValid() { diff --git a/solve/src/main/jastadd/SocialNetwork.relast b/solve/src/main/jastadd/SocialNetwork.relast index 7348089702aa576b817429cf3f207c1985a16e56..7156eecedeb105486a211cd46c3833b203cdb889 100644 --- a/solve/src/main/jastadd/SocialNetwork.relast +++ b/solve/src/main/jastadd/SocialNetwork.relast @@ -7,6 +7,6 @@ abstract Submission : ModelElement ::= <Timestamp:Long> <Content:String> Comment Comment : Submission ::= ; Post : Submission ::= ; -rel User.friends* -> User ; -rel User.submissions* -> Submission ; -rel User.likes* <-> Comment.likedBy* ; +rel User.Friend* -> User ; +rel User.Submission* -> Submission ; +rel User.Like* <-> Comment.LikedBy* ; diff --git a/solve/src/main/jastadd/queries.jrag b/solve/src/main/jastadd/queries.jrag index 8d4ce7af543e5510aeba9e128d43bd1e35ebe6c8..d14c681f0a27c3436c769627fb56a88abff42759 100644 --- a/solve/src/main/jastadd/queries.jrag +++ b/solve/src/main/jastadd/queries.jrag @@ -7,8 +7,8 @@ aspect Queries { // java.util.Set<User> s = this.getCommentLikerFriends(comment); java.util.Set<User> s = new java.util.HashSet<>(); s.add(this); - for (User f : friends()) { - for (Comment otherComment : f.likes()) { + for (User f : getFriends()) { + for (Comment otherComment : f.getLikes()) { if (otherComment == comment) { s.add(f); for (User commentLikerFriend : f.getCommentLikerFriends(comment)) { @@ -23,7 +23,7 @@ aspect Queries { eq Comment.score() { int score = 0; java.util.Set<java.util.Set<User>> commentLikerGroups = new java.util.HashSet(); - for (User user : likedBy()) { + for (User user : getLikedByList()) { commentLikerGroups.add(user.getCommentLikerFriends(this)); } for (java.util.Set<User> userSet : commentLikerGroups) { @@ -36,7 +36,7 @@ aspect Queries { eq Post.score() { int result = 0; for (Comment comment : commentsForPost()) { - result += 10 + comment.likedBy().size(); + result += 10 + comment.getLikedByList().size(); } return result; } 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 cae22a25620362587a9d3b8afcb7dac824c1df9b..d899e4b0599dad2cb7640a4f5d1cef6105002dc2 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 @@ -29,14 +29,14 @@ public class Main { result.setId(id); sn.addUser(result); for (Comment comment : likes) { - result.addToLikes(comment); + result.addLike(comment); } return result; } private static void addFriends(User one, User... others) { for (User other : others) { - one.addToFriends(other); + one.addFriend(other); } } @@ -196,10 +196,10 @@ public class Main { .map(c -> c.toString() + ":(" + c.score() + "." + c.getTimestamp() + ")") .collect(Collectors.joining(", "))); for (Comment comment : scoringComments) { - logger.debug("{} likedBy {}", comment, comment.likedBy()); - for (User user : comment.likedBy()) { + 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.friends())); + logger.debug("{} friends: {}", user, printList(user.getFriendList())); // check that commentLikers are all friends } } diff --git a/solve/src/main/java/de/tudresden/inf/st/ttc18live/Translator.java b/solve/src/main/java/de/tudresden/inf/st/ttc18live/Translator.java index b93584e6d0f79cd2fffe49317665f775c8a8c873..0c5da4fd713e2eb50134d43123609d1e2a6cbbf4 100644 --- a/solve/src/main/java/de/tudresden/inf/st/ttc18live/Translator.java +++ b/solve/src/main/java/de/tudresden/inf/st/ttc18live/Translator.java @@ -69,19 +69,19 @@ public class Translator { User user = userMap.get(emfUser); for (SocialNetwork.User emfFriend : emfUser.getFriends()) { User friend = userMap.get(emfFriend); - user.addToFriends(friend); + user.addFriend(friend); } // fix submissions for (SocialNetwork.Submission emfSubmission : emfUser.getSubmissions()) { Submission submission = submissionMap.get(emfSubmission); - user.addToSubmissions(submission); + user.addSubmission(submission); } // fix likes for (SocialNetwork.Comment emfComment : emfUser.getLikes()) { Comment comment = commentMap.get(emfComment); - user.addToLikes(comment); + user.addLike(comment); } } diff --git a/solve/src/main/java/de/tudresden/inf/st/ttc18live/translator/XmlToJastaddTranslator.java b/solve/src/main/java/de/tudresden/inf/st/ttc18live/translator/XmlToJastaddTranslator.java index 7e4f09e6477e06e01d7db0ffafa00618724ee2b1..1020579064b2fca30c0ca44cdf501c9617fe66c6 100644 --- a/solve/src/main/java/de/tudresden/inf/st/ttc18live/translator/XmlToJastaddTranslator.java +++ b/solve/src/main/java/de/tudresden/inf/st/ttc18live/translator/XmlToJastaddTranslator.java @@ -81,7 +81,7 @@ public class XmlToJastaddTranslator { String[] submissionTokens = userAndSubmissions.getValue().split(" "); User user = userAndSubmissions.getKey(); for (String token : submissionTokens) { - user.addToSubmissions(submissionMap.get(Long.valueOf(token))); + user.addSubmission(submissionMap.get(Long.valueOf(token))); } } // resolveModelElement friends @@ -90,7 +90,7 @@ public class XmlToJastaddTranslator { String[] friendsTokens = userAndFriends.getValue().split(" "); User user = userAndFriends.getKey(); for (String token : friendsTokens) { - user.addToFriends(userMap.get(Long.valueOf(token))); + user.addFriend(userMap.get(Long.valueOf(token))); } } // resolveModelElement likes @@ -99,7 +99,7 @@ public class XmlToJastaddTranslator { String[] likesTokens = userAndLikes.getValue().split(" "); User user = userAndLikes.getKey(); for (String token : likesTokens) { - user.addToLikes(((Comment) submissionMap.get(Long.valueOf(token)))); + user.addLike(((Comment) submissionMap.get(Long.valueOf(token)))); } } logger.info("Done translating"); @@ -256,7 +256,7 @@ public class XmlToJastaddTranslator { String[] tokens = parsedUser.friends.split(" "); for (String token : tokens) { User friend = resolveUser(token, modelChangeSet); - user.addToFriends(friend); + user.addFriend(friend); } } // maybe set other fields? (submission is set, but refers to later introduced changes) @@ -284,7 +284,7 @@ public class XmlToJastaddTranslator { submission.setContent(parsedSubmission.content); // resolveModelElement user User submitter = resolveUser(parsedSubmission.submitter, modelChangeSet); - submitter.addToSubmissions(submission); + submitter.addSubmission(submission); // check if there are any comments attached if (parsedSubmission.comments != null) { for (ParsedComment parsedSubComment : parsedSubmission.comments) { diff --git a/solve/src/test/java/de/tudresden/inf/st/ttc18live/test/Query1SortingTest.java b/solve/src/test/java/de/tudresden/inf/st/ttc18live/test/Query1SortingTest.java index aef837be775860c534140f333c0815a1bfcd8159..61f507326e6016b2d9892b572670457bd8fa7570 100644 --- a/solve/src/test/java/de/tudresden/inf/st/ttc18live/test/Query1SortingTest.java +++ b/solve/src/test/java/de/tudresden/inf/st/ttc18live/test/Query1SortingTest.java @@ -49,8 +49,8 @@ public class Query1SortingTest { User user = new User(); user.setId(7001L + j); result.addUser(user); - submitter.addToSubmissions(comment); - user.addToLikes(comment); + submitter.addSubmission(comment); + user.addLike(comment); } } } @@ -67,9 +67,9 @@ public class Query1SortingTest { StringBuilder sb = new StringBuilder("Users = "); for (User user : socialNetwork.getUserList()) { sb.append(user.getId()); - if (!user.likes().isEmpty()) { + if (user.getLikes().size() > 0) { sb.append("-likes->{"); - for (Comment comment : user.likes()) { + for (Comment comment : user.getLikes()) { sb.append(comment.getId()).append(","); } sb.append("}");