public class io.netty.handler.codec.dns.DefaultDnsRecordEncoder implements io.netty.handler.codec.dns.DnsRecordEncoder
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: io.netty.handler.codec.dns.DefaultDnsRecordEncoder
super_class: java.lang.Object
{
private static final int PREFIX_MASK;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 7
protected void <init>();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/netty/handler/codec/dns/DefaultDnsRecordEncoder;
public final void encodeQuestion(io.netty.handler.codec.dns.DnsQuestion, io.netty.buffer.ByteBuf);
descriptor: (Lio/netty/handler/codec/dns/DnsQuestion;Lio/netty/buffer/ByteBuf;)V
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokeinterface io.netty.handler.codec.dns.DnsQuestion.name:()Ljava/lang/String;
aload 2
invokevirtual io.netty.handler.codec.dns.DefaultDnsRecordEncoder.encodeName:(Ljava/lang/String;Lio/netty/buffer/ByteBuf;)V
1: aload 2
aload 1
invokeinterface io.netty.handler.codec.dns.DnsQuestion.type:()Lio/netty/handler/codec/dns/DnsRecordType;
invokevirtual io.netty.handler.codec.dns.DnsRecordType.intValue:()I
invokevirtual io.netty.buffer.ByteBuf.writeShort:(I)Lio/netty/buffer/ByteBuf;
pop
2: aload 2
aload 1
invokeinterface io.netty.handler.codec.dns.DnsQuestion.dnsClass:()I
invokevirtual io.netty.buffer.ByteBuf.writeShort:(I)Lio/netty/buffer/ByteBuf;
pop
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lio/netty/handler/codec/dns/DefaultDnsRecordEncoder;
0 4 1 question Lio/netty/handler/codec/dns/DnsQuestion;
0 4 2 out Lio/netty/buffer/ByteBuf;
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
question
out
public void encodeRecord(io.netty.handler.codec.dns.DnsRecord, io.netty.buffer.ByteBuf);
descriptor: (Lio/netty/handler/codec/dns/DnsRecord;Lio/netty/buffer/ByteBuf;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
instanceof io.netty.handler.codec.dns.DnsQuestion
ifeq 3
1: aload 0
aload 1
checkcast io.netty.handler.codec.dns.DnsQuestion
aload 2
invokevirtual io.netty.handler.codec.dns.DefaultDnsRecordEncoder.encodeQuestion:(Lio/netty/handler/codec/dns/DnsQuestion;Lio/netty/buffer/ByteBuf;)V
2: goto 16
StackMap locals:
StackMap stack:
3: aload 1
instanceof io.netty.handler.codec.dns.DnsPtrRecord
ifeq 6
4: aload 0
aload 1
checkcast io.netty.handler.codec.dns.DnsPtrRecord
aload 2
invokevirtual io.netty.handler.codec.dns.DefaultDnsRecordEncoder.encodePtrRecord:(Lio/netty/handler/codec/dns/DnsPtrRecord;Lio/netty/buffer/ByteBuf;)V
5: goto 16
StackMap locals:
StackMap stack:
6: aload 1
instanceof io.netty.handler.codec.dns.DnsOptEcsRecord
ifeq 9
7: aload 0
aload 1
checkcast io.netty.handler.codec.dns.DnsOptEcsRecord
aload 2
invokevirtual io.netty.handler.codec.dns.DefaultDnsRecordEncoder.encodeOptEcsRecord:(Lio/netty/handler/codec/dns/DnsOptEcsRecord;Lio/netty/buffer/ByteBuf;)V
8: goto 16
StackMap locals:
StackMap stack:
9: aload 1
instanceof io.netty.handler.codec.dns.DnsOptPseudoRecord
ifeq 12
10: aload 0
aload 1
checkcast io.netty.handler.codec.dns.DnsOptPseudoRecord
aload 2
invokevirtual io.netty.handler.codec.dns.DefaultDnsRecordEncoder.encodeOptPseudoRecord:(Lio/netty/handler/codec/dns/DnsOptPseudoRecord;Lio/netty/buffer/ByteBuf;)V
11: goto 16
StackMap locals:
StackMap stack:
12: aload 1
instanceof io.netty.handler.codec.dns.DnsRawRecord
ifeq 15
13: aload 0
aload 1
checkcast io.netty.handler.codec.dns.DnsRawRecord
aload 2
invokevirtual io.netty.handler.codec.dns.DefaultDnsRecordEncoder.encodeRawRecord:(Lio/netty/handler/codec/dns/DnsRawRecord;Lio/netty/buffer/ByteBuf;)V
14: goto 16
15: StackMap locals:
StackMap stack:
new io.netty.handler.codec.UnsupportedMessageTypeException
dup
aload 1
invokestatic io.netty.util.internal.StringUtil.simpleClassName:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial io.netty.handler.codec.UnsupportedMessageTypeException.<init>:(Ljava/lang/String;)V
athrow
16: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lio/netty/handler/codec/dns/DefaultDnsRecordEncoder;
0 17 1 record Lio/netty/handler/codec/dns/DnsRecord;
0 17 2 out Lio/netty/buffer/ByteBuf;
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
record
out
private void encodeRecord0(io.netty.handler.codec.dns.DnsRecord, io.netty.buffer.ByteBuf);
descriptor: (Lio/netty/handler/codec/dns/DnsRecord;Lio/netty/buffer/ByteBuf;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokeinterface io.netty.handler.codec.dns.DnsRecord.name:()Ljava/lang/String;
aload 2
invokevirtual io.netty.handler.codec.dns.DefaultDnsRecordEncoder.encodeName:(Ljava/lang/String;Lio/netty/buffer/ByteBuf;)V
1: aload 2
aload 1
invokeinterface io.netty.handler.codec.dns.DnsRecord.type:()Lio/netty/handler/codec/dns/DnsRecordType;
invokevirtual io.netty.handler.codec.dns.DnsRecordType.intValue:()I
invokevirtual io.netty.buffer.ByteBuf.writeShort:(I)Lio/netty/buffer/ByteBuf;
pop
2: aload 2
aload 1
invokeinterface io.netty.handler.codec.dns.DnsRecord.dnsClass:()I
invokevirtual io.netty.buffer.ByteBuf.writeShort:(I)Lio/netty/buffer/ByteBuf;
pop
3: aload 2
aload 1
invokeinterface io.netty.handler.codec.dns.DnsRecord.timeToLive:()J
l2i
invokevirtual io.netty.buffer.ByteBuf.writeInt:(I)Lio/netty/buffer/ByteBuf;
pop
4: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lio/netty/handler/codec/dns/DefaultDnsRecordEncoder;
0 5 1 record Lio/netty/handler/codec/dns/DnsRecord;
0 5 2 out Lio/netty/buffer/ByteBuf;
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
record
out
private void encodePtrRecord(io.netty.handler.codec.dns.DnsPtrRecord, io.netty.buffer.ByteBuf);
descriptor: (Lio/netty/handler/codec/dns/DnsPtrRecord;Lio/netty/buffer/ByteBuf;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
invokevirtual io.netty.handler.codec.dns.DefaultDnsRecordEncoder.encodeRecord0:(Lio/netty/handler/codec/dns/DnsRecord;Lio/netty/buffer/ByteBuf;)V
1: aload 0
aload 1
invokeinterface io.netty.handler.codec.dns.DnsPtrRecord.hostname:()Ljava/lang/String;
aload 2
invokevirtual io.netty.handler.codec.dns.DefaultDnsRecordEncoder.encodeName:(Ljava/lang/String;Lio/netty/buffer/ByteBuf;)V
2: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/netty/handler/codec/dns/DefaultDnsRecordEncoder;
0 3 1 record Lio/netty/handler/codec/dns/DnsPtrRecord;
0 3 2 out Lio/netty/buffer/ByteBuf;
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
record
out
private void encodeOptPseudoRecord(io.netty.handler.codec.dns.DnsOptPseudoRecord, io.netty.buffer.ByteBuf);
descriptor: (Lio/netty/handler/codec/dns/DnsOptPseudoRecord;Lio/netty/buffer/ByteBuf;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
invokevirtual io.netty.handler.codec.dns.DefaultDnsRecordEncoder.encodeRecord0:(Lio/netty/handler/codec/dns/DnsRecord;Lio/netty/buffer/ByteBuf;)V
1: aload 2
iconst_0
invokevirtual io.netty.buffer.ByteBuf.writeShort:(I)Lio/netty/buffer/ByteBuf;
pop
2: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/netty/handler/codec/dns/DefaultDnsRecordEncoder;
0 3 1 record Lio/netty/handler/codec/dns/DnsOptPseudoRecord;
0 3 2 out Lio/netty/buffer/ByteBuf;
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
record
out
private void encodeOptEcsRecord(io.netty.handler.codec.dns.DnsOptEcsRecord, io.netty.buffer.ByteBuf);
descriptor: (Lio/netty/handler/codec/dns/DnsOptEcsRecord;Lio/netty/buffer/ByteBuf;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=12, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
invokevirtual io.netty.handler.codec.dns.DefaultDnsRecordEncoder.encodeRecord0:(Lio/netty/handler/codec/dns/DnsRecord;Lio/netty/buffer/ByteBuf;)V
1: aload 1
invokeinterface io.netty.handler.codec.dns.DnsOptEcsRecord.sourcePrefixLength:()I
istore 3
start local 3 2: aload 1
invokeinterface io.netty.handler.codec.dns.DnsOptEcsRecord.scopePrefixLength:()I
istore 4
start local 4 3: iload 3
bipush 7
iand
istore 5
start local 5 4: aload 1
invokeinterface io.netty.handler.codec.dns.DnsOptEcsRecord.address:()[B
astore 6
start local 6 5: aload 6
arraylength
iconst_3
ishl
istore 7
start local 7 6: iload 7
iload 3
if_icmplt 7
iload 3
ifge 10
7: StackMap locals: io.netty.handler.codec.dns.DefaultDnsRecordEncoder io.netty.handler.codec.dns.DnsOptEcsRecord io.netty.buffer.ByteBuf int int int byte[] int
StackMap stack:
new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
iload 3
invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc ": "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
8: iload 3
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " (expected: 0 >= "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 7
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
bipush 41
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
9: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
10: StackMap locals:
StackMap stack:
aload 6
arraylength
iconst_4
if_icmpne 12
11: getstatic io.netty.channel.socket.InternetProtocolFamily.IPv4:Lio/netty/channel/socket/InternetProtocolFamily;
invokevirtual io.netty.channel.socket.InternetProtocolFamily.addressNumber:()I
goto 13
StackMap locals:
StackMap stack:
12: getstatic io.netty.channel.socket.InternetProtocolFamily.IPv6:Lio/netty/channel/socket/InternetProtocolFamily;
invokevirtual io.netty.channel.socket.InternetProtocolFamily.addressNumber:()I
13: StackMap locals:
StackMap stack: int
i2s
istore 8
start local 8 14: iload 3
iload 5
invokestatic io.netty.handler.codec.dns.DefaultDnsRecordEncoder.calculateEcsAddressLength:(II)I
istore 9
start local 9 15: bipush 8
16: iload 9
17: iadd
istore 10
start local 10 18: aload 2
iload 10
invokevirtual io.netty.buffer.ByteBuf.writeShort:(I)Lio/netty/buffer/ByteBuf;
pop
19: aload 2
bipush 8
invokevirtual io.netty.buffer.ByteBuf.writeShort:(I)Lio/netty/buffer/ByteBuf;
pop
20: aload 2
iload 10
iconst_4
isub
invokevirtual io.netty.buffer.ByteBuf.writeShort:(I)Lio/netty/buffer/ByteBuf;
pop
21: aload 2
iload 8
invokevirtual io.netty.buffer.ByteBuf.writeShort:(I)Lio/netty/buffer/ByteBuf;
pop
22: aload 2
iload 3
invokevirtual io.netty.buffer.ByteBuf.writeByte:(I)Lio/netty/buffer/ByteBuf;
pop
23: aload 2
iload 4
invokevirtual io.netty.buffer.ByteBuf.writeByte:(I)Lio/netty/buffer/ByteBuf;
pop
24: iload 5
ifle 29
25: iload 9
iconst_1
isub
istore 11
start local 11 26: aload 2
aload 6
iconst_0
iload 11
invokevirtual io.netty.buffer.ByteBuf.writeBytes:([BII)Lio/netty/buffer/ByteBuf;
pop
27: aload 2
aload 6
iload 11
baload
iload 5
invokestatic io.netty.handler.codec.dns.DefaultDnsRecordEncoder.padWithZeros:(BI)B
invokevirtual io.netty.buffer.ByteBuf.writeByte:(I)Lio/netty/buffer/ByteBuf;
pop
end local 11 28: goto 30
29: StackMap locals: int int int
StackMap stack:
aload 2
aload 6
iconst_0
iload 9
invokevirtual io.netty.buffer.ByteBuf.writeBytes:([BII)Lio/netty/buffer/ByteBuf;
pop
30: StackMap locals:
StackMap stack:
return
end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 31 0 this Lio/netty/handler/codec/dns/DefaultDnsRecordEncoder;
0 31 1 record Lio/netty/handler/codec/dns/DnsOptEcsRecord;
0 31 2 out Lio/netty/buffer/ByteBuf;
2 31 3 sourcePrefixLength I
3 31 4 scopePrefixLength I
4 31 5 lowOrderBitsToPreserve I
5 31 6 bytes [B
6 31 7 addressBits I
14 31 8 addressNumber S
15 31 9 payloadLength I
18 31 10 fullPayloadLength I
26 28 11 bytesLength I
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
record
out
static int calculateEcsAddressLength(int, int);
descriptor: (II)I
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: iload 0
iconst_3
iushr
iload 1
ifeq 1
iconst_1
goto 2
StackMap locals:
StackMap stack: int
1: iconst_0
StackMap locals: int int
StackMap stack: int int
2: iadd
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 sourcePrefixLength I
0 3 1 lowOrderBitsToPreserve I
MethodParameters:
Name Flags
sourcePrefixLength
lowOrderBitsToPreserve
private void encodeRawRecord(io.netty.handler.codec.dns.DnsRawRecord, io.netty.buffer.ByteBuf);
descriptor: (Lio/netty/handler/codec/dns/DnsRawRecord;Lio/netty/buffer/ByteBuf;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
invokevirtual io.netty.handler.codec.dns.DefaultDnsRecordEncoder.encodeRecord0:(Lio/netty/handler/codec/dns/DnsRecord;Lio/netty/buffer/ByteBuf;)V
1: aload 1
invokeinterface io.netty.handler.codec.dns.DnsRawRecord.content:()Lio/netty/buffer/ByteBuf;
astore 3
start local 3 2: aload 3
invokevirtual io.netty.buffer.ByteBuf.readableBytes:()I
istore 4
start local 4 3: aload 2
iload 4
invokevirtual io.netty.buffer.ByteBuf.writeShort:(I)Lio/netty/buffer/ByteBuf;
pop
4: aload 2
aload 3
aload 3
invokevirtual io.netty.buffer.ByteBuf.readerIndex:()I
iload 4
invokevirtual io.netty.buffer.ByteBuf.writeBytes:(Lio/netty/buffer/ByteBuf;II)Lio/netty/buffer/ByteBuf;
pop
5: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lio/netty/handler/codec/dns/DefaultDnsRecordEncoder;
0 6 1 record Lio/netty/handler/codec/dns/DnsRawRecord;
0 6 2 out Lio/netty/buffer/ByteBuf;
2 6 3 content Lio/netty/buffer/ByteBuf;
3 6 4 contentLen I
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
record
out
protected void encodeName(java.lang.String, io.netty.buffer.ByteBuf);
descriptor: (Ljava/lang/String;Lio/netty/buffer/ByteBuf;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=9, args_size=3
start local 0 start local 1 start local 2 0: ldc "."
aload 1
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 3
1: aload 2
iconst_0
invokevirtual io.netty.buffer.ByteBuf.writeByte:(I)Lio/netty/buffer/ByteBuf;
pop
2: return
3: StackMap locals:
StackMap stack:
aload 1
ldc "\\."
invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
astore 3
start local 3 4: aload 3
dup
astore 7
arraylength
istore 6
iconst_0
istore 5
goto 12
StackMap locals: io.netty.handler.codec.dns.DefaultDnsRecordEncoder java.lang.String io.netty.buffer.ByteBuf java.lang.String[] top int int java.lang.String[]
StackMap stack:
5: aload 7
iload 5
aaload
astore 4
start local 4 6: aload 4
invokevirtual java.lang.String.length:()I
istore 8
start local 8 7: iload 8
ifne 9
8: goto 13
9: StackMap locals: io.netty.handler.codec.dns.DefaultDnsRecordEncoder java.lang.String io.netty.buffer.ByteBuf java.lang.String[] java.lang.String int int java.lang.String[] int
StackMap stack:
aload 2
iload 8
invokevirtual io.netty.buffer.ByteBuf.writeByte:(I)Lio/netty/buffer/ByteBuf;
pop
10: aload 2
aload 4
invokestatic io.netty.buffer.ByteBufUtil.writeAscii:(Lio/netty/buffer/ByteBuf;Ljava/lang/CharSequence;)I
pop
end local 8 end local 4 11: iinc 5 1
StackMap locals: io.netty.handler.codec.dns.DefaultDnsRecordEncoder java.lang.String io.netty.buffer.ByteBuf java.lang.String[] top int int java.lang.String[]
StackMap stack:
12: iload 5
iload 6
if_icmplt 5
13: StackMap locals: io.netty.handler.codec.dns.DefaultDnsRecordEncoder java.lang.String io.netty.buffer.ByteBuf java.lang.String[]
StackMap stack:
aload 2
iconst_0
invokevirtual io.netty.buffer.ByteBuf.writeByte:(I)Lio/netty/buffer/ByteBuf;
pop
14: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lio/netty/handler/codec/dns/DefaultDnsRecordEncoder;
0 15 1 name Ljava/lang/String;
0 15 2 buf Lio/netty/buffer/ByteBuf;
4 15 3 labels [Ljava/lang/String;
6 11 4 label Ljava/lang/String;
7 11 8 labelLen I
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
name
buf
private static byte padWithZeros(byte, int);
descriptor: (BI)B
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: iload 1
tableswitch { // 0 - 8
0: 1
1: 2
2: 3
3: 4
4: 5
5: 6
6: 7
7: 8
8: 9
default: 10
}
1: StackMap locals:
StackMap stack:
iconst_0
ireturn
2: StackMap locals:
StackMap stack:
sipush 128
iload 0
iand
i2b
ireturn
3: StackMap locals:
StackMap stack:
sipush 192
iload 0
iand
i2b
ireturn
4: StackMap locals:
StackMap stack:
sipush 224
iload 0
iand
i2b
ireturn
5: StackMap locals:
StackMap stack:
sipush 240
iload 0
iand
i2b
ireturn
6: StackMap locals:
StackMap stack:
sipush 248
iload 0
iand
i2b
ireturn
7: StackMap locals:
StackMap stack:
sipush 252
iload 0
iand
i2b
ireturn
8: StackMap locals:
StackMap stack:
sipush 254
iload 0
iand
i2b
ireturn
9: StackMap locals:
StackMap stack:
iload 0
ireturn
10: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "lowOrderBitsToPreserve: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 1
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 b B
0 11 1 lowOrderBitsToPreserve I
MethodParameters:
Name Flags
b
lowOrderBitsToPreserve
}
SourceFile: "DefaultDnsRecordEncoder.java"