| 1 21 package proguard.io; 22 23 import proguard.classfile.*; 24 25 import java.io.*; 26 27 33 public class DataEntryRenamer implements DataEntryReader 34 { 35 private ClassPool classPool; 36 private DataEntryReader dataEntryReader; 37 38 39 public DataEntryRenamer(ClassPool classPool, 40 DataEntryReader dataEntryReader) 41 { 42 this.classPool = classPool; 43 this.dataEntryReader = dataEntryReader; 44 } 45 46 47 49 public void read(DataEntry dataEntry) throws IOException 50 { 51 String dataEntryName = dataEntry.getName(); 52 53 int suffixIndex = dataEntryName.lastIndexOf('.'); 54 55 String className = suffixIndex > 0 ? 56 dataEntryName.substring(0, suffixIndex) : 57 dataEntryName; 58 59 Clazz clazz = classPool.getClass(className); 61 if (clazz != null) 62 { 63 String newClassName = clazz.getName(); 65 if (!className.equals(newClassName)) 66 { 67 String newDataEntryName = suffixIndex > 0 ? 68 newClassName + dataEntryName.substring(suffixIndex) : 69 newClassName; 70 71 dataEntry = new RenamedDataEntry(dataEntry, newDataEntryName); 72 } 73 } 74 75 dataEntryReader.read(dataEntry); 77 } 78 } 79 | Popular Tags |