Search in sources :

Example 21 with CodeBlock

use of com.squareup.javapoet.CodeBlock in project Rocket by mozilla-tw.

the class RequestBuilderGenerator method generateGeneratedRequestOptionEquivalent.

/**
 * Generates a particular method with  an equivalent name and arguments to the given method
 * from the generated {@link com.bumptech.glide.request.BaseRequestBuilder} subclass.
 */
private MethodSpec generateGeneratedRequestOptionEquivalent(MethodSpec requestOptionMethod) {
    CodeBlock callRequestOptionsMethod = CodeBlock.builder().add(".$N(", requestOptionMethod.name).add(FluentIterable.from(requestOptionMethod.parameters).transform(new Function<ParameterSpec, String>() {

        @Override
        public String apply(ParameterSpec input) {
            return input.name;
        }
    }).join(Joiner.on(", "))).add(");\n").build();
    MethodSpec.Builder result = MethodSpec.methodBuilder(requestOptionMethod.name).addJavadoc(processorUtil.generateSeeMethodJavadoc(requestOptionsClassName, requestOptionMethod)).addModifiers(Modifier.PUBLIC).varargs(requestOptionMethod.varargs).addAnnotations(FluentIterable.from(requestOptionMethod.annotations).filter(new Predicate<AnnotationSpec>() {

        @Override
        public boolean apply(AnnotationSpec input) {
            return !input.type.equals(TypeName.get(Override.class)) && // non-final to allow for mocking.
            !input.type.equals(TypeName.get(SafeVarargs.class)) && // autoClone() in RequestBuilder.
            !input.type.equals(CHECK_RESULT_CLASS_NAME);
        }
    }).toList()).addTypeVariables(requestOptionMethod.typeVariables).addParameters(requestOptionMethod.parameters).returns(generatedRequestBuilderOfTranscodeType).beginControlFlow("if (getMutableOptions() instanceof $T)", requestOptionsClassName).addCode("this.requestOptions = (($T) getMutableOptions())", requestOptionsClassName).addCode(callRequestOptionsMethod).nextControlFlow("else").addCode(CodeBlock.of("this.requestOptions = new $T().apply(this.requestOptions)", requestOptionsClassName)).addCode(callRequestOptionsMethod).endControlFlow().addStatement("return this");
    if (requestOptionMethod.annotations.contains(AnnotationSpec.builder(SafeVarargs.class).build())) {
        result.addAnnotation(AnnotationSpec.builder(SuppressWarnings.class).addMember("value", "$S", "unchecked").addMember("value", "$S", "varargs").build());
    }
    return result.build();
}
Also used : ParameterSpec(com.squareup.javapoet.ParameterSpec) MethodSpec(com.squareup.javapoet.MethodSpec) CodeBlock(com.squareup.javapoet.CodeBlock) AnnotationSpec(com.squareup.javapoet.AnnotationSpec) Predicate(com.google.common.base.Predicate)

Example 22 with CodeBlock

use of com.squareup.javapoet.CodeBlock in project microservice_framework by CJSCommonPlatform.

the class JaxRsImplementationGenerator method putAllQueryParamsInCollectionBuilder.

/**
 * Generate code to add all query parameters to the params map.
 *
 * @param parameters the params to add to the map
 * @return the {@link CodeBlock} that represents the generated code
 */
private CodeBlock putAllQueryParamsInCollectionBuilder(final Map<String, QueryParameter> parameters) {
    final CodeBlock.Builder builder = CodeBlock.builder();
    parameters.entrySet().forEach(paramEntry -> {
        final String name = paramEntry.getKey();
        final ParameterType parameterType = ParameterType.valueOfQueryType(paramEntry.getValue().getType().name());
        if (paramEntry.getValue().isRequired()) {
            builder.addStatement(PARAMS_PUT_REQUIRED_STATEMENT_FORMAT, VALID_PARAMETER_COLLECTION_BUILDER_VARIABLE, name, name, ParameterType.class, parameterType.name());
        } else {
            builder.addStatement(PARAMS_PUT_OPTIONAL_STATEMENT_FORMAT, VALID_PARAMETER_COLLECTION_BUILDER_VARIABLE, name, name, ParameterType.class, parameterType.name());
        }
    });
    return builder.build();
}
Also used : ParameterType(uk.gov.justice.services.adapter.rest.parameter.ParameterType) CodeBlock(com.squareup.javapoet.CodeBlock)

Example 23 with CodeBlock

use of com.squareup.javapoet.CodeBlock in project microservice_framework by CJSCommonPlatform.

the class ActionMappingGenerator method mapperConstructorCodeFor.

