moar utility methods

This commit is contained in:
Manindra Moharana
2014-06-10 02:12:07 +05:30
parent 21cdde6788
commit af7d84b95b
2 changed files with 29 additions and 3 deletions
@@ -1189,12 +1189,21 @@ public class ASTGenerator {
return candidates;
}
public String getPDESourceCodeLine(int javaLineNumber) {
int res[] = errorCheckerService
.calculateTabIndexAndLineNumber(javaLineNumber);
if (res != null) {
return errorCheckerService.getPDECodeAtLine(res[0], res[1]);
}
return null;
}
/**
* Returns the java source code line at the given line number
* @param javaLineNumber
* @return
*/
public String getJavaSourceCodeline(int javaLineNumber) {
public String getJavaSourceCodeLine(int javaLineNumber) {
try {
PlainDocument javaSource = new PlainDocument();
javaSource.insertString(0, errorCheckerService.sourceCode, null);
@@ -1638,7 +1647,7 @@ public class ASTGenerator {
if (lineNode != null) {
String pdeCodeLine = errorCheckerService.getPDECodeAtLine(editor
.getSketch().getCurrentCodeIndex(), lineNumber);
String javaCodeLine = getJavaSourceCodeline(pdeLineNumber);
String javaCodeLine = getJavaSourceCodeLine(pdeLineNumber);
log(lineNumber + " Original Line num.\nPDE :" + pdeCodeLine);
log("JAVA:" + javaCodeLine);
@@ -392,7 +392,7 @@ public class ASTNodeWrapper {
// Instead of converting pde into java, how can I simply extract the same source
// from the java code? Think. TODO
String sourceAlt = new String(source);
String sourceJava = ecs.astGenerator.getJavaSourceCodeline(lineNumber);
String sourceJava = ecs.astGenerator.getJavaSourceCodeLine(lineNumber);
TreeMap<Integer, Integer> offsetmap = new TreeMap<Integer, Integer>();
if(sourceJava.trim().startsWith("public") && !source.startsWith("public")){
@@ -650,6 +650,23 @@ public class ASTNodeWrapper {
public int[] getPDECodeOffsets(ErrorCheckerService ecs) {
return ecs.JavaToPdeOffsets(lineNumber + 1, Node.getStartPosition());
}
public int getPDECodeOffsetForSN(ASTGenerator astGen){
if (Node instanceof SimpleName) {
Element lineElement = astGen.getJavaSourceCodeElement(lineNumber);
OffsetMatcher ofm = new OffsetMatcher(
astGen
.getPDESourceCodeLine(lineNumber),
astGen
.getJavaSourceCodeLine(lineNumber));
//log("");
int pdeOffset = ofm.getPdeOffForJavaOff(Node.getStartPosition()
- lineElement.getStartOffset(), Node.toString().length());
return pdeOffset;
}
return -1;
}
public String toString() {
return label;