/src/main/scala/de/tud/cs/st/bat/resolved/reader/InnerClasses_attributeBinding.scala
Scala | 71 lines | 26 code | 8 blank | 37 comment | 9 complexity | 614f2f3e9dccb588b5e02e85b1825620 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.resolved 34package reader 35 36import de.tud.cs.st.bat.reader.InnerClasses_attributeReader 37 38/** 39 * The factory methods to create inner classes attributes and entries. 40 * 41 * @author Michael Eichberg 42 */ 43trait InnerClasses_attributeBinding 44 extends InnerClasses_attributeReader 45 with ConstantPoolBinding 46 with AttributeBinding { 47 48 type InnerClasses_attribute = de.tud.cs.st.bat.resolved.InnerClassTable 49 type InnerClassesEntry = de.tud.cs.st.bat.resolved.InnerClass 50 val InnerClassesEntryManifest: ClassManifest[InnerClassesEntry] = implicitly 51 52 def InnerClasses_attribute(attribute_name_index: Constant_Pool_Index, 53 inner_classes: InnerClasses)( 54 implicit constant_pool: Constant_Pool): InnerClasses_attribute = 55 new InnerClasses_attribute(inner_classes) 56 57 def InnerClassesEntry(inner_class_info_index: Constant_Pool_Index, 58 outer_class_info_index: Constant_Pool_Index, 59 inner_name_index: Constant_Pool_Index, 60 inner_class_access_flags: Int)(implicit cp: Constant_Pool) = { 61 new InnerClassesEntry( 62 if (inner_class_info_index == 0) null else inner_class_info_index.asObjectType, 63 if (outer_class_info_index == 0) null else outer_class_info_index.asObjectType, 64 if (inner_name_index == 0) null else inner_name_index.asString, 65 inner_class_access_flags 66 ) 67 } 68 69} 70 71