private CodeBlock mapperConstructorCodeFor(final Resource resource) {
    final CodeBlock.Builder constructorCode = CodeBlock.builder().addStatement("this.$L = $L", ACTION_MAPPER_HELPER_FIELD, ACTION_MAPPER_HELPER_FIELD);
    // NOTE: there's a bit of ambiguity here: ramlActions (http methods) are not framework actions
    resource.getActions().values().forEach(ramlAction -> {
        final List<ActionMapping> actionMappings = new ActionMappingParser().listOf(ramlAction.getDescription());
        final ActionType actionType = ramlAction.getType();
        if (isSupportedActionType(actionType)) {
            actionMappings.forEach(actionMapping -> {
                final String mediaType = actionMapping.mimeTypeFor(ramlAction.getType());
                constructorCode.addStatement("$L.add($S, $S, $S)", ACTION_MAPPER_HELPER_FIELD, methodNameForAction(ramlAction, actionType, mediaType), mediaType, actionMapping.getName());
            });
        } else {
            throw new IllegalStateException(format("Http Method of type %s is not supported by the Action Mapper", actionType.toString()));
        }
    });
    return constructorCode.build();
}
Also used : ActionMappingParser(uk.gov.justice.services.generators.commons.mapping.ActionMappingParser) ActionMapping(uk.gov.justice.services.generators.commons.mapping.ActionMapping) ActionType(org.raml.model.ActionType) Actions.isSupportedActionType(uk.gov.justice.services.generators.commons.helper.Actions.isSupportedActionType) CodeBlock(com.squareup.javapoet.CodeBlock)

Example 24 with CodeBlock

use of com.squareup.javapoet.CodeBlock in project web3sdk by FISCO-BCOS.

the class SolidityFunctionWrapper method buildTypedResponse.

CodeBlock buildTypedResponse(String objectName, List<SolidityFunctionWrapper.NamedTypeName> indexedParameters, List<SolidityFunctionWrapper.NamedTypeName> nonIndexedParameters, boolean flowable) {
    String nativeConversion;
    if (useNativeJavaTypes) {
        nativeConversion = ".getValue()";
    } else {
        nativeConversion = "";
    }
    CodeBlock.Builder builder = CodeBlock.builder();
    if (flowable) {
        builder.addStatement("$L.log = log", objectName);
    } else {
        builder.addStatement("$L.log = eventValues.getLog()", objectName);
    }
    for (int i = 0; i < indexedParameters.size(); i++) {
        builder.addStatement("$L.$L = ($T) eventValues.getIndexedValues().get($L)" + nativeConversion, objectName, indexedParameters.get(i).getName(), getIndexedEventWrapperType(indexedParameters.get(i).getTypeName()), i);
    }
    for (int i = 0; i < nonIndexedParameters.size(); i++) {
        builder.addStatement("$L.$L = ($T) eventValues.getNonIndexedValues().get($L)" + nativeConversion, objectName, nonIndexedParameters.get(i).getName(), getWrapperType(nonIndexedParameters.get(i).getTypeName()), i);
    }
    return builder.build();
}
Also used : CodeBlock(com.squareup.javapoet.CodeBlock) Utf8String(org.fisco.bcos.web3j.abi.datatypes.Utf8String)

Example 25 with CodeBlock

use of com.squareup.javapoet.CodeBlock in project web3sdk by FISCO-BCOS.

the class SolidityFunctionWrapper method buildVariableLengthEventInitializer.

