public class org.apache.avro.Conversions$DecimalConversion extends org.apache.avro.Conversion<java.math.BigDecimal>
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.apache.avro.Conversions$DecimalConversion
super_class: org.apache.avro.Conversion
{
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial org.apache.avro.Conversion.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/avro/Conversions$DecimalConversion;
public java.lang.Class<java.math.BigDecimal> getConvertedType();
descriptor: ()Ljava/lang/Class;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: ldc Ljava/math/BigDecimal;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/avro/Conversions$DecimalConversion;
Signature: ()Ljava/lang/Class<Ljava/math/BigDecimal;>;
public org.apache.avro.Schema getRecommendedSchema();
descriptor: ()Lorg/apache/avro/Schema;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new java.lang.UnsupportedOperationException
dup
ldc "No recommended schema for decimal (scale is required)"
invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/avro/Conversions$DecimalConversion;
public java.lang.String getLogicalTypeName();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: ldc "decimal"
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/avro/Conversions$DecimalConversion;
public java.math.BigDecimal fromBytes(java.nio.ByteBuffer, org.apache.avro.Schema, org.apache.avro.LogicalType);
descriptor: (Ljava/nio/ByteBuffer;Lorg/apache/avro/Schema;Lorg/apache/avro/LogicalType;)Ljava/math/BigDecimal;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 3
checkcast org.apache.avro.LogicalTypes$Decimal
invokevirtual org.apache.avro.LogicalTypes$Decimal.getScale:()I
istore 4
start local 4 1: aload 1
invokevirtual java.nio.ByteBuffer.remaining:()I
newarray 8
astore 5
start local 5 2: aload 1
aload 5
invokevirtual java.nio.ByteBuffer.get:([B)Ljava/nio/ByteBuffer;
pop
3: new java.math.BigDecimal
dup
new java.math.BigInteger
dup
aload 5
invokespecial java.math.BigInteger.<init>:([B)V
iload 4
invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;I)V
areturn
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 4 0 this Lorg/apache/avro/Conversions$DecimalConversion;
0 4 1 value Ljava/nio/ByteBuffer;
0 4 2 schema Lorg/apache/avro/Schema;
0 4 3 type Lorg/apache/avro/LogicalType;
1 4 4 scale I
2 4 5 bytes [B
MethodParameters:
Name Flags
value
schema
type
public java.nio.ByteBuffer toBytes(java.math.BigDecimal, org.apache.avro.Schema, org.apache.avro.LogicalType);
descriptor: (Ljava/math/BigDecimal;Lorg/apache/avro/Schema;Lorg/apache/avro/LogicalType;)Ljava/nio/ByteBuffer;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 3
checkcast org.apache.avro.LogicalTypes$Decimal
invokevirtual org.apache.avro.LogicalTypes$Decimal.getScale:()I
istore 4
start local 4 1: iload 4
aload 1
invokevirtual java.math.BigDecimal.scale:()I
if_icmpeq 3
2: new org.apache.avro.AvroTypeException
dup
new java.lang.StringBuilder
dup
ldc "Cannot encode decimal with scale "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.math.BigDecimal.scale:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " as scale "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 4
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial org.apache.avro.AvroTypeException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals: int
StackMap stack:
aload 1
invokevirtual java.math.BigDecimal.unscaledValue:()Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.toByteArray:()[B
invokestatic java.nio.ByteBuffer.wrap:([B)Ljava/nio/ByteBuffer;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/apache/avro/Conversions$DecimalConversion;
0 4 1 value Ljava/math/BigDecimal;
0 4 2 schema Lorg/apache/avro/Schema;
0 4 3 type Lorg/apache/avro/LogicalType;
1 4 4 scale I
MethodParameters:
Name Flags
value
schema
type
public java.math.BigDecimal fromFixed(org.apache.avro.generic.GenericFixed, org.apache.avro.Schema, org.apache.avro.LogicalType);
descriptor: (Lorg/apache/avro/generic/GenericFixed;Lorg/apache/avro/Schema;Lorg/apache/avro/LogicalType;)Ljava/math/BigDecimal;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 3
checkcast org.apache.avro.LogicalTypes$Decimal
invokevirtual org.apache.avro.LogicalTypes$Decimal.getScale:()I
istore 4
start local 4 1: new java.math.BigDecimal
dup
new java.math.BigInteger
dup
aload 1
invokeinterface org.apache.avro.generic.GenericFixed.bytes:()[B
invokespecial java.math.BigInteger.<init>:([B)V
iload 4
invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;I)V
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/avro/Conversions$DecimalConversion;
0 2 1 value Lorg/apache/avro/generic/GenericFixed;
0 2 2 schema Lorg/apache/avro/Schema;
0 2 3 type Lorg/apache/avro/LogicalType;
1 2 4 scale I
MethodParameters:
Name Flags
value
schema
type
public org.apache.avro.generic.GenericFixed toFixed(java.math.BigDecimal, org.apache.avro.Schema, org.apache.avro.LogicalType);
descriptor: (Ljava/math/BigDecimal;Lorg/apache/avro/Schema;Lorg/apache/avro/LogicalType;)Lorg/apache/avro/generic/GenericFixed;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=9, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 3
checkcast org.apache.avro.LogicalTypes$Decimal
invokevirtual org.apache.avro.LogicalTypes$Decimal.getScale:()I
istore 4
start local 4 1: iload 4
aload 1
invokevirtual java.math.BigDecimal.scale:()I
if_icmpeq 3
2: new org.apache.avro.AvroTypeException
dup
new java.lang.StringBuilder
dup
ldc "Cannot encode decimal with scale "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.math.BigDecimal.scale:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " as scale "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 4
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial org.apache.avro.AvroTypeException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals: int
StackMap stack:
aload 1
invokevirtual java.math.BigDecimal.signum:()I
ifge 4
sipush 255
goto 5
StackMap locals:
StackMap stack:
4: iconst_0
StackMap locals:
StackMap stack: int
5: i2b
istore 5
start local 5 6: aload 1
invokevirtual java.math.BigDecimal.unscaledValue:()Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.toByteArray:()[B
astore 6
start local 6 7: aload 2
invokevirtual org.apache.avro.Schema.getFixedSize:()I
newarray 8
astore 7
start local 7 8: aload 7
arraylength
aload 6
arraylength
isub
istore 8
start local 8 9: aload 7
iconst_0
iload 8
iload 5
invokestatic java.util.Arrays.fill:([BIIB)V
10: aload 6
iconst_0
aload 7
iload 8
aload 7
arraylength
iload 8
isub
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
11: new org.apache.avro.generic.GenericData$Fixed
dup
aload 2
aload 7
invokespecial org.apache.avro.generic.GenericData$Fixed.<init>:(Lorg/apache/avro/Schema;[B)V
areturn
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 12 0 this Lorg/apache/avro/Conversions$DecimalConversion;
0 12 1 value Ljava/math/BigDecimal;
0 12 2 schema Lorg/apache/avro/Schema;
0 12 3 type Lorg/apache/avro/LogicalType;
1 12 4 scale I
6 12 5 fillByte B
7 12 6 unscaled [B
8 12 7 bytes [B
9 12 8 offset I
MethodParameters:
Name Flags
value
schema
type
public java.lang.Object fromBytes(java.nio.ByteBuffer, org.apache.avro.Schema, org.apache.avro.LogicalType);
descriptor: (Ljava/nio/ByteBuffer;Lorg/apache/avro/Schema;Lorg/apache/avro/LogicalType;)Ljava/lang/Object;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=4, locals=4, args_size=4
0: aload 0
aload 1
aload 2
aload 3
invokevirtual org.apache.avro.Conversions$DecimalConversion.fromBytes:(Ljava/nio/ByteBuffer;Lorg/apache/avro/Schema;Lorg/apache/avro/LogicalType;)Ljava/math/BigDecimal;
areturn
LocalVariableTable:
Start End Slot Name Signature
public java.lang.Object fromFixed(org.apache.avro.generic.GenericFixed, org.apache.avro.Schema, org.apache.avro.LogicalType);
descriptor: (Lorg/apache/avro/generic/GenericFixed;Lorg/apache/avro/Schema;Lorg/apache/avro/LogicalType;)Ljava/lang/Object;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=4, locals=4, args_size=4
0: aload 0
aload 1
aload 2
aload 3
invokevirtual org.apache.avro.Conversions$DecimalConversion.fromFixed:(Lorg/apache/avro/generic/GenericFixed;Lorg/apache/avro/Schema;Lorg/apache/avro/LogicalType;)Ljava/math/BigDecimal;
areturn
LocalVariableTable:
Start End Slot Name Signature
public java.nio.ByteBuffer toBytes(java.lang.Object, org.apache.avro.Schema, org.apache.avro.LogicalType);
descriptor: (Ljava/lang/Object;Lorg/apache/avro/Schema;Lorg/apache/avro/LogicalType;)Ljava/nio/ByteBuffer;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=4, locals=4, args_size=4
0: aload 0
aload 1
checkcast java.math.BigDecimal
aload 2
aload 3
invokevirtual org.apache.avro.Conversions$DecimalConversion.toBytes:(Ljava/math/BigDecimal;Lorg/apache/avro/Schema;Lorg/apache/avro/LogicalType;)Ljava/nio/ByteBuffer;
areturn
LocalVariableTable:
Start End Slot Name Signature
public org.apache.avro.generic.GenericFixed toFixed(java.lang.Object, org.apache.avro.Schema, org.apache.avro.LogicalType);
descriptor: (Ljava/lang/Object;Lorg/apache/avro/Schema;Lorg/apache/avro/LogicalType;)Lorg/apache/avro/generic/GenericFixed;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=4, locals=4, args_size=4
0: aload 0
aload 1
checkcast java.math.BigDecimal
aload 2
aload 3
invokevirtual org.apache.avro.Conversions$DecimalConversion.toFixed:(Ljava/math/BigDecimal;Lorg/apache/avro/Schema;Lorg/apache/avro/LogicalType;)Lorg/apache/avro/generic/GenericFixed;
areturn
LocalVariableTable:
Start End Slot Name Signature
}
Signature: Lorg/apache/avro/Conversion<Ljava/math/BigDecimal;>;
SourceFile: "Conversions.java"
NestHost: org.apache.avro.Conversions
InnerClasses:
public DecimalConversion = org.apache.avro.Conversions$DecimalConversion of org.apache.avro.Conversions
public Decimal = org.apache.avro.LogicalTypes$Decimal of org.apache.avro.LogicalTypes
public Fixed = org.apache.avro.generic.GenericData$Fixed of org.apache.avro.generic.GenericData