blob: 0e2a4db1ddbdf6048f4636000141f3ce6b466178 [file] [log] [blame]
/**
* Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version
* 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions
* and limitations under the License.
*/
package org.apache.storm.cassandra;
import com.datastax.driver.core.exceptions.QueryValidationException;
import com.datastax.driver.core.exceptions.ReadTimeoutException;
import com.datastax.driver.core.exceptions.UnavailableException;
import com.datastax.driver.core.exceptions.WriteTimeoutException;
import java.io.Serializable;
import java.util.List;
import org.apache.storm.task.OutputCollector;
import org.apache.storm.tuple.Tuple;
/**
* Default interface to define strategies to apply when a query is either succeed or failed.
*
*/
public interface ExecutionResultHandler extends Serializable {
/**
* Invoked when a {@link com.datastax.driver.core.exceptions.QueryValidationException} is thrown.
*
* @param e the cassandra exception.
* @param collector the storm collector.
* @param tuple an input tuple.
*/
void onQueryValidationException(QueryValidationException e, OutputCollector collector, Tuple tuple);
/**
* Invoked when a {@link com.datastax.driver.core.exceptions.ReadTimeoutException} is thrown.
*
* @param e the cassandra exception.
* @param collector the storm collector.
* @param tuple an input tuple.
*/
void onReadTimeoutException(ReadTimeoutException e, OutputCollector collector, Tuple tuple);
/**
* Invoked when a {@link com.datastax.driver.core.exceptions.WriteTimeoutException} is thrown.
*
* @param e the cassandra exception.
* @param collector the storm collector.
* @param tuple an input tuple.
*/
void onWriteTimeoutException(WriteTimeoutException e, OutputCollector collector, Tuple tuple);
/**
* Invoked when a {@link com.datastax.driver.core.exceptions.UnavailableException} is thrown.
*
*
* @param e the cassandra exception.
* @param collector the storm collector.
* @param tuple an input tuple.
*/
void onUnavailableException(UnavailableException e, OutputCollector collector, Tuple tuple);
/**
* Invoked when a query is executed with success.
* This method is NOT responsible for acknowledging input tuple.
*
* @param collector the storm collector.
* @param tuple an input tuple.
*/
void onQuerySuccess(OutputCollector collector, Tuple tuple);
/**
* Default method used to handle any type of exception.
*
* @param t the thrown exception
* @param collector the storm collector.
* @param i an input tuple.
*/
void onThrowable(Throwable t, OutputCollector collector, Tuple i);
/**
* Default method used to handle any type of exception.
*
* @param t the thrown exception
* @param collector the storm collector.
* @param tl a list of input tuple.
*/
void onThrowable(Throwable t, OutputCollector collector, List<Tuple> tl);
}