package edu.washington.escience.myria.operator.failures;
import com.google.common.collect.ImmutableMap;
import edu.washington.escience.myria.DbException;
import edu.washington.escience.myria.Schema;
import edu.washington.escience.myria.operator.Operator;
import edu.washington.escience.myria.operator.UnaryOperator;
import edu.washington.escience.myria.storage.TupleBatch;
/**
* Injects an {@link InjectedFailureException} during initialization.
*/
public class InitFailureInjector extends UnaryOperator {
/**
* @param child the child operator.
* */
public InitFailureInjector(final Operator child) {
super(child);
}
/**
*
*/
private static final long serialVersionUID = 1L;
@Override
protected final void init(final ImmutableMap<String, Object> initProperties) throws DbException {
throw new InjectedFailureException("Failure in init.");
}
@Override
protected final void cleanup() throws DbException {}
@Override
protected final TupleBatch fetchNextReady() throws DbException {
return getChild().nextReady();
}
@Override
public final Schema generateSchema() {
Operator child = getChild();
if (child == null) {
return null;
}
return child.getSchema();
}
}