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 public class EventEncoder extends AbstractStreamEncoder<ForkedProcessEventType> {
35 public EventEncoder(WritableBufferedByteChannel out) {
36 super(out);
37 }
38
39 @Nonnull
40 @Override
41 protected final byte[] getEncodedMagicNumber() {
42 return MAGIC_NUMBER_FOR_EVENTS_BYTES;
43 }
44
45 @Nonnull
46 @Override
47 protected final byte[] enumToByteArray(@Nonnull ForkedProcessEventType e) {
48 return e.getOpcodeBinary();
49 }
50
51 @Nonnull
52 @Override
53 protected final byte[] getEncodedCharsetName() {
54 return DEFAULT_STREAM_ENCODING_BYTES;
55 }
56
57 @Nonnull
58 @Override
59 protected final Charset getCharset() {
60 return DEFAULT_STREAM_ENCODING;
61 }
62
63 @Nonnull
64 @Override
65 protected final CharsetEncoder newCharsetEncoder() {
66 return getCharset().newEncoder();
67 }
68 }