1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 package org.dbunit.dataset.common.handlers;
23
24 import org.slf4j.Logger;
25 import org.slf4j.LoggerFactory;
26
27
28
29
30
31
32
33 public class EscapeHandler extends AbstractPipelineComponent {
34
35
36
37
38 private static final Logger logger = LoggerFactory.getLogger(EscapeHandler.class);
39
40 public static final char DEFAULT_ESCAPE_CHAR = '\\';
41
42 private EscapeHandler() {
43 }
44
45 public static final PipelineComponent ACCEPT() {
46 logger.debug("ACCEPT() - start");
47 return createPipelineComponent(new EscapeHandler(), new ACCEPT());
48 }
49
50
51 public static final PipelineComponent IGNORE() {
52 logger.debug("IGNORE() - start");
53 return createPipelineComponent(new EscapeHandler(), new IGNORE());
54 }
55
56 public static final PipelineComponent ESCAPE() {
57 logger.debug("ESCAPE() - start");
58 return createPipelineComponent(new EscapeHandler(), new ESCAPE());
59 }
60
61 public boolean canHandle(char c) throws IllegalInputCharacterException {
62 if(logger.isDebugEnabled())
63 logger.debug("canHandle(c={}) - start", String.valueOf(c));
64
65 PipelineConfig pipelineConfig = this.getPipelineConfig();
66 if (c == pipelineConfig.getEscapeChar()) {
67 return true;
68 }
69 return false;
70 }
71
72 static private class ESCAPE extends Helper {
73
74
75
76
77 private static final Logger logger = LoggerFactory.getLogger(ESCAPE.class);
78
79 public void helpWith(char c) {
80 if(logger.isDebugEnabled())
81 logger.debug("helpWith(c={}) - start", String.valueOf(c));
82
83 getHandler().getPipeline().putFront(EnforceHandler.ENFORCE(
84 new PipelineComponent [] {
85 QuoteHandler.ACCEPT(), EscapeHandler.ACCEPT()
86 }
87 ));
88
89 }
90 }
91
92 }