Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package org.javaswift.joss.command.impl.core;
  
 
 import java.net.URI;
 import java.util.List;
 
 public abstract class AbstractCommand<M extends HttpRequestBase, N> implements Callable<N>, Closeable {
 
     public static final Logger LOG = LoggerFactory.getLogger(AbstractCommand.class);
 
     private HttpClient httpClient;
 
     protected M request;
 
     protected HttpResponse response;
 
     private boolean allowErrorLog = true;
 
     public AbstractCommand(HttpClient httpClientString url) {
         this. = httpClient;
         this. = createRequest(url);
     }
 
     public void setAllowErrorLog(boolean allowErrorLog) {
         this. = allowErrorLog;
     }
 
     public N call() {
         logCall();
         try {
              = .execute();
             HttpStatusChecker.verifyCode(getStatusCheckers(), .getStatusLine().getStatusCode());
             return getReturnObject();
         } catch (CommandException err) {
             if () { // This is disabled, for example, for exists(), where we want to ignore the exception
                 logError(err);
             }
             throw err;
         } catch (IOException err) {
             throw new CommandException("Unable to execute the HTTP call or to convert the HTTP Response"err);
         } finally {
             if (closeStreamAutomatically()) {
                 try { close(); } catch (IOException err) { /* ignore */ }
             }
         }
     }
 
     private void logCall(M request) {
         .debug("JOSS / Sending "+getPrintableCall(request));
         for (String printableHeaderLine : getPrintableHeaderLines(request)) {
             .debug("* "+printableHeaderLine);
         }
     }
 
     private void logError(M requestCommandException err) {
         .error(
                 "JOSS / "+getPrintableCall(request)+
                         (err.getHttpStatusCode() == 0 ? "" : ", HTTP status "+err.getHttpStatusCode())+
                         (err.getError() == null ? "" : ", Error "+err.getError())+
                         (err.getMessage() == null ? "" : ", Message '"+err.getMessage()+"'")+
                         (err.getCause() == null ? "" : ", Cause "+err.getCause().getClass().getSimpleName()));
 
         for (String printableHeaderLine : getPrintableHeaderLines(request)) {
             .error("* "+printableHeaderLine);
         }
     }
 
     private String getPrintableCall(M request) {
         return "HTTP "+request.getMethod()+" call "+request.getURI().toString();
     }
 
     private List<StringgetPrintableHeaderLines(M request) {
         List<StringprintableHeaderLines = new ArrayList<String>();
         for (org.apache.http.Header header : request.getAllHeaders()) {
             printableHeaderLines.add(header.getName()+"="+header.getValue());
         }
         return printableHeaderLines;
     }
 
     protected void setHeader(Header header) {
         if (header == null) {
            return;
        }
        header.setHeader();
    }
    public void close() throws IOException {
        if ( != null) {
            EntityUtils.consume(.getEntity());
        }
    }
    protected boolean closeStreamAutomatically() {
        return true;
    }
    protected void addHeaders(Collection<? extends Headerheaders) {
        for (Header header : headers) {
            setHeader(header);
        }
    }
    protected abstract M createRequest(String url);
    protected abstract HttpStatusChecker[] getStatusCheckers();
    protected N getReturnObject(HttpResponse responsethrows IOException {
        return null// returns null by default
    }
    protected void modifyURI(QueryParameters queryParameters) {
        .setURI(URI.create(queryParameters.createUrl(.getURI().toString())));
    }
    protected ObjectMapper createObjectMapper(boolean dealWithRootValue) {
        ObjectMapper objectMapper = new ObjectMapper();
        if (dealWithRootValue) {
            objectMapper.configure(..true);
            objectMapper.configure(..true);
        }
        return objectMapper;
    }
New to GrepCode? Check out our FAQ X