@ PUT @ Timed public void setResource ( @ Suspended final AsyncResponse response , @ Context final Request request , @ Context final UriInfo uriInfo , @ Context final HttpHeaders headers , @ Context final SecurityContext secContext , final InputStream body ) { final TrellisRequest req = new TrellisRequest ( request , uriInfo , headers , secContext ) ; final String urlBase = getBaseUrl ( req ) ; final IRI identifier = rdf . createIRI ( TRELLIS_DATA_PREFIX + req . getPath ( ) ) ; final PutHandler putHandler = new PutHandler ( req , body , trellis , preconditionRequired , createUncontained , urlBase ) ; getParent ( identifier ) . thenCombine ( trellis . getResourceService ( ) . get ( identifier ) , putHandler :: initialize ) . thenCompose ( putHandler :: setResource ) . thenCompose ( putHandler :: updateMemento ) . thenApply ( ResponseBuilder :: build ) . exceptionally ( this :: handleException ) . thenApply ( response :: resume ) ; }
Perform a PUT operation on a LDP Resource .