SolidityFunctionWrapper extends Generator { public static TypeName getEventNativeType(TypeName typeName) { if (typeName instanceof ParameterizedTypeName) { return TypeName.get(byte[].class); } String simpleName = ((ClassName) typeName).simpleName(); if (simpleName.equals(Utf8String.class.getSimpleName())) { return TypeName.get(byte[].class); } else { return getNativeType(typeName); } } SolidityFunctionWrapper(boolean useNativeJavaTypes);  SolidityFunctionWrapper(boolean useNativeJavaTypes, GenerationReporter reporter); @SuppressWarnings("unchecked") void generateJavaFiles(
            String contractName, String bin, String abi, String destinationDir,
            String basePackageName); Iterable<FieldSpec> buildFuncNameConstants(List<AbiDefinition> functionDefinitions); static TypeName getNativeType(TypeName typeName); static TypeName getNativeType(ParameterizedTypeName parameterizedTypeName); static TypeName getEventNativeType(TypeName typeName); static String createValidParamName(String name, int idx); static List<TypeName> buildTypeNames(List<AbiDefinition.NamedType> namedTypes); MethodSpec buildFunction(
            AbiDefinition functionDefinition); MethodSpec buildEventFunction(
            String responseClassName,
            String functionName,
            List<NamedTypeName> indexedParameters,
            List<NamedTypeName> nonIndexedParameters); List<MethodSpec> buildEventFunctions(
            AbiDefinition functionDefinition,
            TypeSpec.Builder classBuilder); CodeBlock buildTypedResponse(
            String objectName,
            List<com.peersafe.codegen.SolidityFunctionWrapper.NamedTypeName> indexedParameters,
            List<com.peersafe.codegen.SolidityFunctionWrapper.NamedTypeName> nonIndexedParameters,
            boolean observable); static TypeName buildTypeName(String typeDeclaration);  }
@Test public void testGetEventNativeType() { assertThat(getEventNativeType(TypeName.get(Utf8String.class)), equalTo(TypeName.get(byte[].class))); }
@Test public void testGetEventNativeTypeParameterized() { assertThat(getEventNativeType( ParameterizedTypeName.get( ClassName.get(DynamicArray.class), TypeName.get(Address.class))), equalTo(TypeName.get(byte[].class))); }