-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMessageBoard.java
More file actions
61 lines (48 loc) · 1.18 KB
/
MessageBoard.java
File metadata and controls
61 lines (48 loc) · 1.18 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
package ac.il.Shenkar;
import java.util.LinkedList;
public class MessageBoard implements StringProducer,StringConsumer {
private LinkedList<StringConsumer> consumer=null;
MessageBoard(){
consumer=new LinkedList<StringConsumer>();
}
@Override
public synchronized void consume(String str) {
// TODO Auto-generated method stub
if (str.charAt(0)=='-'){
for(int i=0;i<consumer.size();i++){
if(consumer.get(i).infrom().equals(str.substring(1,str.length()))){
System.out.println(consumer.get(i).infrom()+"Deleted");
str=consumer.get(i).infrom()+" left the chat";
consumer.remove(i);
update();
break;
}
}
}
for(int i=0;i<consumer.size();i++){
consumer.get(i).consume(str);
}
}
@Override
public void addConsumer(StringConsumer sc) {
// TODO Auto-generated method stub
consumer.add(sc);
}
@Override
public void removeConsumer(StringConsumer sc) {
// TODO Auto-generated method stub
}
public void update(){
String str="#";
for(int i=0;i<consumer.size();i++){
str+=consumer.get(i).infrom()+"\n";
}
consume(str);
}
@Override
public String infrom() {
// TODO Auto-generated method stub
update();
return null;
}
}