1 package fr.gedeon.telnetservice.coreexample1;
2
3 import fr.gedeon.telnetservice.ActionListener;
4 import fr.gedeon.telnetservice.ActionListenerCreateException;
5 import fr.gedeon.telnetservice.OutputFormatSpi;
6 import fr.gedeon.telnetservice.Prompt;
7 import fr.gedeon.telnetservice.PromptDecorator;
8 import fr.gedeon.telnetservice.PromptDecoratorCreateException;
9 import fr.gedeon.telnetservice.PromptDecoratorInitializationException;
10 import fr.gedeon.telnetservice.SessionState;
11 import fr.gedeon.telnetservice.TelnetServiceExtension;
12 import fr.gedeon.telnetservice.TelnetServiceExtensionAbstractImpl;
13 import fr.gedeon.telnetservice.coreexample1.Example1.ServiceState;
14
15 public class TelnetServiceExtensionExample1Impl
16 extends TelnetServiceExtensionAbstractImpl
17 implements TelnetServiceExtension
18 {
19 ServiceState serviceState;
20 OutputFormatSpi[] outputFormats;
21
22 public TelnetServiceExtensionExample1Impl(ServiceState serviceState) {
23 this.serviceState = serviceState;
24 this.outputFormats = new OutputFormatSpi[] { new OutputFormatExample1Impl() };
25 }
26
27 public String getName() {
28 return "Example1-Extension";
29 }
30
31 public String getDescription() {
32 return "Extends the telnet service with basic demonstration functionality (Example 1)";
33 }
34
35 public boolean providesActionListener() {
36 return true;
37 }
38
39 public ActionListener getActionListener()
40 throws ActionListenerCreateException {
41 return new ActionListenerExample1Impl(this.serviceState);
42 }
43
44 public boolean providesPromptDecorator() {
45 return true;
46 }
47
48 public PromptDecorator getPromptDecorator()
49 throws PromptDecoratorCreateException {
50 return new PromptDecorator() {
51 public void initialize(SessionState sessionState)
52 throws PromptDecoratorInitializationException {
53 }
54
55 public boolean decoratePrompt(SessionState sessionState, Prompt prompt) {
56 prompt.append("> ");
57 return true;
58 }
59 };
60 }
61
62 public boolean providesOutputFormats() {
63 return true;
64 }
65
66 public OutputFormatSpi[] getOutputFormats() {
67 return this.outputFormats;
68 }
69 }