@Override public Void execute( Map<String, Object> parameters ) { return execute( parameters, null ); }
@Override public T finish() { return finish( null, withLocale ); }
@Override public <R> Request<R> answerBy( @Nonnull Class<R> type ) { checkNotNull( type ); return new DeleteRequest<>( type, identifier, adapter, adaptee, remoteRequest ); }
@Override public <R> R finish( @Nonnull Class<R> type ) { return answerBy( type ).finish(); } }
@Override @SuppressWarnings( "unchecked" ) public <T> SingleRequest<T> delete( @Nonnull Class<T> resource, @Nonnull Identifier identifier ) { checkNotNull( resource ); checkNotNull( identifier ); DeleteExecutorAdaptee adaptee = adaptee( DeleteExecutorAdaptee.class, resource ); Object remoteRequest; try { remoteRequest = adaptee.prepareDelete( identifier ); } catch ( IOException e ) { throw new ClientErrorException( 400, e.getMessage() ); } return ( SingleRequest ) new DeleteRequest( resource, identifier, this, adaptee, remoteRequest ); }
@SuppressWarnings( "unchecked" ) <T> PayloadRequest<T> internalDelete( @Nonnull Class<T> resource, @Nonnull Identifier identifier ) { checkNotNull( resource ); checkNotNull( identifier ); DeleteExecutorAdaptee adaptee = adaptee( DeleteExecutorAdaptee.class, resource ); Object remoteRequest; try { remoteRequest = adaptee.prepareDelete( identifier.root() ); } catch ( IOException e ) { throw new ClientErrorException( e.getMessage() ); } // by default response type is not being provided (resulting in null), client can configure if expected return new DeleteRequest( identifier, this, adaptee, remoteRequest ); }
@Override public T finish( @Nullable Locale locale ) { return finish( null, locale ); }
@Override public Void execute( Locale locale ) { return execute( null, locale ); }
@Override public T finish( @Nullable Map<String, Object> parameters ) { return finish( parameters, withLocale ); }
@Override public Void execute() { return execute( null, null ); }
@Override public T finish( @Nonnull RequestCredential credential ) { checkNotNull( credential ); credential.populate( this.params ); return finish(); }