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;
009
010import org.apache.http.client.methods.HttpRequestBase;
011
012/**
013 * Builds an OPTIONS request to output information about the supported HTTP methods, etc.
014 *
015 * @author bbpennel
016 */
017public class OptionsBuilder extends RequestBuilder {
018
019    /**
020     * Instantiate builder
021     *
022     * @param uri uri of the resource this request is being made to
023     * @param client the client
024     */
025    public OptionsBuilder(final URI uri, final FcrepoClient client) {
026        super(uri, client);
027    }
028
029    @Override
030    protected HttpRequestBase createRequest() {
031        return HttpMethods.OPTIONS.createRequest(targetUri);
032    }
033
034    @Override
035    public OptionsBuilder addHeader(final String name, final String value) {
036        return (OptionsBuilder) super.addHeader(name, value);
037    }
038
039    @Override
040    public OptionsBuilder addLinkHeader(final FcrepoLink linkHeader) {
041        return (OptionsBuilder) super.addLinkHeader(linkHeader);
042    }
043
044    @Override
045    public OptionsBuilder addTransaction(final URI transaction) {
046        return (OptionsBuilder) super.addTransaction(transaction);
047    }
048}