public SnowflakeStorageClient createClient(StageInfo stage,
                                             int parallel,
                                             RemoteStoreFileEncryptionMaterial encMat)
  throws SnowflakeSQLException
  {
    logger.debug("createClient client type={}", stage.getStageType().name());

    switch (stage.getStageType())
    {
      case S3:
        return createS3Client(stage.getCredentials(), parallel, encMat, stage.getRegion());

      case AZURE:
        return createAzureClient(stage, encMat);

      default:
        // We don't create a storage client for FS_LOCAL,
        // so we should only find ourselves here if an unsupported
        // remote storage client type is specified
        throw new IllegalArgumentException("Unsupported storage client specified: "
                                           + stage.getStageType().name());
    }
  }
public SnowflakeStorageClient createClient ( StageInfo stage , int parallel , RemoteStoreFileEncryptionMaterial encMat ) throws SnowflakeSQLException { logger . debug ( "createClient client type={}" , stage . getStageType ( ) . name ( ) ) ; switch ( stage . getStageType ( ) ) { case S3 : return createS3Client ( stage . getCredentials ( ) , parallel , encMat , stage . getRegion ( ) ) ; case AZURE : return createAzureClient ( stage , encMat ) ; default : throw new IllegalArgumentException ( "Unsupported storage client specified: " + stage . getStageType ( ) . name ( ) ) ; } }
Creates a storage client based on the value of stageLocationType

@param stage    the stage properties
@param parallel the degree of parallelism to be used by the client
@param encMat   encryption material for the client
@return a SnowflakeStorageClient interface to the instance created
@throws SnowflakeSQLException if any error occurs