Skip to content

Commit 3197190

Browse files
committed
Merge branch 'master' of github.com:msgpack/msgpack-java
2 parents 0dd101f + 85ae88c commit 3197190

21 files changed

Lines changed: 119 additions & 84 deletions

src/main/java/org/msgpack/MessagePack.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,6 @@ public void pack(OutputStream out, Object v) throws IOException {
6060
public void pack(OutputStream out, Object v, Template tmpl) throws IOException {
6161
StreamPacker pk = new StreamPacker(out);
6262
tmpl.write(pk, v);
63-
pk.flush();
6463
}
6564

6665
public byte[] pack(Value v) throws IOException { // TODO IOException

src/main/java/org/msgpack/io/LinkedBufferOutput.java

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -58,15 +58,6 @@ public int getSize() {
5858
return size + filled;
5959
}
6060

61-
public void flush() {
62-
if(filled > 0) {
63-
if(!flushBuffer(buffer, 0, filled)) {
64-
buffer = null;
65-
}
66-
filled = 0;
67-
}
68-
}
69-
7061
protected boolean flushBuffer(byte[] buffer, int off, int len) {
7162
link.add(new Link(buffer, off, len));
7263
size += len;

src/main/java/org/msgpack/io/Output.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,5 @@ public interface Output {
4545
public void writeByteAndFloat(byte b, float v) throws IOException;
4646

4747
public void writeByteAndDouble(byte b, double v) throws IOException;
48-
49-
public void flush() throws IOException;
5048
}
5149

src/main/java/org/msgpack/packer/AbstractMessagePackPacker.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,6 @@ protected AbstractMessagePackPacker(Output out) {
3232
this.out = out;
3333
}
3434

35-
@Override
36-
public void flush() throws IOException {
37-
out.flush();
38-
}
39-
4035
@Override
4136
public void writeByte(byte d) throws IOException {
4237
if(d < -(1<<5)) {

src/main/java/org/msgpack/packer/Packer.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -76,9 +76,6 @@ public void write(MessagePackable v) throws IOException {
7676
v.writeTo(this);
7777
}
7878

79-
public void flush() throws IOException {
80-
}
81-
8279
/* TODO
8380
public void write(boolean v) throws IOException {
8481
writeBoolean(v);

src/main/java/org/msgpack/value/AbstractBooleanValue.java

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -34,22 +34,8 @@ public boolean isFalse() {
3434
return !getBoolean();
3535
}
3636

37-
public String toString() {
38-
if(getBoolean()) {
39-
return "true";
40-
} else {
41-
return "false";
42-
}
37+
public BooleanValue asBooleanValue() {
38+
return this;
4339
}
44-
45-
// TODO equals
46-
47-
public int hashCode() {
48-
if(getBoolean()) {
49-
return 1231;
50-
} else {
51-
return 1237;
52-
}
53-
}
5440
}
5541

src/main/java/org/msgpack/value/AbstractRawValue.java

Lines changed: 51 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,11 +48,59 @@ public int hashCode() {
4848
}
4949

5050
public String toString() {
51-
StringBuilder sb = new StringBuilder();
51+
return toString(new StringBuilder()).toString();
52+
}
53+
54+
public StringBuilder toString(StringBuilder sb) {
55+
String s = getString();
5256
sb.append("\"");
53-
sb.append(getString()); // TODO escape
57+
for(int i=0; i < s.length(); i++) {
58+
char ch = s.charAt(i);
59+
if(ch < 0x20) {
60+
switch(ch) {
61+
case '\n':
62+
sb.append("\\n");
63+
break;
64+
case '\r':
65+
sb.append("\\r");
66+
break;
67+
case '\t':
68+
sb.append("\\t");
69+
break;
70+
case '\f':
71+
sb.append("\\f");
72+
break;
73+
case '\b':
74+
sb.append("\\b");
75+
break;
76+
default:
77+
escapeChar(sb, ch);
78+
break;
79+
}
80+
} else {
81+
switch(ch) {
82+
case '\\':
83+
sb.append("\\\\");
84+
break;
85+
case '"':
86+
sb.append("\\\"");
87+
break;
88+
default:
89+
sb.append(ch);
90+
break;
91+
}
92+
}
93+
}
5494
sb.append("\"");
55-
return sb.toString();
95+
return sb;
96+
}
97+
98+
private void escapeChar(StringBuilder sb, char ch) {
99+
sb.append("\\u");
100+
sb.append(((int)ch >> 12) & 0xF);
101+
sb.append(((int)ch >> 8) & 0xF);
102+
sb.append(((int)ch >> 4) & 0xF);
103+
sb.append((int)ch & 0xF);
56104
}
57105
}
58106

src/main/java/org/msgpack/value/ArrayValueImpl.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -138,18 +138,21 @@ public int hashCode() {
138138
}
139139

140140
public String toString() {
141+
return toString(new StringBuilder()).toString();
142+
}
143+
144+
public StringBuilder toString(StringBuilder sb) {
141145
if(array.length == 0) {
142-
return "[]";
146+
return sb.append("[]");
143147
}
144-
StringBuilder sb = new StringBuilder();
145148
sb.append("[");
146149
sb.append(array[0]);
147150
for(int i=1; i < array.length; i++) {
148151
sb.append(",");
149-
sb.append(array[i]);
152+
array[i].toString(sb);
150153
}
151154
sb.append("]");
152-
return sb.toString();
155+
return sb;
153156
}
154157
}
155158

src/main/java/org/msgpack/value/BigIntegerValueImpl.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,5 +124,9 @@ public int hashCode() {
124124
public String toString() {
125125
return value.toString();
126126
}
127+
128+
public StringBuilder toString(StringBuilder sb) {
129+
return sb.append(value.toString());
130+
}
127131
}
128132

src/main/java/org/msgpack/value/DoubleValueImpl.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,5 +91,9 @@ public int hashCode() {
9191
public String toString() {
9292
return Double.toString(value);
9393
}
94+
95+
public StringBuilder toString(StringBuilder sb) {
96+
return sb.append(Double.toString(value));
97+
}
9498
}
9599

0 commit comments

Comments
 (0)