working with import statements improved

This commit is contained in:
Sergey Ignatov
2011-11-16 12:57:13 +04:00
parent bbcf8be5bf
commit d0c8b104d5
8 changed files with 35 additions and 25 deletions
+5 -10
View File
@@ -20,10 +20,10 @@ public class Converter {
public static File fileToFile(PsiJavaFile javaFile) { public static File fileToFile(PsiJavaFile javaFile) {
final PsiImportList importList = javaFile.getImportList(); final PsiImportList importList = javaFile.getImportList();
List<Import> imports = importList == null ? Collections.<Import>emptyList() : importsToImportList(importList.getAllImportStatements()); List<Import> imports = importList == null ? Collections.<Import>emptyList() : importsToImportList(importList.getAllImportStatements());
return new File(getPackageName(javaFile.getPackageName()), imports, classesToClassList(javaFile.getClasses())); return new File(quoteKeywords(javaFile.getPackageName()), imports, classesToClassList(javaFile.getClasses()));
} }
private static String getPackageName(String packageName) { private static String quoteKeywords(String packageName) {
List<String> result = new LinkedList<String>(); List<String> result = new LinkedList<String>();
for (String part : packageName.split("\\.")) for (String part : packageName.split("\\."))
result.add(new IdentifierImpl(part).toKotlin()); result.add(new IdentifierImpl(part).toKotlin());
@@ -388,14 +388,9 @@ public class Converter {
} }
@NotNull @NotNull
private static Import importToImport(PsiImportStatementBase t) { private static Import importToImport(PsiImportStatementBase i) {
if (t != null) { final String text = i == null ? "" : quoteKeywords(i.getText().replace("import ", "").replace("static ", "").replace(";", ""));
final PsiJavaCodeReferenceElement reference = t.getImportReference(); return new Import(text); // TODO: import reference
if (reference != null) {
return new Import(reference.getQualifiedName()); // TODO: use identifier
}
}
return new Import("");
} }
@NotNull @NotNull
@@ -116,11 +116,6 @@ public class StatementVisitor extends ElementVisitor {
); );
} }
@Override
public void visitImportStatement(PsiImportStatement statement) {
super.visitImportStatement(statement);
}
@Override @Override
public void visitIfStatement(PsiIfStatement statement) { public void visitIfStatement(PsiIfStatement statement) {
super.visitIfStatement(statement); super.visitIfStatement(statement);
@@ -131,11 +126,6 @@ public class StatementVisitor extends ElementVisitor {
); );
} }
@Override
public void visitImportStaticStatement(PsiImportStaticStatement statement) {
super.visitImportStaticStatement(statement);
}
@Override @Override
public void visitLabeledStatement(PsiLabeledStatement statement) { public void visitLabeledStatement(PsiLabeledStatement statement) {
super.visitLabeledStatement(statement); super.visitLabeledStatement(statement);
@@ -145,11 +135,6 @@ public class StatementVisitor extends ElementVisitor {
); );
} }
@Override
public void visitPackageStatement(PsiPackageStatement statement) {
super.visitPackageStatement(statement);
}
@Override @Override
public void visitSwitchLabelStatement(PsiSwitchLabelStatement statement) { public void visitSwitchLabelStatement(PsiSwitchLabelStatement statement) {
super.visitSwitchLabelStatement(statement); super.visitSwitchLabelStatement(statement);
@@ -0,0 +1,5 @@
package test;
import namespace.as.type.val.var.fun.is.in.object.when.trait.This;
class Test {}
@@ -0,0 +1,5 @@
namespace test {
import `namespace`.`as`.`type`.`val`.`var`.`fun`.`is`.`in`.`object`.`when`.`trait`.`This`
open class Test() {
}
}
@@ -0,0 +1,5 @@
package org.jetbrains.jet.j2k;
import org.jetbrains.annotations.*;
public class Converter {}
@@ -0,0 +1,5 @@
namespace org.jetbrains.jet.j2k {
import org.jetbrains.annotations.*
public open class Converter() {
}
}
@@ -0,0 +1,5 @@
package org.jetbrains.jet.j2k;
import org.jetbrains.annotations.NotNull;
public class Converter {}
@@ -0,0 +1,5 @@
namespace org.jetbrains.jet.j2k {
import org.jetbrains.annotations.NotNull
public open class Converter() {
}
}