1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.apache.mina.filter.codec.textline;
21
22 import java.io.ByteArrayOutputStream;
23 import java.io.PrintWriter;
24
25
26
27
28
29
30
31
32 public class LineDelimiter {
33
34
35
36 public static final LineDelimiter DEFAULT;
37
38 static {
39 ByteArrayOutputStream bout = new ByteArrayOutputStream();
40 PrintWriter out = new PrintWriter(bout);
41 out.println();
42 DEFAULT = new LineDelimiter(new String(bout.toByteArray()));
43 }
44
45
46
47
48
49
50
51 public static final LineDelimiter AUTO = new LineDelimiter("");
52
53
54
55
56 public static final LineDelimiter CRLF = new LineDelimiter("\r\n");
57
58
59
60
61 public static final LineDelimiter UNIX = new LineDelimiter("\n");
62
63
64
65
66 public static final LineDelimiter WINDOWS = CRLF;
67
68
69
70
71 public static final LineDelimiter MAC = new LineDelimiter("\r");
72
73
74
75
76
77 public static final LineDelimiter NUL = new LineDelimiter("\0");
78
79 private final String value;
80
81
82
83
84 public LineDelimiter(String value) {
85 if (value == null) {
86 throw new NullPointerException("delimiter");
87 }
88 this.value = value;
89 }
90
91
92
93
94 public String getValue() {
95 return value;
96 }
97
98 @Override
99 public int hashCode() {
100 return value.hashCode();
101 }
102
103 @Override
104 public boolean equals(Object o) {
105 if (!(o instanceof LineDelimiter)) {
106 return false;
107 }
108
109 LineDelimiter that = (LineDelimiter) o;
110 return this.value.equals(that.value);
111 }
112
113 @Override
114 public String toString() {
115 StringBuffer buf = new StringBuffer();
116 buf.append("delimiter:");
117 if (value.length() == 0) {
118 buf.append(" auto");
119 } else {
120 for (int i = 0; i < value.length(); i++) {
121 buf.append(" 0x");
122 buf.append(Integer.toHexString(value.charAt(i)));
123 }
124 }
125 return buf.toString();
126 }
127 }