1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.surefire.booter.stream;
20
21 import javax.annotation.Nonnull;
22
23 import java.nio.charset.Charset;
24 import java.nio.charset.CharsetEncoder;
25
26 import org.apache.maven.surefire.api.booter.ForkedProcessEventType;
27 import org.apache.maven.surefire.api.stream.AbstractStreamEncoder;
28 import org.apache.maven.surefire.api.util.internal.WritableBufferedByteChannel;
29
30 import static org.apache.maven.surefire.api.booter.Constants.DEFAULT_STREAM_ENCODING;
31 import static org.apache.maven.surefire.api.booter.Constants.DEFAULT_STREAM_ENCODING_BYTES;
32 import static org.apache.maven.surefire.api.booter.Constants.MAGIC_NUMBER_FOR_EVENTS_BYTES;
33
34
35
36
37 public class EventEncoder extends AbstractStreamEncoder<ForkedProcessEventType> {
38 public EventEncoder(WritableBufferedByteChannel out) {
39 super(out);
40 }
41
42 @Nonnull
43 @Override
44 protected final byte[] getEncodedMagicNumber() {
45 return MAGIC_NUMBER_FOR_EVENTS_BYTES;
46 }
47
48 @Nonnull
49 @Override
50 protected final byte[] enumToByteArray(@Nonnull ForkedProcessEventType e) {
51 return e.getOpcodeBinary();
52 }
53
54 @Nonnull
55 @Override
56 protected final byte[] getEncodedCharsetName() {
57 return DEFAULT_STREAM_ENCODING_BYTES;
58 }
59
60 @Nonnull
61 @Override
62 protected final Charset getCharset() {
63 return DEFAULT_STREAM_ENCODING;
64 }
65
66 @Nonnull
67 @Override
68 protected final CharsetEncoder newCharsetEncoder() {
69 return getCharset().newEncoder();
70 }
71 }