1adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/* 2adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Licensed to the Apache Software Foundation (ASF) under one or more 3adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * contributor license agreements. See the NOTICE file distributed with 4adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * this work for additional information regarding copyright ownership. 5adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * The ASF licenses this file to You under the Apache License, Version 2.0 6adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * (the "License"); you may not use this file except in compliance with 7adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the License. You may obtain a copy of the License at 8adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 9adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 10adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 11adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Unless required by applicable law or agreed to in writing, software 12adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 13adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * See the License for the specific language governing permissions and 15adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * limitations under the License. 16adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 17adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 18adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpackage java.util; 19adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 20adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/** 21adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * MapEntry is an internal class which provides an implementation of Map.Entry. 22adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 23f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilsonclass MapEntry<K, V> implements Map.Entry<K, V>, Cloneable { 24f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson 25adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project K key; 26adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project V value; 27adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 28f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson interface Type<RT, KT, VT> { 29f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson RT get(MapEntry<KT, VT> entry); 30adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 31adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 32adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project MapEntry(K theKey) { 33adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project key = theKey; 34adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 35adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 36adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project MapEntry(K theKey, V theValue) { 37adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project key = theKey; 38adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project value = theValue; 39adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 40adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 41adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 42adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public Object clone() { 43adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 44adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return super.clone(); 45adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (CloneNotSupportedException e) { 46fb0ec0e650bf8be35acb0d47da0311a7c446aa33Elliott Hughes throw new AssertionError(e); 47adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 48adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 49adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 50adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 51adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public boolean equals(Object object) { 52adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if (this == object) { 53adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return true; 54adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 55adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if (object instanceof Map.Entry) { 56adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Map.Entry<?, ?> entry = (Map.Entry<?, ?>) object; 57adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return (key == null ? entry.getKey() == null : key.equals(entry 58adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .getKey())) 59adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project && (value == null ? entry.getValue() == null : value 60adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .equals(entry.getValue())); 61adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 62adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return false; 63adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 64adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 65adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public K getKey() { 66adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return key; 67adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 68adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 69adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public V getValue() { 70adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return value; 71adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 72adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 73adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 74adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public int hashCode() { 75adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return (key == null ? 0 : key.hashCode()) 76adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ^ (value == null ? 0 : value.hashCode()); 77adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 78adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 79adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public V setValue(V object) { 80adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project V result = value; 81adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project value = object; 82adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return result; 83adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 84f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson 85adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 86adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public String toString() { 87adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return key + "=" + value; 88adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 89adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project} 90