001/* 002 * The contents of this file are subject to the license and copyright 003 * detailed in the LICENSE and NOTICE files at the root of the source 004 * tree. 005 */ 006package org.fcrepo.client; 007 008import java.net.URI; 009import java.time.Instant; 010 011import org.apache.http.client.methods.HttpRequestBase; 012 013/** 014 * Builds a HEAD request to retrieve resource headers. 015 * 016 * @author bbpennel 017 */ 018public class HeadBuilder extends RetrieveRequestBuilder { 019 020 /** 021 * Instantiate builder 022 * 023 * @param uri uri request will be issued to 024 * @param client the client 025 */ 026 public HeadBuilder(final URI uri, final FcrepoClient client) { 027 super(uri, client); 028 this.request = HttpMethods.HEAD.createRequest(targetUri); 029 } 030 031 @Override 032 protected HttpRequestBase createRequest() { 033 return HttpMethods.HEAD.createRequest(targetUri); 034 } 035 036 @Override 037 public HeadBuilder disableRedirects() { 038 return (HeadBuilder) super.disableRedirects(); 039 } 040 041 @Override 042 public HeadBuilder wantDigest(final String value) { 043 return (HeadBuilder) super.wantDigest(value); 044 } 045 046 @Override 047 public HeadBuilder noCache() { 048 return (HeadBuilder) super.noCache(); 049 } 050 051 @Override 052 public HeadBuilder acceptDatetime(final Instant acceptInstant) { 053 return (HeadBuilder) super.acceptDatetime(acceptInstant); 054 } 055 056 @Override 057 public HeadBuilder acceptDatetime(final String acceptDatetime) { 058 return (HeadBuilder) super.acceptDatetime(acceptDatetime); 059 } 060 061 @Override 062 public HeadBuilder addHeader(final String name, final String value) { 063 return (HeadBuilder) super.addHeader(name, value); 064 } 065 066 @Override 067 public HeadBuilder addLinkHeader(final FcrepoLink linkHeader) { 068 return (HeadBuilder) super.addLinkHeader(linkHeader); 069 } 070 071 @Override 072 public HeadBuilder addTransaction(final URI transaction) { 073 return (HeadBuilder) super.addTransaction(transaction); 074 } 075}