package org.libspark.common.support { import flash.utils.ByteArray; import flash.utils.Dictionary; import org.libspark.common.store.IWritableStore; import org.libspark.common.store.IReadableStore; import org.libspark.common.store.IStorable; import org.libspark.common.store.DictionaryedWritableStore; /** * IStorable を実装したクラスに対して ICopyable#copy メソッドの実装を支援します. */ public class CopySupport extends DictionaryedWritableStore implements IReadableStore { public function CopySupport() { } //------------------------------------------------------ // IProvider 実装 //------------------------------------------------------ public function readArray(key:String, defaultValue:Array):Array { var v:* = store[key]; if (v != undefined && v is Array) { return v as Array; } return defaultValue; } public function readBoolean(key:String, defaultValue:Boolean):Boolean { var v:* = store[key]; if (v != undefined && v is Boolean) { return Boolean(v); } return defaultValue; } public function readByteArray(key:String, defaultValue:ByteArray):ByteArray { var v:* = store[key]; if (v != undefined && v is ByteArray) { return ByteArray(v); } return defaultValue; } public function readDictionary(key:String, defaultValue:Dictionary):Dictionary { var v:* = store[key]; if (v != undefined && v is Dictionary) { return Dictionary(v); } return defaultValue; } public function readInt(key:String, defaultValue:int):int { var v:* = store[key]; if (v != undefined && v is int) { return int(v); } return defaultValue; } public function readNumber(key:String, defaultValue:Number):Number { var v:* = store[key]; if (v != undefined && v is Number) { return Number(v); } return defaultValue; } public function readStorable(key:String, defaultValue:IStorable):IStorable { var v:* = store[key]; if (v != undefined && v is IStorable) { return IStorable(v); } return defaultValue; } public function readString(key:String, defaultValue:String):String { var v:* = store[key]; if (v != undefined && v is String) { return String(v); } return defaultValue; } public function readUint(key:String, defaultValue:uint):uint { var v:* = store[key]; if (v != undefined && v is uint) { return uint(v); } return defaultValue; } } }