1b76e75c8bcc11d1e3f348166e2e9f83085154fc8Ben Gruver/* 2b76e75c8bcc11d1e3f348166e2e9f83085154fc8Ben Gruver * Copyright 2012, Google Inc. 3b76e75c8bcc11d1e3f348166e2e9f83085154fc8Ben Gruver * All rights reserved. 4b76e75c8bcc11d1e3f348166e2e9f83085154fc8Ben Gruver * 5b76e75c8bcc11d1e3f348166e2e9f83085154fc8Ben Gruver * Redistribution and use in source and binary forms, with or without 6b76e75c8bcc11d1e3f348166e2e9f83085154fc8Ben Gruver * modification, are permitted provided that the following conditions are 7b76e75c8bcc11d1e3f348166e2e9f83085154fc8Ben Gruver * met: 8b76e75c8bcc11d1e3f348166e2e9f83085154fc8Ben Gruver * 9b76e75c8bcc11d1e3f348166e2e9f83085154fc8Ben Gruver * * Redistributions of source code must retain the above copyright 10b76e75c8bcc11d1e3f348166e2e9f83085154fc8Ben Gruver * notice, this list of conditions and the following disclaimer. 11b76e75c8bcc11d1e3f348166e2e9f83085154fc8Ben Gruver * * Redistributions in binary form must reproduce the above 12b76e75c8bcc11d1e3f348166e2e9f83085154fc8Ben Gruver * copyright notice, this list of conditions and the following disclaimer 13b76e75c8bcc11d1e3f348166e2e9f83085154fc8Ben Gruver * in the documentation and/or other materials provided with the 14b76e75c8bcc11d1e3f348166e2e9f83085154fc8Ben Gruver * distribution. 15b76e75c8bcc11d1e3f348166e2e9f83085154fc8Ben Gruver * * Neither the name of Google Inc. nor the names of its 16b76e75c8bcc11d1e3f348166e2e9f83085154fc8Ben Gruver * contributors may be used to endorse or promote products derived from 17b76e75c8bcc11d1e3f348166e2e9f83085154fc8Ben Gruver * this software without specific prior written permission. 18b76e75c8bcc11d1e3f348166e2e9f83085154fc8Ben Gruver * 19b76e75c8bcc11d1e3f348166e2e9f83085154fc8Ben Gruver * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 20b76e75c8bcc11d1e3f348166e2e9f83085154fc8Ben Gruver * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 21b76e75c8bcc11d1e3f348166e2e9f83085154fc8Ben Gruver * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 22b76e75c8bcc11d1e3f348166e2e9f83085154fc8Ben Gruver * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 23b76e75c8bcc11d1e3f348166e2e9f83085154fc8Ben Gruver * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 24b76e75c8bcc11d1e3f348166e2e9f83085154fc8Ben Gruver * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 25b76e75c8bcc11d1e3f348166e2e9f83085154fc8Ben Gruver * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 26b76e75c8bcc11d1e3f348166e2e9f83085154fc8Ben Gruver * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 27b76e75c8bcc11d1e3f348166e2e9f83085154fc8Ben Gruver * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 28b76e75c8bcc11d1e3f348166e2e9f83085154fc8Ben Gruver * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 29b76e75c8bcc11d1e3f348166e2e9f83085154fc8Ben Gruver * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 30b76e75c8bcc11d1e3f348166e2e9f83085154fc8Ben Gruver */ 31b76e75c8bcc11d1e3f348166e2e9f83085154fc8Ben Gruver 32b76e75c8bcc11d1e3f348166e2e9f83085154fc8Ben Gruverpackage org.jf.dexlib2.base.value; 33b76e75c8bcc11d1e3f348166e2e9f83085154fc8Ben Gruver 3422c3185bb7c8618437eabe6c597549e0989ec4e6Ben Gruverimport com.google.common.primitives.Ints; 35b76e75c8bcc11d1e3f348166e2e9f83085154fc8Ben Gruverimport org.jf.dexlib2.ValueType; 3622c3185bb7c8618437eabe6c597549e0989ec4e6Ben Gruverimport org.jf.dexlib2.iface.value.EncodedValue; 37b76e75c8bcc11d1e3f348166e2e9f83085154fc8Ben Gruverimport org.jf.dexlib2.iface.value.NullEncodedValue; 38b76e75c8bcc11d1e3f348166e2e9f83085154fc8Ben Gruver 3922c3185bb7c8618437eabe6c597549e0989ec4e6Ben Gruverimport javax.annotation.Nonnull; 4022c3185bb7c8618437eabe6c597549e0989ec4e6Ben Gruverimport javax.annotation.Nullable; 4122c3185bb7c8618437eabe6c597549e0989ec4e6Ben Gruver 42b76e75c8bcc11d1e3f348166e2e9f83085154fc8Ben Gruverpublic abstract class BaseNullEncodedValue implements NullEncodedValue { 43b76e75c8bcc11d1e3f348166e2e9f83085154fc8Ben Gruver @Override 44b76e75c8bcc11d1e3f348166e2e9f83085154fc8Ben Gruver public int hashCode() { 45b76e75c8bcc11d1e3f348166e2e9f83085154fc8Ben Gruver return 0; 46b76e75c8bcc11d1e3f348166e2e9f83085154fc8Ben Gruver } 47b76e75c8bcc11d1e3f348166e2e9f83085154fc8Ben Gruver 48b76e75c8bcc11d1e3f348166e2e9f83085154fc8Ben Gruver @Override 4922c3185bb7c8618437eabe6c597549e0989ec4e6Ben Gruver public boolean equals(@Nullable Object o) { 5022c3185bb7c8618437eabe6c597549e0989ec4e6Ben Gruver return o instanceof NullEncodedValue; 5122c3185bb7c8618437eabe6c597549e0989ec4e6Ben Gruver } 5222c3185bb7c8618437eabe6c597549e0989ec4e6Ben Gruver 5322c3185bb7c8618437eabe6c597549e0989ec4e6Ben Gruver @Override 5422c3185bb7c8618437eabe6c597549e0989ec4e6Ben Gruver public int compareTo(@Nonnull EncodedValue o) { 5522c3185bb7c8618437eabe6c597549e0989ec4e6Ben Gruver return Ints.compare(getValueType(), o.getValueType()); 56b76e75c8bcc11d1e3f348166e2e9f83085154fc8Ben Gruver } 57b76e75c8bcc11d1e3f348166e2e9f83085154fc8Ben Gruver 58b76e75c8bcc11d1e3f348166e2e9f83085154fc8Ben Gruver public int getValueType() { return ValueType.NULL; } 59b76e75c8bcc11d1e3f348166e2e9f83085154fc8Ben Gruver} 60