-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathassignment5pt2.java
89 lines (72 loc) · 2.75 KB
/
assignment5pt2.java
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
import java.util.HashMap;
import java.util.Map;
class Data {
String type;
Object content;
public Data(String type, Object content) {
this.type = type;
this.content = content;
}
}
abstract class DataProcessor {
public abstract void process(Data data);
}
class TextDataProcessor extends DataProcessor {
public void process(Data data) {
System.out.println("Processing text data: " + data.content);
// Processing logic for text data
}
}
class AudioDataProcessor extends DataProcessor {
public void process(Data data) {
System.out.println("Processing audio data: " + data.content);
// Processing logic for audio data
}
}
class VideoDataProcessor extends DataProcessor {
public void process(Data data) {
System.out.println("Processing video data: " + data.content);
// Processing logic for video data
}
}
class DataProcessorCreator {
private Map<String, DataProcessor> processors = new HashMap<>();
public void setProcessor(String type, DataProcessor processor) {
processors.put(type, processor);
}
public void processData(Data data) {
DataProcessor processor = processors.get(data.type);
if (processor != null) {
processor.process(data);
} else {
System.out.println("No processor found for data type: " + data.type);
}
}
}
class NewDataTypeProcessor extends DataProcessor {
public void process(Data data) {
System.out.println("Processing new data type: " + data.content);
// Processing logic for the new data type
}
}
public class assignment5pt2 {
public static void main(String[] args) {
DataProcessorCreator creator = new DataProcessorCreator();
TextDataProcessor textProcessor = new TextDataProcessor();
creator.setProcessor("text", textProcessor);
AudioDataProcessor audioProcessor = new AudioDataProcessor();
creator.setProcessor("audio", audioProcessor);
VideoDataProcessor videoProcessor = new VideoDataProcessor();
creator.setProcessor("video", videoProcessor);
NewDataTypeProcessor newDataTypeProcessor = new NewDataTypeProcessor();
creator.setProcessor("newDataType", newDataTypeProcessor);
Data textData = new Data("text", "Sample text data");
Data audioData = new Data("audio", "Sample audio data");
Data videoData = new Data("video", "Sample video data");
Data newData = new Data("newDataType", "Sample new data");
creator.processData(textData);
creator.processData(audioData);
creator.processData(videoData);
creator.processData(newData);
}
}