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