/src/main/scala/de/tud/cs/st/bat/reader/EnclosingMethod_attributeReader.scala
Scala | 79 lines | 24 code | 8 blank | 47 comment | 0 complexity | 1ac405acd9c7620a712c282345e22080 MD5 | raw file
Possible License(s): Apache-2.0
1/* License (BSD Style License): 2* Copyright (c) 2009, 2011 3* Software Technology Group 4* Department of Computer Science 5* Technische Universität Darmstadt 6* All rights reserved. 7* 8* Redistribution and use in source and binary forms, with or without 9* modification, are permitted provided that the following conditions are met: 10* 11* - Redistributions of source code must retain the above copyright notice, 12* this list of conditions and the following disclaimer. 13* - Redistributions in binary form must reproduce the above copyright notice, 14* this list of conditions and the following disclaimer in the documentation 15* and/or other materials provided with the distribution. 16* - Neither the name of the Software Technology Group or Technische 17* Universität Darmstadt nor the names of its contributors may be used to 18* endorse or promote products derived from this software without specific 19* prior written permission. 20* 21* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 22* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 23* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 24* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 25* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 26* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 27* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 28* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 29* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 30* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 31* POSSIBILITY OF SUCH DAMAGE. 32*/ 33package de.tud.cs.st.bat 34package reader 35 36import java.io.DataInputStream 37 38/** 39 * <pre> 40 * EnclosingMethod_attribute { 41 * u2 attribute_name_index; 42 * u4 attribute_length; 43 * u2 class_index 44 * u2 method_index; 45 * } 46 * </pre> 47 * 48 * @author Michael Eichberg 49 */ 50trait EnclosingMethod_attributeReader extends AttributeReader { 51 52 type EnclosingMethod_attribute <: Attribute 53 54 def EnclosingMethod_attribute(attribute_name_index: Constant_Pool_Index, 55 class_index: Constant_Pool_Index, 56 method_index: Constant_Pool_Index)( 57 implicit constant_pool: Constant_Pool): EnclosingMethod_attribute 58 59 // 60 // IMPLEMENTATION 61 // 62 63 register( 64 EnclosingMethod_attributeReader.ATTRIBUTE_NAME -> 65 ((ap: AttributeParent, cp: Constant_Pool, attribute_name_index: Constant_Pool_Index, in: DataInputStream) ? { 66 val attribute_length = in.readInt 67 EnclosingMethod_attribute( 68 attribute_name_index, 69 in.readUnsignedShort, 70 in.readUnsignedShort 71 )(cp) 72 }) 73 ) 74} 75 76object EnclosingMethod_attributeReader { 77 78 val ATTRIBUTE_NAME = "EnclosingMethod" 79}