@Override public <R> Request<R> answerBy( @Nonnull Class<R> type ) { return new InsertRequest<>( type, parentKey, adapter, adaptee, remoteRequest ); }
<T> SingleRequest<T> internalInsert( @Nonnull T resource, @Nullable Identifier parentKey, @Nullable MediaProvider<?> provider ) { checkNotNull( resource ); Class<?> remoteResource = evaluateRemoteResource( resource.getClass() ); Object source; if ( resource.getClass() == remoteResource ) { source = resource; } else { source = mapper.map( resource, remoteResource ); } @SuppressWarnings( "unchecked" ) InsertExecutorAdaptee<Object> adaptee = adaptee( InsertExecutorAdaptee.class, resource.getClass() ); Object remoteRequest; try { remoteRequest = adaptee.prepareInsert( source, parentKey, provider ); } catch ( IOException e ) { throw new ClientErrorException( 400, e.getMessage() ); } @SuppressWarnings( "unchecked" ) Class<T> resourceClass = ( Class<T> ) resource.getClass(); return new InsertRequest<>( resourceClass, parentKey, this, adaptee, remoteRequest ); }
<T> PayloadRequest<T> internalInsert( @Nonnull T resource, @Nullable Identifier parentKey, @Nullable MediaProvider provider ) { checkNotNull( resource ); Class<?> remoteResource = evaluateRemoteResource( resource.getClass() ); Object source; if ( resource.getClass() == remoteResource ) { source = resource; } else { source = mapper.map( resource, remoteResource ); } @SuppressWarnings( "unchecked" ) InsertExecutorAdaptee<Object> adaptee = adaptee( InsertExecutorAdaptee.class, resource.getClass() ); Object remoteRequest; try { remoteRequest = adaptee.prepareInsert( source, parentKey == null ? null : parentKey.root(), provider ); } catch ( IOException e ) { throw new ClientErrorException( e.getMessage() ); } @SuppressWarnings( "unchecked" ) Class<T> resourceClass = ( Class<T> ) resource.getClass(); return new InsertRequest<>( resourceClass, parentKey, this, adaptee, remoteRequest ); }