1616a70fdb4473d2fbd7b70772a3a82b908aeae1eOwen Lin/* 2616a70fdb4473d2fbd7b70772a3a82b908aeae1eOwen Lin * Copyright (C) 2012 The Android Open Source Project 3616a70fdb4473d2fbd7b70772a3a82b908aeae1eOwen Lin * 4616a70fdb4473d2fbd7b70772a3a82b908aeae1eOwen Lin * Licensed under the Apache License, Version 2.0 (the "License"); 5616a70fdb4473d2fbd7b70772a3a82b908aeae1eOwen Lin * you may not use this file except in compliance with the License. 6616a70fdb4473d2fbd7b70772a3a82b908aeae1eOwen Lin * You may obtain a copy of the License at 7616a70fdb4473d2fbd7b70772a3a82b908aeae1eOwen Lin * 8616a70fdb4473d2fbd7b70772a3a82b908aeae1eOwen Lin * http://www.apache.org/licenses/LICENSE-2.0 9616a70fdb4473d2fbd7b70772a3a82b908aeae1eOwen Lin * 10616a70fdb4473d2fbd7b70772a3a82b908aeae1eOwen Lin * Unless required by applicable law or agreed to in writing, software 11616a70fdb4473d2fbd7b70772a3a82b908aeae1eOwen Lin * distributed under the License is distributed on an "AS IS" BASIS, 12616a70fdb4473d2fbd7b70772a3a82b908aeae1eOwen Lin * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13616a70fdb4473d2fbd7b70772a3a82b908aeae1eOwen Lin * See the License for the specific language governing permissions and 14616a70fdb4473d2fbd7b70772a3a82b908aeae1eOwen Lin * limitations under the License. 15616a70fdb4473d2fbd7b70772a3a82b908aeae1eOwen Lin */ 16616a70fdb4473d2fbd7b70772a3a82b908aeae1eOwen Lin 17616a70fdb4473d2fbd7b70772a3a82b908aeae1eOwen Linpackage com.android.gallery3d.app; 18616a70fdb4473d2fbd7b70772a3a82b908aeae1eOwen Lin 19616a70fdb4473d2fbd7b70772a3a82b908aeae1eOwen Linimport java.util.HashMap; 20616a70fdb4473d2fbd7b70772a3a82b908aeae1eOwen Lin 21616a70fdb4473d2fbd7b70772a3a82b908aeae1eOwen Linpublic class TransitionStore { 22616a70fdb4473d2fbd7b70772a3a82b908aeae1eOwen Lin private HashMap<Object, Object> mStorage = new HashMap<Object, Object>(); 23616a70fdb4473d2fbd7b70772a3a82b908aeae1eOwen Lin 24616a70fdb4473d2fbd7b70772a3a82b908aeae1eOwen Lin public void put(Object key, Object value) { 25616a70fdb4473d2fbd7b70772a3a82b908aeae1eOwen Lin mStorage.put(key, value); 26616a70fdb4473d2fbd7b70772a3a82b908aeae1eOwen Lin } 27616a70fdb4473d2fbd7b70772a3a82b908aeae1eOwen Lin 2800ccf35f8ec016b2cb8fdcf0c65ba643dca54a14Bobby Georgescu public <T> void putIfNotPresent(Object key, T valueIfNull) { 2900ccf35f8ec016b2cb8fdcf0c65ba643dca54a14Bobby Georgescu mStorage.put(key, get(key, valueIfNull)); 3000ccf35f8ec016b2cb8fdcf0c65ba643dca54a14Bobby Georgescu } 3100ccf35f8ec016b2cb8fdcf0c65ba643dca54a14Bobby Georgescu 32616a70fdb4473d2fbd7b70772a3a82b908aeae1eOwen Lin @SuppressWarnings("unchecked") 33616a70fdb4473d2fbd7b70772a3a82b908aeae1eOwen Lin public <T> T get(Object key) { 34616a70fdb4473d2fbd7b70772a3a82b908aeae1eOwen Lin return (T) mStorage.get(key); 35616a70fdb4473d2fbd7b70772a3a82b908aeae1eOwen Lin } 36616a70fdb4473d2fbd7b70772a3a82b908aeae1eOwen Lin 3723e1cc8d20971a03db2bbbe8b012fabcb40c6431Wu-cheng Li @SuppressWarnings("unchecked") 387eea4d3ac59aa88d327fc0d58f5e4052f43c54c9Bobby Georgescu public <T> T get(Object key, T valueIfNull) { 3923e1cc8d20971a03db2bbbe8b012fabcb40c6431Wu-cheng Li T value = (T) mStorage.get(key); 407eea4d3ac59aa88d327fc0d58f5e4052f43c54c9Bobby Georgescu return value == null ? valueIfNull : value; 417eea4d3ac59aa88d327fc0d58f5e4052f43c54c9Bobby Georgescu } 427eea4d3ac59aa88d327fc0d58f5e4052f43c54c9Bobby Georgescu 43616a70fdb4473d2fbd7b70772a3a82b908aeae1eOwen Lin public void clear() { 44616a70fdb4473d2fbd7b70772a3a82b908aeae1eOwen Lin mStorage.clear(); 45616a70fdb4473d2fbd7b70772a3a82b908aeae1eOwen Lin } 46616a70fdb4473d2fbd7b70772a3a82b908aeae1eOwen Lin} 47