All Downloads are FREE. Search and download functionalities are using the official Maven repository.

restx.annotations.processor.RestxRouter.mustache Maven / Gradle / Ivy

There is a newer version: 1.2.0-rc2
Show newest version
package {{package}};

import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.ObjectWriter;
import com.google.common.base.Optional;
import static com.google.common.base.Preconditions.checkNotNull;

import restx.common.Types;
import restx.*;
import restx.entity.*;
import restx.http.*;
import restx.factory.*;
import restx.security.*;
import static restx.security.Permissions.*;
import restx.description.*;
import restx.converters.MainStringConverter;
import static restx.common.MorePreconditions.checkPresent;

import javax.validation.Validator;
import static restx.validation.Validations.checkValid;

import java.io.IOException;
import java.io.PrintWriter;

@Component(priority = {{priority}})
{{condition}}
public class {{router}} extends RestxRouter {

    public {{router}}(
                    final {{resource}} resource,
                    final EntityRequestBodyReaderRegistry readerRegistry,
                    final EntityResponseWriterRegistry writerRegistry,
                    final MainStringConverter converter,
                    final Validator validator,
                    final RestxSecurityManager securityManager) {
        super(
            "{{routerGroup}}", "{{router}}", new RestxRoute[] {
{{#routes}}
        new StdEntityRoute<{{inEntity}}, {{outEntity}}>("{{routeId}}",
                readerRegistry.<{{inEntity}}>build({{inEntityType}}, {{inContentType}}),
                writerRegistry.<{{outEntity}}>build({{outEntityType}}, {{outContentType}}),
                new StdRestxRequestMatcher("{{method}}", "{{path}}"),
                HttpStatus.{{successStatusName}}, RestxLogLevel.{{logLevelName}}) {
            @Override
            protected Optional<{{outEntity}}> doRoute(RestxRequest request, RestxRequestMatch match, {{inEntity}} body) throws IOException {
                {{securityCheck}}
                {{call}}
            }

            @Override
            protected void describeOperation(OperationDescription operation) {
                super.describeOperation(operation);
                {{parametersDescription}}

                operation.responseClass = "{{responseClass}}";
                operation.inEntitySchemaKey = "{{inEntitySchemaKey}}";
                operation.outEntitySchemaKey = "{{outEntitySchemaKey}}";
                operation.sourceLocation = "{{sourceLocation}}";
            }
        },
{{/routes}}
        });
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy