Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Types improvement #18

Merged
merged 1 commit into from
May 20, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
plugins {
id 'io.freefair.lombok' version '6.1.0' apply false
id 'io.freefair.lombok' version '6.4.3' apply false
id 'maven-publish'
}

Expand Down

This file was deleted.

This file was deleted.

1 change: 1 addition & 0 deletions rpc/rpc-codegen/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ dependencies {
implementation project(':scale')
implementation project(':scale:scale-codegen')
implementation project(':transport')
implementation project(':types')

compileOnly 'com.google.auto.service:auto-service-annotations:1.0.1'
annotationProcessor 'com.google.auto.service:auto-service:1.0.1'
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
package com.strategyobject.substrateclient.rpc.codegen.decoder;

import com.squareup.javapoet.CodeBlock;
import com.strategyobject.substrateclient.common.codegen.Constants;
import com.strategyobject.substrateclient.common.codegen.ProcessorContext;
import com.strategyobject.substrateclient.common.codegen.TypeTraverser;
import com.strategyobject.substrateclient.rpc.core.DecoderPair;
import com.strategyobject.substrateclient.rpc.core.RpcDecoder;
import com.strategyobject.substrateclient.rpc.core.RpcRegistryHelper;
import com.strategyobject.substrateclient.scale.ScaleReader;
import com.strategyobject.substrateclient.scale.ScaleRegistryHelper;
import com.strategyobject.substrateclient.types.Array;
import lombok.NonNull;
import lombok.var;

Expand Down Expand Up @@ -44,7 +44,7 @@ public DecoderCompositor(@NonNull ProcessorContext context,
this.readerMethod = readerMethod;
this.decoderRegistryVarName = decoderRegistryVarName;
this.scaleRegistryVarName = scaleRegistryVarName;
this.arrayType = context.erasure(context.getType(Constants.ARRAY_TYPE));
this.arrayType = context.erasure(context.getType(Array.class));
}

private CodeBlock getTypeVarCodeBlock(TypeVariable type) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
package com.strategyobject.substrateclient.rpc.codegen.encoder;

import com.squareup.javapoet.CodeBlock;
import com.strategyobject.substrateclient.common.codegen.Constants;
import com.strategyobject.substrateclient.common.codegen.ProcessorContext;
import com.strategyobject.substrateclient.common.codegen.TypeTraverser;
import com.strategyobject.substrateclient.rpc.core.EncoderPair;
import com.strategyobject.substrateclient.rpc.core.RpcEncoder;
import com.strategyobject.substrateclient.rpc.core.RpcRegistryHelper;
import com.strategyobject.substrateclient.scale.ScaleRegistryHelper;
import com.strategyobject.substrateclient.scale.ScaleWriter;
import com.strategyobject.substrateclient.types.Array;
import lombok.NonNull;
import lombok.val;
import lombok.var;
Expand Down Expand Up @@ -45,7 +45,7 @@ public EncoderCompositor(@NonNull ProcessorContext context,
this.writerMethod = writerMethod;
this.encoderRegistryVarName = encoderRegistryVarName;
this.scaleRegistryVarName = scaleRegistryVarName;
this.arrayType = context.erasure(context.getType(Constants.ARRAY_TYPE));
this.arrayType = context.erasure(context.getType(Array.class));
}

private CodeBlock getNonGenericCodeBlock(TypeMirror type) {
Expand Down
1 change: 1 addition & 0 deletions rpc/rpc-core/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ dependencies {
implementation project(':common')
implementation project(':scale')
implementation project(':transport')
implementation project(':types')

testImplementation project(':tests')

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package com.strategyobject.substrateclient.rpc.core.decoders;

import com.google.common.base.Preconditions;
import com.strategyobject.substrateclient.rpc.core.DecoderPair;
import com.strategyobject.substrateclient.rpc.core.RpcDecoder;
import com.strategyobject.substrateclient.transport.RpcObject;
import com.strategyobject.substrateclient.types.Unit;

public class UnitDecoder implements RpcDecoder<Unit> {
@Override
public Unit decode(RpcObject value, DecoderPair<?>... decoders) {
Preconditions.checkArgument(decoders == null || decoders.length == 0);

return Unit.get();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package com.strategyobject.substrateclient.rpc.core.encoders;

import com.google.common.base.Preconditions;
import com.strategyobject.substrateclient.rpc.core.EncoderPair;
import com.strategyobject.substrateclient.rpc.core.RpcEncoder;
import com.strategyobject.substrateclient.types.Unit;

public class UnitEncoder implements RpcEncoder<Unit> {

@Override
public Object encode(Unit source, EncoderPair<?>... encoders) {
Preconditions.checkArgument(encoders == null || encoders.length == 0);

return null;
}
}
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
package com.strategyobject.substrateclient.rpc.core.registries;

import com.strategyobject.substrateclient.common.CommonType;
import com.strategyobject.substrateclient.common.reflection.Scanner;
import com.strategyobject.substrateclient.rpc.core.RpcDecoder;
import com.strategyobject.substrateclient.rpc.core.annotations.AutoRegister;
import com.strategyobject.substrateclient.rpc.core.decoders.*;
import com.strategyobject.substrateclient.types.Array;
import com.strategyobject.substrateclient.types.Unit;
import lombok.NonNull;
import lombok.val;
import org.slf4j.Logger;
Expand All @@ -26,6 +27,7 @@ private RpcDecoderRegistry() {
register(new ListDecoder(), List.class);
register(new MapDecoder(), Map.class);
register(new VoidDecoder(), Void.class);
register(new UnitDecoder(), Unit.class);
register(new BooleanDecoder(), Boolean.class, boolean.class);
register(new ByteDecoder(), Byte.class, byte.class);
register(new DoubleDecoder(), Double.class, double.class);
Expand All @@ -34,7 +36,7 @@ private RpcDecoderRegistry() {
register(new LongDecoder(), Long.class, long.class);
register(new ShortDecoder(), Short.class, short.class);
register(new StringDecoder(), String.class);
register(new ArrayDecoder(), CommonType.Array.class);
register(new ArrayDecoder(), Array.class);

registerAnnotatedFrom(ROOT_PREFIX);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,11 @@
package com.strategyobject.substrateclient.rpc.core.registries;

import com.strategyobject.substrateclient.common.CommonType;
import com.strategyobject.substrateclient.common.reflection.Scanner;
import com.strategyobject.substrateclient.rpc.core.RpcEncoder;
import com.strategyobject.substrateclient.rpc.core.annotations.AutoRegister;
import com.strategyobject.substrateclient.rpc.core.encoders.ArrayEncoder;
import com.strategyobject.substrateclient.rpc.core.encoders.ListEncoder;
import com.strategyobject.substrateclient.rpc.core.encoders.MapEncoder;
import com.strategyobject.substrateclient.rpc.core.encoders.PlainEncoder;
import com.strategyobject.substrateclient.rpc.core.encoders.*;
import com.strategyobject.substrateclient.types.Array;
import com.strategyobject.substrateclient.types.Unit;
import lombok.NonNull;
import lombok.val;
import org.slf4j.Logger;
Expand All @@ -29,9 +27,10 @@ private RpcEncoderRegistry() {
register(new PlainEncoder<>(),
Void.class, String.class, Boolean.class, boolean.class, Byte.class, byte.class, Double.class, double.class,
Float.class, float.class, Integer.class, int.class, Long.class, long.class, Short.class, short.class);
register(new UnitEncoder(), Unit.class);
register(new ListEncoder(), List.class);
register(new MapEncoder(), Map.class);
register(new ArrayEncoder(), CommonType.Array.class);
register(new ArrayEncoder(), Array.class);

registerAnnotatedFrom(ROOT_PREFIX);
}
Expand Down
3 changes: 2 additions & 1 deletion scale/scale-codegen/build.gradle
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
dependencies {
implementation project(':scale')
implementation project(':common')
implementation project(':scale')
implementation project(':types')

compileOnly 'com.google.auto.service:auto-service-annotations:1.0.1'
annotationProcessor 'com.google.auto.service:auto-service:1.0.1'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@

import com.google.common.base.Strings;
import com.squareup.javapoet.CodeBlock;
import com.strategyobject.substrateclient.common.codegen.Constants;
import com.strategyobject.substrateclient.common.codegen.ProcessorContext;
import com.strategyobject.substrateclient.common.codegen.TypeTraverser;
import com.strategyobject.substrateclient.types.Array;
import lombok.NonNull;
import lombok.var;

Expand All @@ -28,7 +28,7 @@ private ReaderCompositor(ProcessorContext context,
this.typeVarMap = typeVarMap;
this.readerAccessor = readerAccessor;
this.registryVarName = registryVarName;
this.arrayType = context.erasure(context.getType(Constants.ARRAY_TYPE));
this.arrayType = context.erasure(context.getType(Array.class));
}

public static ReaderCompositor forAnyType(@NonNull ProcessorContext context,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package com.strategyobject.substrateclient.scale.codegen.writer;

import com.squareup.javapoet.CodeBlock;
import com.strategyobject.substrateclient.common.codegen.Constants;
import com.strategyobject.substrateclient.common.codegen.ProcessorContext;
import com.strategyobject.substrateclient.common.codegen.TypeTraverser;
import com.strategyobject.substrateclient.types.Array;
import lombok.NonNull;
import lombok.var;

Expand Down Expand Up @@ -32,7 +32,7 @@ private WriterCompositor(ProcessorContext context,
this.selfWritable = context.erasure(context.getType(SCALE_SELF_WRITABLE));
this.writerAccessor = writerAccessor;
this.registryVarName = registryVarName;
this.arrayType = context.erasure(context.getType(Constants.ARRAY_TYPE));
this.arrayType = context.erasure(context.getType(Array.class));
}

public static WriterCompositor forAnyType(@NonNull ProcessorContext context,
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package com.strategyobject.substrateclient.scale.readers;

import com.google.common.base.Preconditions;
import com.strategyobject.substrateclient.scale.ScaleReader;
import com.strategyobject.substrateclient.types.Unit;
import lombok.NonNull;

import java.io.InputStream;

public class UnitReader implements ScaleReader<Unit> {
@Override
public Unit read(@NonNull InputStream stream, ScaleReader<?>... readers) {
Preconditions.checkArgument(readers == null || readers.length == 0);

return Unit.get();
}
}
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
package com.strategyobject.substrateclient.scale.registries;

import com.strategyobject.substrateclient.common.CommonType;
import com.strategyobject.substrateclient.common.reflection.Scanner;
import com.strategyobject.substrateclient.scale.ScaleReader;
import com.strategyobject.substrateclient.scale.ScaleType;
import com.strategyobject.substrateclient.scale.annotations.AutoRegister;
import com.strategyobject.substrateclient.scale.readers.*;
import com.strategyobject.substrateclient.scale.readers.union.*;
import com.strategyobject.substrateclient.types.Array;
import com.strategyobject.substrateclient.types.Result;
import com.strategyobject.substrateclient.types.Unit;
import com.strategyobject.substrateclient.types.union.*;
import lombok.NonNull;
import lombok.val;
Expand Down Expand Up @@ -59,13 +60,14 @@ private ScaleReaderRegistry() {
register(new Union11Reader(), Union11.class, ScaleType.Union11.class);
register(new Union12Reader(), Union12.class, ScaleType.Union12.class);
register(new VecReader(), ScaleType.Vec.class, List.class);
register(new ArrayReader(), CommonType.Array.class);
register(new ArrayReader(), Array.class);
register(new BooleanArrayReader(), boolean[].class);
register(new ByteArrayReader(), byte[].class);
register(new ShortArrayReader(), short[].class);
register(new IntArrayReader(), int[].class);
register(new LongArrayReader(), long[].class);
register(new VoidReader(), Void.class);
register(new UnitReader(), Unit.class);

registerAnnotatedFrom(ROOT_PREFIX);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,16 +1,13 @@
package com.strategyobject.substrateclient.scale.registries;

import com.strategyobject.substrateclient.common.CommonType;
import com.strategyobject.substrateclient.common.reflection.Scanner;
import com.strategyobject.substrateclient.scale.ScaleSelfWritable;
import com.strategyobject.substrateclient.scale.ScaleType;
import com.strategyobject.substrateclient.scale.ScaleWriter;
import com.strategyobject.substrateclient.scale.annotations.AutoRegister;
import com.strategyobject.substrateclient.scale.writers.*;
import com.strategyobject.substrateclient.scale.writers.union.*;
import com.strategyobject.substrateclient.types.PublicKey;
import com.strategyobject.substrateclient.types.Result;
import com.strategyobject.substrateclient.types.SignatureData;
import com.strategyobject.substrateclient.types.*;
import com.strategyobject.substrateclient.types.union.*;
import lombok.NonNull;
import lombok.val;
Expand Down Expand Up @@ -62,13 +59,14 @@ private ScaleWriterRegistry() {
register(new Union11Writer(), Union11.class, ScaleType.Union11.class);
register(new Union12Writer(), Union12.class, ScaleType.Union12.class);
register(new VecWriter(), ScaleType.Vec.class, List.class);
register(new ArrayWriter(), CommonType.Array.class);
register(new ArrayWriter(), Array.class);
register(new BooleanArrayWriter(), boolean[].class);
register(new ByteArrayWriter(), byte[].class);
register(new ShortArrayWriter(), short[].class);
register(new IntArrayWriter(), int[].class);
register(new LongArrayWriter(), long[].class);
register(new VoidWriter(), Void.class);
register(new UnitWriter(), Unit.class);
register(new SelfWriter(), ScaleSelfWritable.class);
register(new PublicKeyWriter(), PublicKey.class);
register(new SignatureDataWriter(), SignatureData.class);
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package com.strategyobject.substrateclient.scale.writers;

import com.google.common.base.Preconditions;
import com.strategyobject.substrateclient.scale.ScaleWriter;
import com.strategyobject.substrateclient.types.Unit;
import lombok.NonNull;

import java.io.OutputStream;

public class UnitWriter implements ScaleWriter<Unit> {
@Override
public void write(@NonNull Unit value, @NonNull OutputStream stream, ScaleWriter<?>... writers) {
Preconditions.checkArgument(writers == null || writers.length == 0);
}
}

Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
package com.strategyobject.substrateclient.types;

public interface Array<T> {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package com.strategyobject.substrateclient.types;

public class Unit {
private static final Unit UNIT = new Unit();

public static Unit get() {
return UNIT;
}

private Unit() {
}
}