All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.netbeans.lib.cvsclient.ErrorDefendingResponseHandler Maven / Gradle / Ivy

Go to download

A packaging of the IntelliJ Community Edition javacvs-src library. This is release number 1 of trunk branch 142.

The newest version!
package org.netbeans.lib.cvsclient;

import org.netbeans.lib.cvsclient.response.IResponseHandler;
import org.netbeans.lib.cvsclient.response.IResponseServices;

import java.io.IOException;
import java.util.Date;

public class ErrorDefendingResponseHandler implements IResponseHandler {
  private static final int MAX_ERRORS_NUM = 50;
  private final long myErrorStreamTimeout;
  private final static long ourOkConstant = -1;
  private long myErrorStreamStart;
  private int myConsequentErrorsCount;
  private final IResponseHandler myHandler;

  public ErrorDefendingResponseHandler(final long errorStreamTimeout, final IResponseHandler handler) {
    myErrorStreamTimeout = errorStreamTimeout;
    myHandler = handler;
    myErrorStreamStart = ourOkConstant;
    myConsequentErrorsCount = 0;
  }

  private void onError() {
    ++ myConsequentErrorsCount;
    if (ourOkConstant == myErrorStreamStart) {
      myErrorStreamStart = System.currentTimeMillis();
    }
  }

  private void onOk() {
    myErrorStreamStart = ourOkConstant;
    myConsequentErrorsCount = 0;
  }

  public boolean interrupt() {
    return (myConsequentErrorsCount >= MAX_ERRORS_NUM) ||
           ((myErrorStreamTimeout > 0) && (ourOkConstant != myErrorStreamStart) && ((System.currentTimeMillis() - myErrorStreamStart) >= myErrorStreamTimeout));
  }

  public void processErrorMessageResponse(final byte[] message, final IResponseServices responseServices) {
    myHandler.processErrorMessageResponse(message, responseServices);
    onError();
  }

  public void processMessageResponse(final byte[] message, final IResponseServices responseServices) {
    myHandler.processMessageResponse(message, responseServices);
    onOk();
  }

  public void processMessageTaggedResponse(final byte[] message, final IResponseServices responseServices) {
    myHandler.processMessageTaggedResponse(message, responseServices);
    onOk();
  }

  public void processCheckedInResponse(final String relativeLocalDirectory,
                                       final String repositoryFilePath,
                                       final String entryLine,
                                       final IResponseServices responseServices, final IClientEnvironment clientEnvironment)
      throws IOException {
    myHandler.processCheckedInResponse(relativeLocalDirectory, repositoryFilePath, entryLine, responseServices, clientEnvironment);
    onOk();
  }

  public void processNewEntryResponse(final String relativeLocalDirectory, final String repositoryFilePath, final IResponseServices responseServoces,
                                      final String entryLine,
                                      final IClientEnvironment clientEnvironment) throws IOException {
    myHandler.processNewEntryResponse(relativeLocalDirectory, repositoryFilePath, responseServoces, entryLine, clientEnvironment);
    onOk();
  }

  public void processSetStaticDirectoryResponse(final String relativeLocalDirectory,
                                                final String repositoryFilePath,
                                                final IResponseServices responseServices, final IClientEnvironment clientEnvironment)
      throws IOException {
    myHandler.processSetStaticDirectoryResponse(relativeLocalDirectory, repositoryFilePath, responseServices, clientEnvironment);
    onOk();
  }

  public void processClearStaticDirectoryResponse(final String relativeLocalDirectory,
                                                  final String repositoryDirectoryPath,
                                                  final IResponseServices responseServices, final IClientEnvironment clientEnvironment)
      throws IOException {
    myHandler.processClearStaticDirectoryResponse(relativeLocalDirectory, repositoryDirectoryPath, responseServices, clientEnvironment);
    onOk();
  }

  public void processSetStickyResponse(final String relativeLocalDirectory,
                                       final String repositoryFilePath,
                                       final String tag,
                                       final IClientEnvironment clientEnvironment) throws IOException {
    myHandler.processSetStickyResponse(relativeLocalDirectory, repositoryFilePath, tag, clientEnvironment);
    onOk();
  }

