package com.elphin.framework.util.strategy; import android.util.Log; import java.util.LinkedList; import java.util.List; /** * Created with IntelliJ IDEA. * User: elphin * Date: 13-7-3 * Time: 下午2:54 */ public class StrategyHandlerList<T> { private static final String TAG = StrategyHandlerList.class.getSimpleName(); private List<StrategyHandler<T>> mStrategyHandlers = new LinkedList<StrategyHandler<T>>(); public StrategyHandlerList() { } public StrategyHandlerList addHandler(StrategyHandler<T> handler) { if (handler != null) { mStrategyHandlers.add(handler); } return this; } public boolean handle(T inParam) { final List<StrategyHandler<T>> list = mStrategyHandlers; boolean handled = false; for (StrategyHandler<T> handler : list) { Log.d(TAG, "handler : " + handler.getClass().getSimpleName()); if (handler.handle(inParam)) { Log.d(TAG, "break handler : " + handler.getClass().getSimpleName()); handled = true; break; } } return handled; } }