From ea622f8912c51666f07b761c1a913fc012b9a478 Mon Sep 17 00:00:00 2001 From: Oscar Bauer <oscar.bauer@etu.univ-amu.fr> Date: Tue, 3 Dec 2024 15:36:09 +0100 Subject: [PATCH] =?UTF-8?q?Tp11=20termin=C3=A9=20tp10=20noch=20nicht?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CCI_Java/CCI_Java/src/tp10/exo2/fiddling.java | 6 +-- .../src/tp11/exo1/AuthorMessageFilter.java | 16 ++++++++ .../src/tp11/exo1/KeywordMessageFilter.java | 16 ++++++++ CCI_Java/CCI_Java/src/tp11/exo1/Message.java | 12 ++++++ .../CCI_Java/src/tp11/exo1/MessageFilter.java | 5 +++ .../CCI_Java/src/tp11/exo1/TestMessage.java | 8 +++- .../CCI_Java/src/tp11/exo1/TestNetwork.java | 37 +++++++++++++++++ CCI_Java/CCI_Java/src/tp11/exo1/TestUser.java | 1 - CCI_Java/CCI_Java/src/tp11/exo1/User.java | 41 ++++++++++++++++--- 9 files changed, 132 insertions(+), 10 deletions(-) create mode 100644 CCI_Java/CCI_Java/src/tp11/exo1/AuthorMessageFilter.java create mode 100644 CCI_Java/CCI_Java/src/tp11/exo1/KeywordMessageFilter.java create mode 100644 CCI_Java/CCI_Java/src/tp11/exo1/MessageFilter.java create mode 100644 CCI_Java/CCI_Java/src/tp11/exo1/TestNetwork.java diff --git a/CCI_Java/CCI_Java/src/tp10/exo2/fiddling.java b/CCI_Java/CCI_Java/src/tp10/exo2/fiddling.java index 2764567..f720b34 100644 --- a/CCI_Java/CCI_Java/src/tp10/exo2/fiddling.java +++ b/CCI_Java/CCI_Java/src/tp10/exo2/fiddling.java @@ -7,8 +7,8 @@ import java.util.List; public class fiddling { public static void main(String[] args) { - String test = "halloa"; - String test2 = "hallob"; + String test = "hallo"; + String test2 = "hallo"; String test3 = "hallolc"; String test4 = "hallold"; List<String> list = new ArrayList<String>(); @@ -21,7 +21,7 @@ public class fiddling { int bool = test.compareTo(test2); - System.out.println(list); + System.out.println(test.equals(test2)); } } diff --git a/CCI_Java/CCI_Java/src/tp11/exo1/AuthorMessageFilter.java b/CCI_Java/CCI_Java/src/tp11/exo1/AuthorMessageFilter.java new file mode 100644 index 0000000..ab2ee65 --- /dev/null +++ b/CCI_Java/CCI_Java/src/tp11/exo1/AuthorMessageFilter.java @@ -0,0 +1,16 @@ +package tp11.exo1; + +public class AuthorMessageFilter implements MessageFilter { + + String authorName; + + public AuthorMessageFilter(String author) { + this.authorName = author; + } + + @Override + public boolean accept(Message message) { + return message.getAuthor().getName().equals(authorName) ? true : false; + } + +} diff --git a/CCI_Java/CCI_Java/src/tp11/exo1/KeywordMessageFilter.java b/CCI_Java/CCI_Java/src/tp11/exo1/KeywordMessageFilter.java new file mode 100644 index 0000000..d48a417 --- /dev/null +++ b/CCI_Java/CCI_Java/src/tp11/exo1/KeywordMessageFilter.java @@ -0,0 +1,16 @@ +package tp11.exo1; + +public class KeywordMessageFilter implements MessageFilter { + + String keyWord; + + public KeywordMessageFilter(String keyWord) { + this.keyWord = keyWord; + } + + @Override + public boolean accept(Message message) { + return message.getTitle().contains(keyWord) ? true : false; + } + +} diff --git a/CCI_Java/CCI_Java/src/tp11/exo1/Message.java b/CCI_Java/CCI_Java/src/tp11/exo1/Message.java index aa0fbc6..2dbaac4 100644 --- a/CCI_Java/CCI_Java/src/tp11/exo1/Message.java +++ b/CCI_Java/CCI_Java/src/tp11/exo1/Message.java @@ -32,5 +32,17 @@ public class Message { System.out.println(content); System.out.println("Aim� par : " + likers + "\n"); } + + public User getAuthor() { + return author; + } + + public String getContent() { + return content; + } + + public String getTitle() { + return title; + } } diff --git a/CCI_Java/CCI_Java/src/tp11/exo1/MessageFilter.java b/CCI_Java/CCI_Java/src/tp11/exo1/MessageFilter.java new file mode 100644 index 0000000..cc350e4 --- /dev/null +++ b/CCI_Java/CCI_Java/src/tp11/exo1/MessageFilter.java @@ -0,0 +1,5 @@ +package tp11.exo1; + +public interface MessageFilter { + public boolean accept(Message message); +} diff --git a/CCI_Java/CCI_Java/src/tp11/exo1/TestMessage.java b/CCI_Java/CCI_Java/src/tp11/exo1/TestMessage.java index 8f3274c..a86ff10 100644 --- a/CCI_Java/CCI_Java/src/tp11/exo1/TestMessage.java +++ b/CCI_Java/CCI_Java/src/tp11/exo1/TestMessage.java @@ -9,10 +9,14 @@ public class TestMessage { Message msg1 = new Message(user1, "Mon second message", "Je vous aime."); msg1.receiveLike(user2); msg1.receiveLike(user3); - Message msg2 = new Message(user1, "Test", "Test Test"); + Message msg2 = new Message(user2, "Test", "Test Test"); Message msg3 = new Message(user1, "� propos de Bob.", "Quel boulet celui - l�."); msg3.receiveLike(user3); + user1.receive(msg1); + user1.receive(msg2); + user1.receive(msg3); + System.out.println(msg1); System.out.println(msg2); System.out.println(msg3); @@ -20,6 +24,8 @@ public class TestMessage { msg1.display(); msg2.display(); msg3.display(); + + System.out.println(user1.getLastPost()); } } diff --git a/CCI_Java/CCI_Java/src/tp11/exo1/TestNetwork.java b/CCI_Java/CCI_Java/src/tp11/exo1/TestNetwork.java new file mode 100644 index 0000000..a0dcbb8 --- /dev/null +++ b/CCI_Java/CCI_Java/src/tp11/exo1/TestNetwork.java @@ -0,0 +1,37 @@ +package tp11.exo1; + +public class TestNetwork { + + public static void main(String[] args) { + User alice = new User("Alice"); + User bob = new User("Bob"); + +// bob.follow(alice); +// alice.post("Mon premier message", "Bonjour � tous !"); +// bob.display(); + + User carol = new User("Carol"); + + alice.post("Mon premier message", "Bonjour � tous !"); + bob.follow(alice); + carol.like(alice.getLastPost()); + alice.post("Mon second message", " Je vous aime."); + bob.like(alice.getLastPost()); + carol.like(alice.getLastPost()); + bob.post("Test", "Test Test"); + alice.post("� propos de Bob.", "Quel boulet celui - l�."); + carol.like(alice.getLastPost()); + bob.post("R�ponse � Alice.", "T'as un probl�me ???"); +// bob.display(); + + bob.post("message1", "content von message 1"); + bob.post("message2", "content von message 2"); + bob.post("message3", "content von message 3"); + bob.post("message4", "content von message 4"); + + bob.display(new AuthorMessageFilter("Alice")); +// bob.display(new KeywordMessageFilter("Test")); + + } + +} diff --git a/CCI_Java/CCI_Java/src/tp11/exo1/TestUser.java b/CCI_Java/CCI_Java/src/tp11/exo1/TestUser.java index 0d09224..a7a7181 100644 --- a/CCI_Java/CCI_Java/src/tp11/exo1/TestUser.java +++ b/CCI_Java/CCI_Java/src/tp11/exo1/TestUser.java @@ -7,7 +7,6 @@ public class TestUser { User user2 = new User("peter"); User user3 = new User("ernst"); - user1.addMessage("testtest"); System.out.println(user1); System.out.println(user2); System.out.println(user3); diff --git a/CCI_Java/CCI_Java/src/tp11/exo1/User.java b/CCI_Java/CCI_Java/src/tp11/exo1/User.java index cb45fe0..c63c98a 100644 --- a/CCI_Java/CCI_Java/src/tp11/exo1/User.java +++ b/CCI_Java/CCI_Java/src/tp11/exo1/User.java @@ -29,22 +29,53 @@ public class User { } public void broadcast(Message message) { - for (User usr : followers) { + for (User usr : this.followers) { usr.receive(message); } } public void follow(User other) { - System.out.println(other + " s'abonne � la liste de Alice." + this.name); + other.getFollow(this); + System.out.println(this + " s'abonne � la liste de " + other + "."); + } + + private void getFollow(User user) { + this.followers.add(user); } public Message getLastPost() { - return messages.get(messages.lastIndexOf(messages)); + return messages.get(messages.size() - 1); + } + + public void like(Message message) { + message.receiveLike(this); + System.out.println(this + " likes le message " + message); } - + + public void post(String title, String content) { + Message msg = new Message(this, title, content); + messages.add(msg); + broadcast(msg); + System.out.println(this + " poste le message " + msg); + } + @Override public String toString() { - // TODO Auto-generated method stub return this.name; } + + public void display() { + System.out.println("Messages de la page de " + this + "\n"); + for (Message msg : messages) { + msg.display(); + } + } + + void display(MessageFilter filter) { + System.out.println("Messages de la page de " + this + "\n"); + for (Message msg : messages) { + if (filter.accept(msg)) + msg.display(); + } + } } -- GitLab