From 1676dbdbcb05f72966ed80a1500c54a6511dad5e Mon Sep 17 00:00:00 2001 From: Manindra Moharana Date: Sat, 13 Jul 2013 00:36:49 +0530 Subject: [PATCH] ImportStatement is now immutable --- .../mode/experimental/ASTGenerator.java | 18 +++++++++++--- .../experimental/ErrorCheckerService.java | 24 +++++++++++-------- .../mode/experimental/ImportStatement.java | 21 ++++++++++++---- .../mode/experimental/XQPreprocessor.java | 2 +- 4 files changed, 47 insertions(+), 18 deletions(-) diff --git a/pdex/src/processing/mode/experimental/ASTGenerator.java b/pdex/src/processing/mode/experimental/ASTGenerator.java index 759746eed..ea1b23125 100644 --- a/pdex/src/processing/mode/experimental/ASTGenerator.java +++ b/pdex/src/processing/mode/experimental/ASTGenerator.java @@ -272,6 +272,9 @@ public class ASTGenerator { private ClassPathFactory factory; + /** + * Used for searching for package declaration of a class + */ private ClassPath classPath; private JFrame jdocWindow; @@ -563,6 +566,7 @@ public class ASTGenerator { case ASTNode.FIELD_ACCESS: FieldAccess fa = (FieldAccess) astNode; if (fa.getExpression() == null) { + // Local code or belongs to super class System.out.println("FA,Not implemented."); return null; } else { @@ -578,6 +582,7 @@ public class ASTGenerator { } System.out.println("FA, SN Type " + getNodeAsString(stp)); scopeParent = definedIn3rdPartyClass(stp.getName().toString(), "THIS"); + } else { scopeParent = resolveExpression3rdParty(nearestNode, fa.getExpression(), noCompare); @@ -588,6 +593,7 @@ public class ASTGenerator { case ASTNode.METHOD_INVOCATION: MethodInvocation mi = (MethodInvocation) astNode; if (mi.getExpression() == null) { + //Local code or belongs to super class System.out.println("MI,Not implemented."); return null; } else { @@ -1001,6 +1007,7 @@ public class ASTGenerator { System.out.println("In GMFT(), couldn't find class: " + typeName); return candidates; } + // TODO: This method is getting redundant //TODO: Multiple matched classes? What about 'em? String matchedClass = resources[0]; matchedClass = matchedClass.substring(0, matchedClass.length() - 6); @@ -1138,6 +1145,14 @@ public class ASTGenerator { return null; } + private Class getClassIfExists(String className){ + ArrayList imports = errorCheckerService.getProgramImports(); + for (ImportStatement impS : imports) { + //impS. + } + return null; + } + public ClassMember definedIn3rdPartyClass(String className,String memberName){ RegExpResourceFilter regExpResourceFilter; regExpResourceFilter = new RegExpResourceFilter(".*", className + ".class"); @@ -1195,9 +1210,6 @@ public class ASTGenerator { } return null; } - else if (tehClass.getASTNode() instanceof FieldDeclaration){ - System.out.println(((FieldDeclaration)tehClass.getASTNode()).getType()); - } Class probableClass = null; if(tehClass.getClass_() != null){ diff --git a/pdex/src/processing/mode/experimental/ErrorCheckerService.java b/pdex/src/processing/mode/experimental/ErrorCheckerService.java index d16b08f7b..89fe59d71 100644 --- a/pdex/src/processing/mode/experimental/ErrorCheckerService.java +++ b/pdex/src/processing/mode/experimental/ErrorCheckerService.java @@ -150,7 +150,7 @@ public class ErrorCheckerService implements Runnable{ * Stores the current import statements in the program. Used to compare for * changed import statements and update classpath if needed. */ - protected ArrayList programImports; + private ArrayList programImports; /** * List of imports when sketch was last checked. Used for checking for @@ -513,7 +513,7 @@ public class ErrorCheckerService implements Runnable{ String entry = ""; boolean codeFolderChecked = false; for (ImportStatement impstat : programImports) { - String item = impstat.importName; + String item = impstat.getImportName(); int dot = item.lastIndexOf('.'); entry = (dot == -1) ? item : item.substring(0, dot); @@ -557,9 +557,9 @@ public class ErrorCheckerService implements Runnable{ System.err.println("Experimental Mode: Yikes! Can't find \"" + entry + "\" library! Line: " - + impstat.lineNumber + + impstat.getLineNumber() + " in tab: " - + editor.getSketch().getCode(impstat.tab) + + editor.getSketch().getCode(impstat.getTab()) .getPrettyName()); System.out .println("Please make sure that the library is present in getProgramImports() { + return programImports; + } } diff --git a/pdex/src/processing/mode/experimental/ImportStatement.java b/pdex/src/processing/mode/experimental/ImportStatement.java index 26d2db7d1..9fea5f797 100755 --- a/pdex/src/processing/mode/experimental/ImportStatement.java +++ b/pdex/src/processing/mode/experimental/ImportStatement.java @@ -32,16 +32,17 @@ public class ImportStatement { /** * Ex: processing.opengl.*, java.util.* */ - String importName; - /** + private String importName; + + /** * Which tab does it belong to? */ - int tab; + private int tab; /** * Line number(pde code) of the import */ - int lineNumber; + private int lineNumber; /** * @@ -54,4 +55,16 @@ public class ImportStatement { this.tab = tab; this.lineNumber = lineNumber; } + + public String getImportName() { + return importName; + } + + public int getTab() { + return tab; + } + + public int getLineNumber() { + return lineNumber; + } } \ No newline at end of file diff --git a/pdex/src/processing/mode/experimental/XQPreprocessor.java b/pdex/src/processing/mode/experimental/XQPreprocessor.java index 34ee2a9a2..91b613521 100755 --- a/pdex/src/processing/mode/experimental/XQPreprocessor.java +++ b/pdex/src/processing/mode/experimental/XQPreprocessor.java @@ -128,7 +128,7 @@ public class XQPreprocessor { public String prepareImports() { imports = new ArrayList(); for (int i = 0; i < extraImports.size(); i++) { - imports.add(new String(extraImports.get(i).importName)); + imports.add(new String(extraImports.get(i).getImportName())); } imports.add(new String("// Default Imports")); for (int i = 0; i < coreImports.length; i++) {