package com.android_mvc.framework.task; import java.util.HashMap; /** * 逐次実行可能なタスク類が実装すべきインタフェース。 * @author id:language_and_engineering * */ public interface ISequentialRunnable { // NOTE: 本当は宣言だけでなくコード共有したいのだが, // Javaでは多重継承できないのでインタフェースを作って具象クラス側でソースコードをコピペせざるを得ないばかりか, // それらのメソッドがpublicになってしまうという悲しさ(あちこちで味わっている) /** * ランナーにより,このタスクを開始 */ public void kickByRunner( AsyncTasksRunner parent ); // ------------- ランナーとの連携 ------------ /** * 次のタスクへ継続可能かどうかを判定 */ public boolean tasksContinuable(); // ------------- この非同期タスク内部で保持するデータ ------------ /** * 任意のデータを1つ格納 */ public void storeData( String key, Object val ); /** * 全データを返す */ public HashMap<String, Object> getStoredObjects(); // ------------- 別の非同期タスクと共有するデータ ------------ /** * 任意のデータをランナー側から1つ取得 */ public Object getDataFromRunner( String key ); }