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.io.InputStream; 009import java.net.URI; 010 011import org.apache.http.client.methods.HttpRequestBase; 012 013/** 014 * Builds a PUT request for interacting with the Fedora HTTP API in order to modify the triples associated with a 015 * resource with SPARQL-Update. 016 * 017 * @author bbpennel 018 */ 019public class PatchBuilder extends BodyRequestBuilder { 020 021 private static final String SPARQL_UPDATE = "application/sparql-update"; 022 023 /** 024 * Instantiate builder 025 * 026 * @param uri uri of the resource this request is being made to 027 * @param client the client 028 */ 029 public PatchBuilder(final URI uri, final FcrepoClient client) { 030 super(uri, client); 031 } 032 033 @Override 034 protected HttpRequestBase createRequest() { 035 return HttpMethods.PATCH.createRequest(targetUri); 036 } 037 038 /** 039 * Add a body to this request from a stream, with application/sparql-update as its content type 040 * 041 * @param stream InputStream of the content to be sent to the server 042 * @return this builder 043 */ 044 @Override 045 public PatchBuilder body(final InputStream stream) { 046 return (PatchBuilder) super.body(stream, SPARQL_UPDATE); 047 } 048 049 @Override 050 public PatchBuilder body(final InputStream stream, final String contentType) { 051 return (PatchBuilder) super.body(stream, contentType); 052 } 053 054 @Override 055 public PatchBuilder ifMatch(final String etag) { 056 return (PatchBuilder) super.ifMatch(etag); 057 } 058 059 @Override 060 public PatchBuilder ifUnmodifiedSince(final String modified) { 061 return (PatchBuilder) super.ifUnmodifiedSince(modified); 062 } 063 064 @Override 065 public PatchBuilder ifStateToken(final String token) { 066 return (PatchBuilder) super.ifStateToken(token); 067 } 068 069 @Deprecated 070 @Override 071 public PatchBuilder digest(final String digest) { 072 return (PatchBuilder) super.digest(digest); 073 } 074 075 @Override 076 public PatchBuilder digest(final String digest, final String alg) { 077 return (PatchBuilder) super.digest(digest, alg); 078 } 079 080 @Override 081 public PatchBuilder digestMd5(final String digest) { 082 return (PatchBuilder) super.digestMd5(digest); 083 } 084 085 @Override 086 public PatchBuilder digestSha1(final String digest) { 087 return (PatchBuilder) super.digestSha1(digest); 088 } 089 090 @Override 091 public PatchBuilder digestSha256(final String digest) { 092 return (PatchBuilder) super.digestSha256(digest); 093 } 094 095 @Override 096 public PatchBuilder addHeader(final String name, final String value) { 097 return (PatchBuilder) super.addHeader(name, value); 098 } 099 100 @Override 101 public PatchBuilder addLinkHeader(final FcrepoLink linkHeader) { 102 return (PatchBuilder) super.addLinkHeader(linkHeader); 103 } 104 105 @Override 106 public PatchBuilder addTransaction(final URI transaction) { 107 return (PatchBuilder) super.addTransaction(transaction); 108 } 109}