package com.erdaoya.springcloud.comx.schema.onError;
import com.erdaoya.springcloud.comx.context.Context;
import com.erdaoya.springcloud.comx.schema.datadecor.DecorException;
import com.erdaoya.springcloud.comx.source.SourceException;
import com.erdaoya.springcloud.comx.utils.config.ConfigException;
/**
* Created by xue on 1/12/17.
*/
public class FailStrategy extends Strategy {
final static FailStrategy instance = new FailStrategy();
private FailStrategy(){}
static FailStrategy getInstance() {
return instance;
}
@Override
public Object handleSourceException(Exception ex, Context context) throws Exception{
throw ex;
}
@Override
public Object handleDecorException(Exception ex, Context context, Object data) throws ConfigException, SourceException, DecorException {
if (ex instanceof ConfigException) throw (ConfigException) ex;
if (ex instanceof SourceException) throw (SourceException) ex;
if (ex instanceof DecorException) throw (DecorException) ex;
throw new DecorException("Strategy found unknown exception: " + ex.getMessage() + "; class:" + ex.getClass());
}
}