private static CodeBlock buildVariableLengthEventInitializer(String eventName, List<NamedTypeName> parameterTypes) {
    List<Object> objects = new ArrayList<>();
    objects.add(Event.class);
    objects.add(eventName);
    objects.add(Arrays.class);
    objects.add(TypeReference.class);
    for (NamedTypeName parameterType : parameterTypes) {
        objects.add(TypeReference.class);
        objects.add(parameterType.getTypeName());
    }
    String asListParams = parameterTypes.stream().map(type -> {
        if (type.isIndexed()) {
            return "new $T<$T>(true) {}";
        } else {
            return "new $T<$T>() {}";
        }
    }).collect(Collectors.joining(", "));
    return CodeBlock.builder().addStatement("new $T($S, \n" + "$T.<$T<?>>asList(" + asListParams + "))", objects.toArray()).build();
}
Also used : Arrays(java.util.Arrays) DynamicBytes(org.fisco.bcos.web3j.abi.datatypes.DynamicBytes) Strings(org.fisco.bcos.web3j.utils.Strings) Modifier(javax.lang.model.element.Modifier) TransactionDecoder(org.fisco.bcos.web3j.tx.txdecode.TransactionDecoder) LoggerFactory(org.slf4j.LoggerFactory) ClassName(com.squareup.javapoet.ClassName) StaticArray(org.fisco.bcos.web3j.abi.datatypes.StaticArray) Web3j(org.fisco.bcos.web3j.protocol.Web3j) TransactionReceipt(org.fisco.bcos.web3j.protocol.core.methods.response.TransactionReceipt) Matcher(java.util.regex.Matcher) Map(java.util.Map) Utf8String(org.fisco.bcos.web3j.abi.datatypes.Utf8String) BigInteger(java.math.BigInteger) Address(org.fisco.bcos.web3j.abi.datatypes.Address) DynamicArray(org.fisco.bcos.web3j.abi.datatypes.DynamicArray) RemoteCall(org.fisco.bcos.web3j.protocol.core.RemoteCall) AbiDefinition(org.fisco.bcos.web3j.protocol.core.methods.response.AbiDefinition) ParameterSpec(com.squareup.javapoet.ParameterSpec) EventEncoder(org.fisco.bcos.web3j.abi.EventEncoder) Set(java.util.Set) Credentials(org.fisco.bcos.web3j.crypto.Credentials) Collectors(java.util.stream.Collectors) SourceVersion(javax.lang.model.SourceVersion) Collection(org.fisco.bcos.web3j.utils.Collection) List(java.util.List) Type(org.fisco.bcos.web3j.abi.datatypes.Type) TypeName(com.squareup.javapoet.TypeName) Pattern(java.util.regex.Pattern) NamedType(org.fisco.bcos.web3j.protocol.core.methods.response.AbiDefinition.NamedType) FunctionReturnDecoder(org.fisco.bcos.web3j.abi.FunctionReturnDecoder) FieldSpec(com.squareup.javapoet.FieldSpec) Log(org.fisco.bcos.web3j.protocol.core.methods.response.Log) Callable(java.util.concurrent.Callable) Bool(org.fisco.bcos.web3j.abi.datatypes.Bool) ArrayList(java.util.ArrayList) HashSet(java.util.HashSet) Event(org.fisco.bcos.web3j.abi.datatypes.Event) AbiTypes(org.fisco.bcos.web3j.abi.datatypes.generated.AbiTypes) ContractGasProvider(org.fisco.bcos.web3j.tx.gas.ContractGasProvider) Function(org.fisco.bcos.web3j.abi.datatypes.Function) CodeBlock(com.squareup.javapoet.CodeBlock) EncryptType(org.fisco.bcos.web3j.crypto.EncryptType) Version(org.fisco.bcos.web3j.utils.Version) TypeVariableName(com.squareup.javapoet.TypeVariableName) Logger(org.slf4j.Logger) FunctionEncoder(org.fisco.bcos.web3j.abi.FunctionEncoder) TransactionManager(org.fisco.bcos.web3j.tx.TransactionManager) MethodSpec(com.squareup.javapoet.MethodSpec) ObjectMapperFactory(org.fisco.bcos.web3j.protocol.ObjectMapperFactory) ObjectMapper(com.fasterxml.jackson.databind.ObjectMapper) ParameterizedTypeName(com.squareup.javapoet.ParameterizedTypeName) IOException(java.io.IOException) TypeSpec(com.squareup.javapoet.TypeSpec) Contract(org.fisco.bcos.web3j.tx.Contract) TypeReference(org.fisco.bcos.web3j.abi.TypeReference) AnnotationSpec(com.squareup.javapoet.AnnotationSpec) Collections(java.util.Collections) ArrayList(java.util.ArrayList) Utf8String(org.fisco.bcos.web3j.abi.datatypes.Utf8String)

Aggregations

CodeBlock (com.squareup.javapoet.CodeBlock)42 MethodSpec (com.squareup.javapoet.MethodSpec)19 TypeMirror (javax.lang.model.type.TypeMirror)13 ParameterizedTypeName (com.squareup.javapoet.ParameterizedTypeName)11 TypeName (com.squareup.javapoet.TypeName)10 CompilationAbstractTest (com.google.auto.value.extension.serializable.serializer.utils.CompilationAbstractTest)8 ClassName (com.squareup.javapoet.ClassName)8 WireField (com.squareup.wire.WireField)8 Field (com.squareup.wire.schema.Field)8 ByteString (okio.ByteString)8 Test (org.junit.Test)8 JvmLanguages.builtInAdapterString (com.squareup.wire.schema.internal.JvmLanguages.builtInAdapterString)7 ArrayList (java.util.ArrayList)7 Serializer (com.google.auto.value.extension.serializable.serializer.interfaces.Serializer)6 ParameterSpec (com.squareup.javapoet.ParameterSpec)6 AnnotationSpec (com.squareup.javapoet.AnnotationSpec)4 TypeSpec (com.squareup.javapoet.TypeSpec)3 Element (javax.lang.model.element.Element)3 Predicate (com.google.common.base.Predicate)2 FieldSpec (com.squareup.javapoet.FieldSpec)2