1d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen/* 2d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * Copyright 2012, Google Inc. 3d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * All rights reserved. 4d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * 5d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * Redistribution and use in source and binary forms, with or without 6d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * modification, are permitted provided that the following conditions are 7d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * met: 8d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * 9d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * * Redistributions of source code must retain the above copyright 10d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * notice, this list of conditions and the following disclaimer. 11d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * * Redistributions in binary form must reproduce the above 12d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * copyright notice, this list of conditions and the following disclaimer 13d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * in the documentation and/or other materials provided with the 14d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * distribution. 15d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * * Neither the name of Google Inc. nor the names of its 16d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * contributors may be used to endorse or promote products derived from 17d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * this software without specific prior written permission. 18d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * 19d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 20d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 21d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 22d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 23d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 24d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 25d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 26d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 27d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 28d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 29d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 30d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen */ 31d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen 32d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chenpackage org.jf.dexlib2.immutable.value; 33d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen 34d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chenimport org.jf.dexlib2.base.value.BaseByteEncodedValue; 35d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chenimport org.jf.dexlib2.iface.value.ByteEncodedValue; 36d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen 37d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chenpublic class ImmutableByteEncodedValue extends BaseByteEncodedValue implements ImmutableEncodedValue { 38d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen protected final byte value; 39d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen 40d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen public ImmutableByteEncodedValue(byte value) { 41d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen this.value = value; 42d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen } 43d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen 44d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen public static ImmutableByteEncodedValue of(ByteEncodedValue byteEncodedValue) { 45d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen if (byteEncodedValue instanceof ImmutableByteEncodedValue) { 46d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen return (ImmutableByteEncodedValue)byteEncodedValue; 47d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen } 48d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen return new ImmutableByteEncodedValue(byteEncodedValue.getValue()); 49d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen } 50d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen 51d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen @Override public byte getValue() { return value; } 52d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen} 53d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen