1 26 package com.yworks.yguard.obf.classfile; 27 28 import java.io.*; 29 import java.util.*; 30 import java.lang.reflect.Modifier ; 31 32 37 public class InnerClassesInfo 38 { 39 41 42 private int u2innerClassInfoIndex; 44 private int u2outerClassInfoIndex; 45 private int u2innerNameIndex; 46 private int u2innerClassAccessFlags; 47 48 49 public static InnerClassesInfo create(DataInput din) throws java.io.IOException 51 { 52 InnerClassesInfo ici = new InnerClassesInfo(); 53 ici.read(din); 54 return ici; 55 } 56 57 public int getModifiers(){ 58 int mods = 0; 59 if ((u2innerClassAccessFlags & 0x0001) == 0x0001) mods |= Modifier.PUBLIC; 60 if ((u2innerClassAccessFlags & 0x0002) == 0x0002) mods |= Modifier.PRIVATE; 61 if ((u2innerClassAccessFlags & 0x0004) == 0x0004) mods |= Modifier.PROTECTED; 62 if ((u2innerClassAccessFlags & 0x0008) == 0x0008) mods |= Modifier.STATIC; 63 if ((u2innerClassAccessFlags & 0x0010) == 0x0010) mods |= Modifier.FINAL; 64 if ((u2innerClassAccessFlags & 0x0200) == 0x0200) mods |= Modifier.INTERFACE; 65 if ((u2innerClassAccessFlags & 0x0400) == 0x0400) mods |= Modifier.ABSTRACT; 66 return mods; 67 } 68 69 70 private InnerClassesInfo() {} 72 73 74 protected int getInnerClassIndex() {return u2innerClassInfoIndex;} 75 76 77 protected int getInnerNameIndex() {return u2innerNameIndex;} 78 79 80 protected void setInnerNameIndex(int index) {u2innerNameIndex = index;} 81 82 83 protected void markUtf8Refs(ConstantPool pool) 84 { 85 if (u2innerNameIndex != 0) 87 { 88 pool.incRefCount(u2innerNameIndex); 89 } 90 } 91 92 private void read(DataInput din) throws java.io.IOException 93 { 94 u2innerClassInfoIndex = din.readUnsignedShort(); 95 u2outerClassInfoIndex = din.readUnsignedShort(); 96 u2innerNameIndex = din.readUnsignedShort(); 97 u2innerClassAccessFlags = din.readUnsignedShort(); 98 } 99 100 101 public void write(DataOutput dout) throws java.io.IOException 102 { 103 dout.writeShort(u2innerClassInfoIndex); 104 dout.writeShort(u2outerClassInfoIndex); 105 dout.writeShort(u2innerNameIndex); 106 dout.writeShort(u2innerClassAccessFlags); 107 } 108 } 109 | Popular Tags |