Search in sources :

Example 1 with Rpc

use of com.squareup.wire.schema.Rpc in project wire by square.

the class ServiceGenerator method api.

public TypeSpec api(Service service) {
    ClassName apiName = (ClassName) javaGenerator.typeName(service.type());
    TypeSpec.Builder typeBuilder = TypeSpec.interfaceBuilder(apiName.simpleName());
    typeBuilder.addModifiers(PUBLIC);
    if (!service.documentation().isEmpty()) {
        typeBuilder.addJavadoc("$L\n", service.documentation());
    }
    for (Rpc rpc : service.rpcs()) {
        ProtoType requestType = rpc.requestType();
        TypeName requestJavaType = javaGenerator.typeName(requestType);
        ProtoType responseType = rpc.responseType();
        TypeName responseJavaType = javaGenerator.typeName(responseType);
        MethodSpec.Builder rpcBuilder = MethodSpec.methodBuilder(rpc.name());
        rpcBuilder.addModifiers(PUBLIC, ABSTRACT);
        rpcBuilder.returns(responseJavaType);
        rpcBuilder.addParameter(requestJavaType, "request");
        if (!rpc.documentation().isEmpty()) {
            rpcBuilder.addJavadoc("$L\n", rpc.documentation());
        }
        typeBuilder.addMethod(rpcBuilder.build());
    }
    return typeBuilder.build();
}
Also used : ProtoType(com.squareup.wire.schema.ProtoType) TypeName(com.squareup.javapoet.TypeName) Rpc(com.squareup.wire.schema.Rpc) MethodSpec(com.squareup.javapoet.MethodSpec) ClassName(com.squareup.javapoet.ClassName) TypeSpec(com.squareup.javapoet.TypeSpec)

Aggregations

ClassName (com.squareup.javapoet.ClassName)1 MethodSpec (com.squareup.javapoet.MethodSpec)1 TypeName (com.squareup.javapoet.TypeName)1 TypeSpec (com.squareup.javapoet.TypeSpec)1 ProtoType (com.squareup.wire.schema.ProtoType)1 Rpc (com.squareup.wire.schema.Rpc)1