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}