package com.erdaoya.springcloud.comx.schema.onError; import com.erdaoya.springcloud.comx.utils.config.ConfigException; import com.erdaoya.springcloud.comx.context.Context; import com.erdaoya.springcloud.comx.utils.config.Config; /** * Created by xue on 1/12/17. */ public class ByDefaultStrategy extends Strategy { public static final String DEFAULT_VALUE_FIELD = "defaultValue"; protected Config conf; public ByDefaultStrategy(Config conf){ this.conf = conf; } @Override public Object handleSourceException(Exception ex, Context context) throws Exception{ context.getLogger().error("OnError ByDefault Strategy, caught exception, return value by default. error:" + ex.getMessage() + "; class:" + ex.getClass()); return this.conf.sub(DEFAULT_VALUE_FIELD).rawData(); } @Override public Object handleDecorException(Exception ex, Context context, Object data) throws ConfigException { context.getLogger().error("OnError ByDefault Strategy, caught exception, and throw exception. error:" + ex.getMessage() + "; class:" + ex.getClass()); throw new StrategyException("OnError strategy 'ByDefault' is not available on Decor node"); } }