  public void processClearStickyResponse(final String relativeLocalDirectory, final String repositoryFilePath, final IClientEnvironment clientEnvironment)
      throws IOException {
    myHandler.processClearStickyResponse(relativeLocalDirectory, repositoryFilePath, clientEnvironment);
    onOk();
  }

  public void processNotifiedResponse(final String relativeLocalDirectory, final String repositoryFilePath, final IClientEnvironment clientEnvironment) {
    myHandler.processNotifiedResponse(relativeLocalDirectory, repositoryFilePath, clientEnvironment);
    onOk();
  }

  public void processRemovedResponse(final String relativeLocalDirectory, final String repositoryFilePath, final IResponseServices responseServices,
                                     final IClientEnvironment clientEnvironment) throws IOException {
    myHandler.processRemovedResponse(relativeLocalDirectory, repositoryFilePath, responseServices, clientEnvironment);
    onOk();
  }

  public void processRemoveEntryResponse(final String relativeLocalDirectory, final String repositoryFilePath, final IResponseServices responseServices,
                                         final IClientEnvironment clientEnvironment) throws IOException {
    myHandler.processRemoveEntryResponse(relativeLocalDirectory, repositoryFilePath, responseServices, clientEnvironment);
    onOk();
  }

  public void processCopyFileResponse(final String relativeLocalDirectory,
                                      final String repositoryFilePath,
                                      final String newName,
                                      final IClientEnvironment clientEnvironment) throws IOException {
    myHandler.processCopyFileResponse(relativeLocalDirectory, repositoryFilePath, newName, clientEnvironment);
    onOk();
  }

  public void processModTimeResponse(final Date modifiedDate, final IResponseServices responseServices) {
    myHandler.processModTimeResponse(modifiedDate, responseServices);
    onOk();
  }

  public void processModeResponse(final String mode, final IResponseServices responseServices) {
    myHandler.processModeResponse(mode, responseServices);
    onOk();
  }

  public void processTemplateResponse(final String relativeLocalDirectory,
                                      final String repositoryFilePath,
                                      final int length,
                                      final IClientEnvironment clientEnvironment, final IConnectionStreams connectionStreams)
      throws IOException {
    myHandler.processTemplateResponse(relativeLocalDirectory, repositoryFilePath, length, clientEnvironment, connectionStreams);
    onOk();
  }

  public void processModuleExpansionResponse(final String localPath, final IResponseServices responseServices) {
    myHandler.processModuleExpansionResponse(localPath, responseServices);
    onOk();
  }

  public void processOkResponse(final IResponseServices responseServices) {
    myHandler.processOkResponse(responseServices);
    onOk();
  }

  public void processErrorResponse(final byte[] message, final IResponseServices responseServices) {
    myHandler.processErrorResponse(message, responseServices);
    onError();
  }

  public void processUpdatedResponse(final String relativeLocalDirectory,
                                     final String repositoryFilePath,
                                     final String entryLine,
                                     final String mode,
                                     final int fileLength,
                                     final IClientEnvironment clientEnvironment, final IResponseServices responseServices,
                                     final IConnectionStreams connectionStreams) throws IOException {
    myHandler.processUpdatedResponse(relativeLocalDirectory, repositoryFilePath, entryLine, mode, fileLength, clientEnvironment,
                                     responseServices, connectionStreams);
    onOk();
  }

  public void processMergedResponse(final String relativeLocalDirectory,
                                    final String repositoryFilePath,
                                    final String entryLine,
                                    final String mode,
                                    final int fileLength,
                                    final IClientEnvironment clientEnvironment, final IResponseServices responseServices,
                                    final IConnectionStreams connectionStreams) throws IOException {
    myHandler.processMergedResponse(relativeLocalDirectory, repositoryFilePath, entryLine, mode, fileLength, clientEnvironment,
                                    responseServices, connectionStreams);
    onOk();
  }

  public void processValidRequestsResponse(final String validRequests, final IResponseServices responseServices) {
    myHandler.processValidRequestsResponse(validRequests, responseServices);
    onOk();
  }

  public void processBinaryMessageResponse(final int fileLength, final byte[] binaryContent, final IResponseServices responseServices) {
    myHandler.processBinaryMessageResponse(fileLength, binaryContent, responseServices);
    onOk();
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy