org.sonatype.nexus.repository.http.HttpResponses.java Source code

Java tutorial

Introduction

Here is the source code for org.sonatype.nexus.repository.http.HttpResponses.java

Source

/*
 * Sonatype Nexus (TM) Open Source Version
 * Copyright (c) 2008-present Sonatype, Inc.
 * All rights reserved. Includes the third-party code listed at http://links.sonatype.com/products/nexus/oss/attributions.
 *
 * This program and the accompanying materials are made available under the terms of the Eclipse Public License Version 1.0,
 * which accompanies this distribution and is available at http://www.eclipse.org/legal/epl-v10.html.
 *
 * Sonatype Nexus (TM) Professional Version is available from Sonatype, Inc. "Sonatype" and "Sonatype Nexus" are trademarks
 * of Sonatype, Inc. Apache Maven is a trademark of the Apache Software Foundation. M2eclipse is a trademark of the
 * Eclipse Foundation. All other trademarks are the property of their respective owners.
 */
package org.sonatype.nexus.repository.http;

import javax.annotation.Nullable;

import org.sonatype.nexus.repository.view.Payload;
import org.sonatype.nexus.repository.view.Response;
import org.sonatype.nexus.repository.view.Status;

import com.google.common.base.Joiner;
import com.google.common.net.HttpHeaders;

import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.base.Preconditions.checkNotNull;
import static org.sonatype.nexus.repository.http.HttpStatus.*;

/**
 * Convenience methods for constructing various commonly used HTTP responses.
 *
 * @since 3.0
 */
public class HttpResponses {
    private HttpResponses() {
        // empty
    }

    // Ok: 200

    public static Response ok(@Nullable final String message) {
        return new Response.Builder().status(Status.success(OK, message)).build();
    }

    public static Response ok() {
        return ok((String) null);
    }

    public static Response ok(final Payload payload) {
        return new Response.Builder().status(Status.success(OK)).payload(payload).build();
    }

    // Created: 201

    public static Response created(@Nullable final String message) {
        return new Response.Builder().status(Status.success(CREATED, message)).build();
    }

    public static Response created() {
        return created((String) null);
    }

    public static Response created(final Payload payload) {
        return new Response.Builder().status(Status.success(CREATED)).payload(payload).build();
    }

    // Accepted: 202

    public static Response accepted() {
        return new Response.Builder().status(Status.success(ACCEPTED)).build();
    }

    // No Content: 204

    public static Response noContent(@Nullable final String message) {
        return new Response.Builder().status(Status.success(NO_CONTENT, message)).build();
    }

    public static Response noContent() {
        return noContent(null);
    }

    // Not Found: 404

    public static Response notFound(@Nullable final String message) {
        return new Response.Builder().status(Status.failure(NOT_FOUND, message)).build();
    }

    public static Response notFound() {
        return notFound(null);
    }

    // Bad request: 400

    public static Response badRequest(@Nullable final String message) {
        return new Response.Builder().status(Status.failure(BAD_REQUEST, message)).build();
    }

    public static Response badRequest() {
        return badRequest(null);
    }

    // Unauthorized: 401

    public static Response unauthorized(@Nullable final String message) {
        return new Response.Builder().status(Status.failure(UNAUTHORIZED, message)).build();
    }

    public static Response unauthorized() {
        return unauthorized(null);
    }

    // Forbidden: 403

    public static Response forbidden(@Nullable final String message) {
        return new Response.Builder().status(Status.failure(FORBIDDEN, message)).build();
    }

    public static Response forbidden() {
        return forbidden(null);
    }

    // Method not allowed: 405

    public static Response methodNotAllowed(final String methodName, final String... allowedMethods) {
        checkNotNull(methodName);
        checkNotNull(allowedMethods);
        checkArgument(allowedMethods.length != 0);
        return new Response.Builder().status(Status.failure(METHOD_NOT_ALLOWED, methodName))
                .header(HttpHeaders.ALLOW, Joiner.on(',').join(allowedMethods)).build();
    }

    public static Response serviceUnavailable(@Nullable final String message) {
        return new Response.Builder().status(Status.failure(SERVICE_UNAVAILABLE, message)).build();
    }

    public static Response serviceUnavailable() {
        return serviceUnavailable(null);
    }

    public static Response badGateway(@Nullable final String message) {
        return new Response.Builder().status(Status.failure(BAD_GATEWAY, message)).build();
    }

    public static Response badGateway() {
        return badGateway(null);
    }

    public static Response notImplemented(@Nullable final String message) {
        return new Response.Builder().status(Status.failure(NOT_IMPLEMENTED, message)).build();
    }

    public static Response rangeNotSatisfiable(final long contentSize) {
        return new Response.Builder().status(Status.failure(REQUESTED_RANGE_NOT_SATISFIABLE))
                .header(HttpHeaders.CONTENT_LENGTH, "0").header(HttpHeaders.CONTENT_RANGE, "bytes */" + contentSize)
                .build();
    }
}