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  }