001/*
002 * Licensed to DuraSpace under one or more contributor license agreements.
003 * See the NOTICE file distributed with this work for additional information
004 * regarding copyright ownership.
005 *
006 * DuraSpace licenses this file to you under the Apache License,
007 * Version 2.0 (the "License"); you may not use this file except in
008 * compliance with the License.  You may obtain a copy of the License at
009 *
010 *     http://www.apache.org/licenses/LICENSE-2.0
011 *
012 * Unless required by applicable law or agreed to in writing, software
013 * distributed under the License is distributed on an "AS IS" BASIS,
014 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
015 * See the License for the specific language governing permissions and
016 * limitations under the License.
017 */
018package org.fcrepo.client;
019
020import java.net.URI;
021import java.time.Instant;
022
023import org.apache.http.client.methods.HttpRequestBase;
024
025/**
026 * Builds a HEAD request to retrieve resource headers.
027 *
028 * @author bbpennel
029 */
030public class HeadBuilder extends RetrieveRequestBuilder {
031
032    /**
033     * Instantiate builder
034     *
035     * @param uri uri request will be issued to
036     * @param client the client
037     */
038    public HeadBuilder(final URI uri, final FcrepoClient client) {
039        super(uri, client);
040        this.request = HttpMethods.HEAD.createRequest(targetUri);
041    }
042
043    @Override
044    protected HttpRequestBase createRequest() {
045        return HttpMethods.HEAD.createRequest(targetUri);
046    }
047
048    @Override
049    public HeadBuilder disableRedirects() {
050        return (HeadBuilder) super.disableRedirects();
051    }
052
053    @Override
054    public HeadBuilder wantDigest(final String value) {
055        return (HeadBuilder) super.wantDigest(value);
056    }
057
058    @Override
059    public HeadBuilder noCache() {
060        return (HeadBuilder) super.noCache();
061    }
062
063    @Override
064    public HeadBuilder acceptDatetime(final Instant acceptInstant) {
065        return (HeadBuilder) super.acceptDatetime(acceptInstant);
066    }
067
068    @Override
069    public HeadBuilder acceptDatetime(final String acceptDatetime) {
070        return (HeadBuilder) super.acceptDatetime(acceptDatetime);
071    }
072
073    @Override
074    public HeadBuilder addHeader(final String name, final String value) {
075        return (HeadBuilder) super.addHeader(name, value);
076    }
077
078    @Override
079    public HeadBuilder addLinkHeader(final FcrepoLink linkHeader) {
080        return (HeadBuilder) super.addLinkHeader(linkHeader);
081    }
082}