diff options
Diffstat (limited to 'src/org/jetbrains/java/decompiler/struct/attr/StructInnerClassesAttribute.java')
-rw-r--r-- | src/org/jetbrains/java/decompiler/struct/attr/StructInnerClassesAttribute.java | 117 |
1 files changed, 58 insertions, 59 deletions
diff --git a/src/org/jetbrains/java/decompiler/struct/attr/StructInnerClassesAttribute.java b/src/org/jetbrains/java/decompiler/struct/attr/StructInnerClassesAttribute.java index 794da15..14ecd36 100644 --- a/src/org/jetbrains/java/decompiler/struct/attr/StructInnerClassesAttribute.java +++ b/src/org/jetbrains/java/decompiler/struct/attr/StructInnerClassesAttribute.java @@ -1,73 +1,72 @@ /* - * Fernflower - The Analytical Java Decompiler - * http://www.reversed-java.com + * Copyright 2000-2014 JetBrains s.r.o. * - * (C) 2008 - 2010, Stiver + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at * - * This software is NEITHER public domain NOR free software - * as per GNU License. See license.txt for more details. + * http://www.apache.org/licenses/LICENSE-2.0 * - * This software is distributed WITHOUT ANY WARRANTY; without - * even the implied warranty of MERCHANTABILITY or FITNESS FOR - * A PARTICULAR PURPOSE. + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ - package org.jetbrains.java.decompiler.struct.attr; +import org.jetbrains.java.decompiler.struct.consts.ConstantPool; + import java.util.ArrayList; import java.util.List; -import org.jetbrains.java.decompiler.struct.consts.ConstantPool; - public class StructInnerClassesAttribute extends StructGeneralAttribute { - private List<int[]> classentries = new ArrayList<int[]>(); - - private List<String[]> stringentries = new ArrayList<String[]>(); - - public void initContent(ConstantPool pool) { - - name = ATTRIBUTE_INNER_CLASSES; - - int length = 2+(((info[0] & 0xFF)<<8) | (info[1] & 0xFF))*8; - int i=2; - - while(i<length) { - - int[] arr = new int[4]; - for(int j=0;j<4;j++) { - arr[j] = ((info[i] & 0xFF)<<8) | (info[i+1] & 0xFF); - i+=2; - } - - classentries.add(arr); - } - - for(int[] entry: classentries) { - - String[] arr = new String[3]; - // inner name - arr[0] = pool.getPrimitiveConstant(entry[0]).getString(); - //enclosing class - if(entry[1] != 0) { - arr[1] = pool.getPrimitiveConstant(entry[1]).getString(); - } - // original simple name - if(entry[2]!=0) { - arr[2] = pool.getPrimitiveConstant(entry[2]).getString(); - } - - stringentries.add(arr); - } - - } - - public List<int[]> getClassentries() { - return classentries; - } - - public List<String[]> getStringentries() { - return stringentries; - } + private List<int[]> classentries = new ArrayList<int[]>(); + + private List<String[]> stringentries = new ArrayList<String[]>(); + + public void initContent(ConstantPool pool) { + + name = ATTRIBUTE_INNER_CLASSES; + + int length = 2 + (((info[0] & 0xFF) << 8) | (info[1] & 0xFF)) * 8; + int i = 2; + + while (i < length) { + + int[] arr = new int[4]; + for (int j = 0; j < 4; j++) { + arr[j] = ((info[i] & 0xFF) << 8) | (info[i + 1] & 0xFF); + i += 2; + } + + classentries.add(arr); + } + + for (int[] entry : classentries) { + + String[] arr = new String[3]; + // inner name + arr[0] = pool.getPrimitiveConstant(entry[0]).getString(); + //enclosing class + if (entry[1] != 0) { + arr[1] = pool.getPrimitiveConstant(entry[1]).getString(); + } + // original simple name + if (entry[2] != 0) { + arr[2] = pool.getPrimitiveConstant(entry[2]).getString(); + } + + stringentries.add(arr); + } + } + + public List<int[]> getClassentries() { + return classentries; + } + public List<String[]> getStringentries() { + return stringentries; + } } |