home *** CD-ROM | disk | FTP | other *** search
- import java.io.BufferedReader;
- import java.io.DataOutputStream;
- import java.io.EOFException;
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.FileNotFoundException;
- import java.io.FileOutputStream;
- import java.io.FilenameFilter;
- import java.io.FilterOutputStream;
- import java.io.IOException;
- import java.io.InputStreamReader;
- import java.io.StreamTokenizer;
- import java.io.StringReader;
- import java.util.Observable;
-
- class BrowserFileLoader extends Observable {
- private FilenameFilter filter;
- private File cwd;
- private String rootDir;
- private String[] results;
- private int resultsCount;
- private static int resultsIncrement = 512;
- private static String extension = ".java";
- private MethodRecord[] classMethodList;
- private String[] classFiles;
- private boolean[] changes;
- static int PackageLoad;
- static int ClassLoad = 1;
- static int MethodLoad = 2;
- static int PartialsFound = 3;
- static int MaxChanges = 4;
- private String classFileName;
- boolean partialClassesExist = false;
-
- BrowserFileLoader(String var1) {
- this.rootDir = var1;
- }
-
- private String GetRootDir() {
- return this.rootDir;
- }
-
- public static String subdir(String var0, String var1) {
- int var2 = var1.length();
- String var3 = correctPackageName(var0);
- return var3.length() >= var2 ? var3.substring(var2) + "." : "";
- }
-
- public static String noext(String var0, String var1) {
- int var2 = var0.length() - var1.length();
- return var0.substring(0, var2);
- }
-
- public String[] ListDirectory() {
- this.resultsCount = 0;
- this.results = new String[resultsIncrement];
-
- try {
- this.list_directory(this.rootDir, (FilenameFilter)null, 0, true);
- } catch (IOException var4) {
- }
-
- int var1;
- for(var1 = 0; this.results[var1] != null; ++var1) {
- }
-
- String[] var2 = new String[var1];
-
- for(int var3 = 0; var3 < var1; ++var3) {
- var2[var3] = this.results[var3];
- }
-
- this.results = null;
- return var2;
- }
-
- public String[] ListFiles(String var1) {
- EndsWithFilter var2 = new EndsWithFilter(".java");
- this.resultsCount = 0;
- this.results = new String[resultsIncrement];
-
- try {
- this.list_directory(var1, var2, 0, false);
- } catch (IOException var6) {
- }
-
- int var3;
- for(var3 = 0; this.results[var3] != null; ++var3) {
- }
-
- String[] var4 = new String[var3];
-
- for(int var5 = 0; var5 < var3; ++var5) {
- var4[var5] = this.results[var5];
- }
-
- return var4;
- }
-
- private String[] list_directory(String var1, FilenameFilter var2, int var3, boolean var4) throws IOException {
- File var5 = new File(var1);
- if (!var5.isDirectory()) {
- throw new IllegalArgumentException(BrowserOptions.messages.getString("ListDirect") + var5);
- } else {
- String[] var6 = var5.list(var2);
-
- for(int var7 = 0; var7 < var6.length; ++var7) {
- if (var4 && this.test_info(var5, var6[var7])) {
- this.results[this.resultsCount++] = subdir(var1, this.rootDir) + correctPackageName(var6[var7]);
- this.resizeResults();
- }
-
- if (!var4 && !this.test_info(var5, var6[var7])) {
- this.results[this.resultsCount++] = subdir(var1, this.rootDir) + noext(var6[var7], extension);
- this.resizeResults();
- }
-
- if (var4 && this.test_info(var5, var6[var7])) {
- this.list_directory(var1 + System.getProperty("file.separator") + var6[var7], var2, 1 + var3, var4);
- }
- }
-
- return this.results;
- }
- }
-
- public boolean test_info(File var1, String var2) throws IOException {
- File var3 = new File(var1, var2);
- if (!var3.exists()) {
- System.out.println(BrowserOptions.messages.getString("NoSuchFile") + " " + var1 + ", " + var2);
- return false;
- } else {
- return var3.isDirectory();
- }
- }
-
- private String getClassName(String var1) {
- return this.minorClassName(var1.substring(var1.lastIndexOf(46) + 1));
- }
-
- private String getFileName(String var1) {
- return this.rootDir + correctFileName(var1) + ".java";
- }
-
- public String[] loadClassPart(String var1, MethodRecord[] var2) {
- int[] var3 = MethodRecord.getClassDefn(this.minorClassName(var1.substring(var1.lastIndexOf(46) + 1)), this.classMethodList);
- return this.loadSourceLines(this.classFileName(), var3[0], var3[1] - 1);
- }
-
- public String[] loadClassEnd(String var1, MethodRecord[] var2) {
- int[] var3 = MethodRecord.getClassDefn(this.minorClassName(var1.substring(var1.lastIndexOf(46) + 1)), this.classMethodList);
- return this.loadSourceLines(this.classFileName(), var3[2], var3[3] - 1);
- }
-
- private static int findClassEnd(String var0) {
- byte[] var1 = var0.getBytes();
- int var3 = 0;
-
- for(int var2 = var1.length - 1; var2 >= 0; --var2) {
- byte var4 = var1[var2];
- if (var4 == 10 && var3 == 1) {
- return var2;
- }
-
- if (var4 == 125) {
- ++var3;
- }
- }
-
- return var1.length;
- }
-
- public void saveClassDef(String var1, boolean var2, String var3) {
- int var4 = findClassEnd(var3);
- if (var3.charAt(var3.length() - 1) != '\n') {
- var3 = var3.concat("\n");
- }
-
- if (var2) {
- this.saveClass(var1, (int[])null, var3.substring(0, var4), var3.substring(var4 + 1, var3.length() - 1));
- } else {
- this.saveClass(var1, MethodRecord.getClassBorders(this.minorClassName(var1.substring(var1.lastIndexOf(46) + 1)), this.classMethodList), var3.substring(0, var4), var3.substring(var4 + 1, var3.length() - 1));
- }
- }
-
- public String[] loadMethod(String var1, MethodRecord[] var2, int var3) {
- String[] var4 = null;
- if (this.classFileName() != null) {
- try {
- var4 = this.loadSourceLines(this.classFileName(), var2[var3].commentStartRow(), var2[var3].endRow);
- } catch (ArrayIndexOutOfBoundsException var5) {
- }
- }
-
- return var4;
- }
-
- public MethodRecord[] loadClassFile(String var1) {
- MethodRecord[] var2 = new MethodRecord[512];
- this.minorClassName(var1.substring(var1.lastIndexOf(46) + 1));
- String var3 = this.getFileName(var1);
- int var4 = 0;
- int var5 = 0;
- this.classFileName = var1;
-
- try {
- FileInputStream var6 = new FileInputStream(var3);
- StreamTokenizer var7 = new StreamTokenizer(var6);
- String var8 = "";
- int var9 = 0;
- boolean var10 = false;
- boolean var11 = false;
- String var12 = null;
- int var13 = -1;
- String[] var14 = new String[16];
- int var15 = 0;
- int[] var16 = new int[16];
- int var17 = 0;
- var7.wordChars(95, 95);
- if (!BrowserOptions.specialSystem[1].equalsIgnoreCase("ordinary slash")) {
- var7.ordinaryChar(47);
- }
-
- var7.slashStarComments(true);
- var7.slashSlashComments(true);
-
- try {
- while(var7.nextToken() != -1) {
- var5 = var7.lineno();
- switch ((char)var7.ttype) {
- case '(':
- if (var15 == var9) {
- var11 = true;
- var12 = var8;
- var13 = var17 >= 0 ? var17 + 1 : var7.lineno();
- var17 = -1;
- }
- break;
- case ';':
- if (var15 == var9 && var11) {
- var11 = false;
- }
- break;
- case '{':
- if (var15 == var9 && var11) {
- var11 = false;
- var10 = true;
- var2[var4++] = new MethodRecord(var12, var13, 0);
- var2[var4 - 1].className = var14[var15 - 1];
- var2[var4 - 1].inner = var15 - 1;
- }
-
- ++var9;
- break;
- case '}':
- --var9;
- if (var15 == var9 && var10) {
- var10 = false;
- var2[var4 - 1].setEndRow(var7.lineno());
- var17 = var7.lineno();
- }
-
- if (var9 + 1 == var15) {
- --var15;
- var2[var16[var15]].setEndRow(var7.lineno());
- var17 = var7.lineno();
- }
- break;
- case '�':
- var8 = var7.sval;
- if (var9 == 0 && (var8.equalsIgnoreCase("class") || var8.equalsIgnoreCase("interface"))) {
- var7.nextToken();
- var14[var15] = var7.sval;
- var16[var15] = var4;
- var2[var4] = new MethodRecord((String)null, var17 >= 0 ? var17 + 1 : var7.lineno(), 0);
- var2[var4].className = var14[var15];
- var2[var4].inner = var15;
- ++var4;
- ++var15;
- var17 = -1;
- }
-
- if (var9 >= 1 && !var10 && var8.equalsIgnoreCase("class")) {
- var7.nextToken();
- var14[var15] = var7.sval;
- var16[var15] = var4;
- var2[var4] = new MethodRecord((String)null, var17 >= 0 ? var17 + 1 : var7.lineno(), 0);
- var2[var4].className = var14[var15];
- var2[var4].inner = var15;
- ++var4;
- ++var15;
- var17 = -1;
- }
- }
- }
- } catch (EOFException var18) {
- }
-
- var6.close();
- } catch (FileNotFoundException var19) {
- System.err.println("loadClassFile: " + var19);
- return null;
- } catch (IOException var20) {
- System.err.println("loadClassFile: " + var20);
- }
-
- MethodRecord[] var22 = new MethodRecord[var4];
-
- for(int var23 = 0; var23 < var4; ++var23) {
- var22[var23] = var2[var23];
- }
-
- int var24 = 0;
- int var25 = 0;
- Object var26 = null;
-
- for(int var29 = 0; var29 < var22.length; ++var29) {
- if (var24 > 0 && var22[var29].inner() == var25 && var22[var29].methodName() != null) {
- String[] var27 = this.loadSourceLines(var1, var24, var22[var29].endRow());
- var22[var29].locateFirstMethodComment(var27, var24);
- var24 = 0;
- }
-
- if (var22[var29].methodName() == null) {
- if (var24 > 0 && var22[var29].inner() > var25) {
- String[] var28 = this.loadSourceLines(var1, var24, var22[var29].endRow());
- var22[var29].locateFirstMethodComment(var28, var24);
- }
-
- var24 = var22[var29].startRow();
- var25 = var22[var29].inner();
- }
- }
-
- for(int var30 = 0; var30 < var22.length; ++var30) {
- if (var22[var30].methodName() == null) {
- if (var30 + 1 == var22.length) {
- var22[var30].defnEndRow = var22[var30].endRow - 1;
- break;
- }
-
- var22[var30].defnEndRow = var22[var30 + 1].commentStartRow() - 1;
- if (var22[var30].endRow == var22[var30].defnEndRow) {
- --var22[var30].defnEndRow;
- }
- }
- }
-
- this.classMethodList = var22;
- int var31 = MethodRecord.classList(var22).length;
- boolean var32 = this.partialClassesExist;
- if (var31 > 1) {
- this.partialClassesExist = true;
- } else {
- this.partialClassesExist = false;
- }
-
- if (var32 || var31 > 1) {
- this.changes = new boolean[MaxChanges];
- this.changes[ClassLoad] = true;
- this.changes[PartialsFound] = true;
- boolean[] var33 = this.changes;
- ((Observable)this).setChanged();
- ((Observable)this).notifyObservers(var33);
- }
-
- return var22;
- }
-
- public String[] loadSourceLines(String var1, int var2, int var3) {
- String[] var4 = new String[3000];
- this.minorClassName(var1.substring(var1.lastIndexOf(46) + 1));
- String var5 = this.getFileName(var1);
- int var6 = 0;
-
- try {
- BufferedReader var7 = new BufferedReader(new InputStreamReader(new FileInputStream(new File(var5))));
- int var8 = 0;
-
- try {
- while(true) {
- String var9 = var7.readLine();
- ++var8;
- if (var9 == null) {
- break;
- }
-
- if (var8 >= var2 && var8 <= var3) {
- var4[var6++] = var9;
- }
- }
- } catch (EOFException var10) {
- } catch (ArrayIndexOutOfBoundsException var11) {
- }
-
- var7.close();
- } catch (FileNotFoundException var12) {
- System.err.println("loadSourceLines: " + var12);
- } catch (IOException var13) {
- System.err.println("loadSourceLines: " + var13);
- }
-
- String[] var14 = new String[var6];
-
- for(int var15 = 0; var15 < var6; ++var15) {
- var14[var15] = var4[var15];
- }
-
- return var14;
- }
-
- public void saveMethod(String var1, MethodRecord[] var2, int var3, String var4) {
- Object var5 = null;
- Object var6 = null;
- this.minorClassName(var1.substring(var1.lastIndexOf(46) + 1));
- String var7 = this.getFileName(var1);
- int var8 = 0;
- int var9 = 0;
- var4 = this.fixMethodEnd(var4);
- if (var3 == -1) {
- int var10 = MethodRecord.FindLast(var2);
- if (var10 == -1) {
- var8 = -1;
- var9 = 2000;
- } else {
- var8 = var2[var10].endRow() + 1;
- var9 = var2[var10].endRow();
- }
- } else {
- var8 = var2[var3].endRow() + 1;
- if (var3 == MethodRecord.FindFirst(var2)) {
- var9 = var2[var3].commentStartRow() - 1;
- } else {
- var9 = var2[MethodRecord.FindPrevious(var2, var3)].endRow();
- }
- }
-
- String[] var18 = this.loadSourceLines(var1, 1, var9);
- String[] var19;
- if (var8 == -1) {
- int var11 = var18.length;
-
- for(int var22 = var18.length - 1; var22 >= 0; --var22) {
- if (var18[var22].indexOf(125) != -1) {
- var11 = var22;
- break;
- }
- }
-
- String[] var12 = var18;
- var18 = new String[var11];
-
- int var23;
- for(var23 = 0; var23 < var11; ++var23) {
- var18[var23] = var12[var23];
- }
-
- var19 = new String[var12.length - var18.length];
-
- for(int var13 = 0; var23 < var12.length; ++var13) {
- var19[var13] = var12[var23];
- ++var23;
- }
- } else {
- var19 = this.loadSourceLines(var1, var8, 2000);
- }
-
- try {
- DataOutputStream var24 = new DataOutputStream(new FileOutputStream(var7));
-
- for(int var25 = 0; var25 < var18.length; ++var25) {
- var24.writeBytes(var18[var25]);
- var24.writeBytes(System.getProperty("line.separator"));
- }
-
- StringReader var26 = new StringReader(var4);
- int var27 = 0;
-
- while((var27 = var26.read()) != -1) {
- switch (var27) {
- case 10:
- var24.writeBytes(System.getProperty("line.separator"));
- break;
- default:
- var24.write(var27);
- }
- }
-
- for(int var14 = 0; var14 < var19.length; ++var14) {
- var24.writeBytes(var19[var14]);
- var24.writeBytes(System.getProperty("line.separator"));
- }
-
- ((FilterOutputStream)var24).close();
- } catch (FileNotFoundException var15) {
- System.err.println("saveMethod: " + var15);
- } catch (IOException var16) {
- System.err.println("saveMethod: " + var16);
- }
- }
-
- public void saveClass(String var1, int[] var2, String var3, String var4) {
- String[] var5 = null;
- String[] var6 = null;
- String[] var7 = null;
- String var8 = this.getFileName(this.majorClassName(var1));
- String var9 = this.majorClassName(var1);
- if (var2 != null) {
- var5 = this.loadSourceLines(var9, var2[0], var2[1] - 1);
- var6 = this.loadSourceLines(var9, var2[2], var2[3] - 1);
- var7 = this.loadSourceLines(var9, var2[4], var2[5] - 1);
- }
-
- try {
- DataOutputStream var10 = new DataOutputStream(new FileOutputStream(var8));
- if (var5 != null) {
- for(int var11 = 0; var11 < var5.length; ++var11) {
- var10.writeBytes(var5[var11]);
- var10.writeBytes(System.getProperty("line.separator"));
- }
- }
-
- StringReader var16 = new StringReader(var3);
- int var12 = 0;
-
- while((var12 = var16.read()) != -1) {
- switch (var12) {
- case 10:
- var10.writeBytes(System.getProperty("line.separator"));
- break;
- default:
- var10.write(var12);
- }
- }
-
- var10.writeBytes(System.getProperty("line.separator"));
- if (var6 != null) {
- for(int var13 = 0; var13 < var6.length; ++var13) {
- var10.writeBytes(var6[var13]);
- var10.writeBytes(System.getProperty("line.separator"));
- }
- }
-
- var16 = new StringReader(var4);
- var12 = 0;
-
- while((var12 = var16.read()) != -1) {
- switch (var12) {
- case 10:
- var10.writeBytes(System.getProperty("line.separator"));
- break;
- default:
- var10.write(var12);
- }
- }
-
- var10.writeBytes(System.getProperty("line.separator"));
- if (var7 != null) {
- for(int var21 = 0; var21 < var7.length; ++var21) {
- var10.writeBytes(var7[var21]);
- var10.writeBytes(System.getProperty("line.separator"));
- }
- }
-
- ((FilterOutputStream)var10).close();
- } catch (FileNotFoundException var14) {
- System.err.println("saveClass: " + var14);
- } catch (IOException var15) {
- System.err.println("saveClass: " + var15);
- }
- }
-
- public static void main(String[] var0) {
- String var1 = var0[1] + "." + var0[2];
- BrowserOptions.init();
- BrowserFileLoader var2 = new BrowserFileLoader(var0[0]);
- var2.loadPackage(var0[0], var0[1]);
- MethodRecord[] var3 = var2.loadClassFile(var1);
-
- for(int var4 = 0; var4 < var3.length; ++var4) {
- System.out.println(var3[var4]);
- }
-
- System.out.println("====");
- String[] var5 = MethodRecord.classList(var3);
-
- for(int var9 = 0; var9 < var5.length; ++var9) {
- int[] var6 = MethodRecord.getClassBorders(var5[var9], var3);
- System.out.println(var5[var9] + ", " + MethodRecord.isInner(var5[var9], var3) + ", " + MethodRecord.beginClass(var5[var9], var3) + ", " + MethodRecord.endClass(var5[var9], var3) + ", " + var6[0] + ", " + var6[1] + ", " + var6[2] + ", " + var6[3]);
- }
-
- System.out.println("====");
-
- for(int var10 = 0; var10 < var5.length; ++var10) {
- MethodRecord[] var11 = MethodRecord.classMethodList(var5[var10], var3);
- System.out.println(var5[var10]);
-
- for(int var7 = 0; var7 < var11.length; ++var7) {
- System.out.println("\t" + var11[var7]);
- }
- }
-
- System.out.println("====");
- MethodRecord[] var12 = MethodRecord.classRecordList(var3);
-
- for(int var13 = 0; var13 < var12.length; ++var13) {
- System.out.println(var12[var13]);
- int[] var8 = MethodRecord.getClassDefn(var12[var13].className(), var12);
- System.out.println("Class defn: " + var8[0] + " " + var8[1] + " " + var8[2] + " " + var8[3]);
- var8 = MethodRecord.getClassBorders(var12[var13].className(), var12);
- System.out.println("Class borders: " + var8[0] + " " + var8[1] + " " + var8[2] + " " + var8[3] + " " + var8[4] + " " + var8[5]);
- }
-
- System.exit(1);
- }
-
- public long lastModified(String var1) {
- String var2 = this.getFileName(var1);
- File var3 = new File(var2);
- return var3.lastModified();
- }
-
- private String getBytecodeFileName(String var1) {
- return this.rootDir + correctFileName(var1) + ".class";
- }
-
- public boolean isClassCompiled(String var1) {
- String var2 = this.getBytecodeFileName(var1);
- File var3 = new File(var2);
- return var3.lastModified() > this.lastModified(var1);
- }
-
- public boolean removeClassFile(String var1) {
- String var2 = this.getFileName(var1);
- File var3 = new File(var2);
- return var3.delete();
- }
-
- public boolean existClassFile(String var1) {
- String var2 = this.getFileName(var1);
- File var3 = new File(var2);
- return var3.exists();
- }
-
- public boolean renameClassFile(String var1, String var2) {
- String var3 = this.getFileName(var1);
- String var4 = this.getFileName(var2);
- File var5 = new File(var3);
- File var6 = new File(var4);
- return var5.renameTo(var6);
- }
-
- void resizeResults() {
- if (this.resultsCount % resultsIncrement == 0) {
- String[] var1 = new String[this.resultsCount];
-
- for(int var2 = 0; var2 < this.resultsCount; ++var2) {
- var1[var2] = this.results[var2];
- }
-
- this.results = new String[this.resultsCount + resultsIncrement];
-
- for(int var3 = 0; var3 < this.resultsCount; ++var3) {
- this.results[var3] = var1[var3];
- }
- }
-
- }
-
- public static String correctPackageName(String var0) {
- String var1 = var0.replace('.', !BrowserOptions.specialSystem[3].equals("") ? BrowserOptions.specialSystem[3].charAt(0) : ':');
- return var1.replace(BrowserOptions.delimiterChar(), '.');
- }
-
- public static String correctFileName(String var0) {
- if (var0 != null && !var0.equals("")) {
- String var1 = var0.replace('.', BrowserOptions.delimiterChar());
- return var1.replace(!BrowserOptions.specialSystem[3].equals("") ? BrowserOptions.specialSystem[3].charAt(0) : ':', '.');
- } else {
- return "";
- }
- }
-
- private static char periodDisplayChar() {
- return !BrowserOptions.specialSystem[3].equals("") ? BrowserOptions.specialSystem[3].charAt(0) : ':';
- }
-
- void loadPackage(String var1, String var2) {
- this.classFiles = this.ListFiles(var1 + correctFileName(var2));
- this.partialClassesExist = false;
- this.changes = new boolean[MaxChanges];
- this.changes[ClassLoad] = true;
- boolean[] var3 = this.changes;
- ((Observable)this).setChanged();
- ((Observable)this).notifyObservers(var3);
- }
-
- private void changed(boolean[] var1) {
- ((Observable)this).setChanged();
- ((Observable)this).notifyObservers(var1);
- }
-
- void loadClass(String var1, boolean var2) {
- if (var2 || !this.classOnList(this.minorClassName(var1.substring(var1.lastIndexOf(46) + 1)))) {
- this.classMethodList = this.loadClassFile(this.majorClassName(var1));
- }
-
- this.changes = new boolean[MaxChanges];
- if (this.classMethodList == null) {
- this.classFileName = null;
- this.changes[ClassLoad] = true;
- } else {
- this.changes[MethodLoad] = true;
- }
-
- boolean[] var3 = this.changes;
- ((Observable)this).setChanged();
- ((Observable)this).notifyObservers(var3);
- }
-
- private boolean classOnList(String var1) {
- if (this.classMethodList != null && this.classMethodList.length != 0) {
- String[] var2 = MethodRecord.classList(this.classMethodList);
-
- for(int var3 = 0; var3 < var2.length; ++var3) {
- if (var2[var3].equals(var1)) {
- return true;
- }
- }
-
- return false;
- } else {
- return false;
- }
- }
-
- public String classFileName() {
- return this.classFileName;
- }
-
- public MethodRecord[] partialClassList() {
- int var1 = 0;
- if (this.classMethodList != null && this.partialClassesExist()) {
- for(int var2 = 0; var2 < this.classMethodList.length; ++var2) {
- if (this.classMethodList[var2].methodName() == null) {
- ++var1;
- }
- }
- }
-
- MethodRecord[] var5 = new MethodRecord[var1];
- var1 = 0;
- if (this.classMethodList != null && this.partialClassesExist()) {
- for(int var3 = 0; var3 < this.classMethodList.length; ++var3) {
- if (this.classMethodList[var3].methodName() == null) {
- var5[var1++] = this.classMethodList[var3];
- }
- }
- }
-
- return var5;
- }
-
- public MethodRecord[] getMethods(String var1) {
- return MethodRecord.classMethodList(this.minorClassName(var1.substring(var1.lastIndexOf(46) + 1)), this.classMethodList);
- }
-
- public String[] getClasses() {
- return this.classFiles;
- }
-
- private String minorClassName(String var1) {
- int var2 = var1.lastIndexOf(45);
- if (var2 == -1) {
- return var1;
- } else {
- var1 = var1.substring(var2 + 1);
- var2 = var1.lastIndexOf(43);
- if (var2 >= 0) {
- return var1.substring(var2 + 1);
- } else {
- var2 = var1.lastIndexOf(32);
- return var2 >= 0 ? var1.substring(var2 + 1) : var1;
- }
- }
- }
-
- private String majorClassName(String var1) {
- int var2 = var1.indexOf(32);
- if (var2 >= 0) {
- return var1.substring(0, var2);
- } else {
- var2 = var1.indexOf(43);
- return var2 >= 0 ? var1.substring(0, var2) : var1;
- }
- }
-
- public boolean partialClassesExist() {
- return this.partialClassesExist;
- }
-
- private String fixMethodEnd(String var1) {
- int var2 = var1.lastIndexOf(125);
- int var3 = var1.lastIndexOf(10);
- return var2 > var3 ? var1 + "\n" : var1;
- }
-
- public String[] getClasses(String var1, String var2) {
- return this.classFiles = this.ListFiles(var1 + correctFileName(var2));
- }
-
- boolean removeInnerClass(String var1) {
- Object var2 = null;
- Object var3 = null;
- String var4 = this.getFileName(this.majorClassName(var1));
- String var5 = this.minorClassName(var1);
- var5 = this.minorClassName(var5.substring(var5.lastIndexOf(46) + 1));
- int[] var6 = null;
- String[] var7 = MethodRecord.classList(this.classMethodList);
-
- for(int var8 = 0; var8 < var7.length; ++var8) {
- if (var5.equals(var7[var8])) {
- var6 = MethodRecord.getClassBorders(var7[var8], this.classMethodList);
- break;
- }
- }
-
- if (var6 == null) {
- return false;
- } else {
- String[] var14 = this.loadSourceLines(this.majorClassName(var1), var6[0], var6[1] - 1);
- String[] var15 = this.loadSourceLines(this.majorClassName(var1), var6[4], var6[5] - 1);
-
- try {
- DataOutputStream var9 = new DataOutputStream(new FileOutputStream(var4));
-
- for(int var10 = 0; var10 < var14.length; ++var10) {
- var9.writeBytes(var14[var10]);
- var9.writeBytes(System.getProperty("line.separator"));
- }
-
- for(int var11 = 0; var11 < var15.length; ++var11) {
- var9.writeBytes(var15[var11]);
- var9.writeBytes(System.getProperty("line.separator"));
- }
-
- ((FilterOutputStream)var9).close();
- } catch (FileNotFoundException var12) {
- System.err.println("saveMethod: " + var12);
- } catch (IOException var13) {
- System.err.println("saveMethod: " + var13);
- }
-
- return true;
- }
- }
-
- public void classFileName(String var1) {
- this.classFileName = var1;
- }
- }
-