Java tutorial
/* * Copyright (c) 2016 The Ontario Institute for Cancer Research. All rights reserved. * * This program and the accompanying materials are made available under the terms of the GNU Public License v3.0. * You should have received a copy of the GNU General Public License along with * this program. If not, see <http://www.gnu.org/licenses/>. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ package org.icgc.dcc.storage.test.s3; import static org.icgc.dcc.storage.test.s3.S3Request.Resource.BUCKET; import static org.icgc.dcc.storage.test.s3.S3Request.Resource.OBJECT; import static sirius.kernel.commons.Strings.isFilled; import javax.annotation.Nullable; import io.netty.handler.codec.http.HttpMethod; import lombok.NonNull; import lombok.Value; import sirius.web.http.WebContext; @Value public class S3Request { public enum Resource { OBJECT, BUCKET; } @NonNull WebContext ctx; @NonNull Resource resource; @NonNull String bucketName; @Nullable String objectId; public boolean isGet() { return ctx.getRequest().getMethod() == HttpMethod.GET; } public boolean isPut() { return ctx.getRequest().getMethod() == HttpMethod.PUT; } public boolean isObject() { return resource == OBJECT; } public boolean isBucket() { return resource == BUCKET; } public boolean isListing() { return isGet() && isBucket(); } public boolean isDownload(@NonNull String objectId) { return isDownload() && objectId.equals(this.objectId); } public boolean isDownload() { return isGet() && isObject() && hasObjectId(); } public boolean isUpload() { return isPut() && isObject() && hasUploadId(); } private boolean hasObjectId() { return isFilled(objectId); } private boolean hasUploadId() { return isFilled(ctx.get("uploadId").asString()); } }