View Javadoc
1   package net.avcompris.guixer.core;
2   
3   import static com.google.common.base.Preconditions.checkNotNull;
4   
5   import java.io.IOException;
6   
7   final class SwitchToLoggerImpl extends SwitchToDecorator implements SwitchTo {
8   
9   	private final AbstractCommandLoggerImpl underlyingCommand;
10  	private final Logger logger;
11  
12  	public SwitchToLoggerImpl(final SwitchTo delegate, final AbstractCommandLoggerImpl underlyingCommand, final Logger logger)
13  			throws IOException {
14  
15  		super(delegate);
16  
17  		this.underlyingCommand = checkNotNull(underlyingCommand, "underlyingCommand");
18  		this.logger = checkNotNull(logger, "logger");
19  	}
20  
21  	@Override
22  	public Command defaultContent() throws IOException {
23  
24  		logger.startStep("switchTo().defaultContent()");
25  
26  		delegate.defaultContent();
27  
28  		logger.endStep();
29  
30  		return underlyingCommand;
31  	}
32  
33  	@Override
34  	public Command parentFrame() throws IOException {
35  
36  		logger.startStep("switchTo().parentFrame()");
37  
38  		delegate.parentFrame();
39  
40  		logger.endStep();
41  
42  		return underlyingCommand;
43  	}
44  
45  	@Override
46  	public Command frame(final String name) throws IOException {
47  
48  		logger.startStep("switchTo().frame(\"" + name + "\")");
49  
50  		delegate.frame(name);
51  
52  		logger.endStep();
53  
54  		return underlyingCommand;
55  	}
56  }