/* * Copyright (c) 2016. Lorem ipsum dolor sit amet, consectetur adipiscing elit. * Morbi non lorem porttitor neque feugiat blandit. Ut vitae ipsum eget quam lacinia accumsan. * Etiam sed turpis ac ipsum condimentum fringilla. Maecenas magna. * Proin dapibus sapien vel ante. Aliquam erat volutpat. Pellentesque sagittis ligula eget metus. * Vestibulum commodo. Ut rhoncus gravida arcu. */ package com.markjmind.uni.thread; import java.util.ArrayList; /** * <br>捲土重來<br> * @author 오재웅(JaeWoong-Oh) * @email markjmind@gmail.com * @since 2016-02-17 */ public class ThreadProcessObservable extends ThreadProcessObserver { private ArrayList<ThreadProcessObserver> observers = new ArrayList<>(); @Override public void onPreExecute(CancelAdapter cancelAdapter) { for(ThreadProcessObserver observer : observers){ observer.onPreExecute(cancelAdapter); } } @Override public void doInBackground(LoadEvent event, CancelAdapter cancelAdapter) throws Exception{ for(ThreadProcessObserver observer : observers){ observer.doInBackground(event, cancelAdapter); } } @Override public void onProgressUpdate(Object value, CancelAdapter cancelAdapter) { for(ThreadProcessObserver observer : observers){ observer.onProgressUpdate(value, cancelAdapter); } } @Override public void onPostExecute() { for(ThreadProcessObserver observer : observers){ observer.onPostExecute(); } } @Override public void onFailedExecute(String message, Object arg) { for(ThreadProcessObserver observer : observers){ observer.onFailedExecute(message, arg); } } @Override public void onExceptionExecute(Exception e) { for(ThreadProcessObserver observer : observers){ observer.onExceptionExecute(e); } } @Override public void onCancelled(boolean attached) { for(ThreadProcessObserver observer : observers){ if(observer.getCancelAop()!=null){ observer.getCancelAop().beforeOnCancel(attached); observer.onCancelled(attached); observer.getCancelAop().afterOnCancel(attached); }else{ observer.onCancelled(attached); } } } public void add(ThreadProcessObserver threadProcessObserver){ observers.add(threadProcessObserver); } }