summaryrefslogtreecommitdiff
path: root/platform/script-debugger/protocol/protocol-reader-runtime/src/org/jetbrains/jsonProtocol/StringWriter.java
blob: e72b2e291b26aa29a022fa3b58662f3bb7d6f35e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
package org.jetbrains.jsonProtocol;

import org.jetbrains.annotations.NotNull;

import java.io.IOException;
import java.io.Writer;

public class StringWriter extends Writer {
  private final StringBuilder builder;

  public StringWriter() {
    builder = new StringBuilder();
    lock = builder;
  }

  public StringWriter(int initialSize) {
    if (initialSize < 0) {
      throw new IllegalArgumentException("Negative buffer size");
    }

    builder = new StringBuilder(initialSize);
    lock = builder;
  }

  @Override
  public void write(int c) {
    builder.append((char)c);
  }

  @Override
  public void write(@NotNull char[] chars, int off, int len) {
    builder.append(chars, off, len);
  }

  @Override
  public void write(@NotNull String string) {
    builder.append(string);
  }

  @Override
  public void write(@NotNull String str, int off, int length) {
    builder.append(str, off, off + length);
  }

  @Override
  public StringWriter append(CharSequence charSequence) {
    builder.append(charSequence);
    return this;
  }

  @Override
  public StringWriter append(CharSequence charSequence, int start, int end) {
    builder.append(charSequence, start, end);
    return this;
  }

  @Override
  public StringWriter append(char c) {
    write(c);
    return this;
  }

  public String toString() {
    return builder.toString();
  }

  public StringBuilder getBuffer() {
    return builder;
  }

  /**
   * Flush the stream.
   */
  @Override
  public void flush() {
  }

  @Override
  public void close() throws IOException {
  }
}