This commit is contained in:
Sergey Ignatov
2011-11-07 19:05:31 +04:00
parent d36c2a46d3
commit 98c9fcf68f
12 changed files with 30 additions and 22 deletions
+5 -5
View File
@@ -296,13 +296,13 @@ public class Converter {
public static Set<String> modifiersListToModifiersSet(PsiModifierList modifierList) { public static Set<String> modifiersListToModifiersSet(PsiModifierList modifierList) {
HashSet<String> modifiersSet = new HashSet<String>(); HashSet<String> modifiersSet = new HashSet<String>();
if (modifierList != null) { if (modifierList != null) {
if (modifierList.hasModifierProperty(PsiModifier.ABSTRACT)) modifiersSet.add(Modifier.ABSTRACT); if (modifierList.hasExplicitModifier(PsiModifier.ABSTRACT)) modifiersSet.add(Modifier.ABSTRACT);
if (modifierList.hasModifierProperty(PsiModifier.FINAL)) modifiersSet.add(Modifier.FINAL); if (modifierList.hasModifierProperty(PsiModifier.FINAL)) modifiersSet.add(Modifier.FINAL);
if (modifierList.hasModifierProperty(PsiModifier.STATIC)) modifiersSet.add(Modifier.STATIC); if (modifierList.hasModifierProperty(PsiModifier.STATIC)) modifiersSet.add(Modifier.STATIC);
if (modifierList.hasModifierProperty(PsiModifier.PUBLIC)) modifiersSet.add(Modifier.PUBLIC); if (modifierList.hasExplicitModifier(PsiModifier.PUBLIC)) modifiersSet.add(Modifier.PUBLIC);
if (modifierList.hasModifierProperty(PsiModifier.PROTECTED)) modifiersSet.add(Modifier.PROTECTED); if (modifierList.hasExplicitModifier(PsiModifier.PROTECTED)) modifiersSet.add(Modifier.PROTECTED);
if (modifierList.hasModifierProperty(PsiModifier.PACKAGE_LOCAL)) modifiersSet.add(Modifier.INTERNAL); if (modifierList.hasExplicitModifier(PsiModifier.PACKAGE_LOCAL)) modifiersSet.add(Modifier.INTERNAL);
if (modifierList.hasModifierProperty(PsiModifier.PRIVATE)) modifiersSet.add(Modifier.PRIVATE); if (modifierList.hasExplicitModifier(PsiModifier.PRIVATE)) modifiersSet.add(Modifier.PRIVATE);
} }
return modifiersSet; return modifiersSet;
} }
+2 -2
View File
@@ -99,7 +99,7 @@ public class Class extends Member {
} }
String bodyToKotlin() { String bodyToKotlin() {
return "{" + N + classObjectToKotlin() + N + return SPACE + "{" + N + classObjectToKotlin() + N +
AstUtil.joinNodes(getNonStatic(myFields), N) + N + AstUtil.joinNodes(getNonStatic(myFields), N) + N +
AstUtil.joinNodes(getNonStatic(methodsExceptConstructors()), N) + N + AstUtil.joinNodes(getNonStatic(methodsExceptConstructors()), N) + N +
AstUtil.joinNodes(getNonStatic(myInnerClasses), N) + N + AstUtil.joinNodes(getNonStatic(myInnerClasses), N) + N +
@@ -142,6 +142,6 @@ public class Class extends Member {
return modifiersToKotlin() + TYPE + SPACE + myName.toKotlin() + typeParametersToKotlin() + return modifiersToKotlin() + TYPE + SPACE + myName.toKotlin() + typeParametersToKotlin() +
implementTypesToKotlin() + implementTypesToKotlin() +
typeParameterWhereToKotlin() + typeParameterWhereToKotlin() +
SPACE + bodyToKotlin(); bodyToKotlin();
} }
} }
+5
View File
@@ -30,6 +30,11 @@ public class Enum extends Class {
return EMPTY; return EMPTY;
} }
@Override
boolean needOpenModifier() {
return false;
}
@NotNull @NotNull
@Override @Override
public String toKotlin() { public String toKotlin() {
@@ -25,7 +25,7 @@ public class NewClassExpression extends Expression {
@Override @Override
public String toKotlin() { public String toKotlin() {
return myAnonymousClass != null ? return myAnonymousClass != null ?
myName.toKotlin() + "(" + myArguments.toKotlin() + ")" + SPACE + myAnonymousClass.toKotlin() : myName.toKotlin() + "(" + myArguments.toKotlin() + ")" + myAnonymousClass.toKotlin() :
myName.toKotlin() + "(" + myArguments.toKotlin() + ")"; myName.toKotlin() + "(" + myArguments.toKotlin() + ")";
} }
} }
+1 -5
View File
@@ -17,8 +17,4 @@ public class Trait extends Class {
boolean needOpenModifier() { boolean needOpenModifier() {
return false; return false;
} }
}
boolean needAbstractModifier() {
return false;
}
}
@@ -48,8 +48,11 @@ public class JavaToKotlinConverterTest extends LightDaemonAnalyzerTestCase {
else if (javaFile.getParent().endsWith("/file")) actual = fileToKotlin(javaCode); else if (javaFile.getParent().endsWith("/file")) actual = fileToKotlin(javaCode);
assert !actual.equals(""); assert !actual.equals("");
final File tmp = new File(kotlinPath + ".tmp");
if (!expected.equals(actual)) if (!expected.equals(actual))
writeStringToFile(new File(kotlinPath + ".tmp"), actual); writeStringToFile(tmp, actual);
if (expected.equals(actual) && tmp.exists())
tmp.delete();
Assert.assertEquals(expected, actual); Assert.assertEquals(expected, actual);
} }
@@ -138,8 +141,9 @@ public class JavaToKotlinConverterTest extends LightDaemonAnalyzerTestCase {
return code return code
.trim() .trim()
.replaceAll("\r\n", "\n") .replaceAll("\r\n", "\n")
.replaceAll("\n+", "\n") .replaceAll(" \n", "\n")
.replaceAll("\n ", "\n") .replaceAll("\n ", "\n")
.replaceAll("\n+", "\n")
.replaceAll(" +", " ") .replaceAll(" +", " ")
.trim() .trim()
; ;
+1 -1
View File
@@ -1,5 +1,5 @@
abstract open class A { abstract open class A {
abstract fun callme() : Unit abstract fun callme() : Unit
fun callmetoo() : Unit { fun callmetoo() : Unit {
print("This is a concrete method.") print("This is a concrete method.")
} }
@@ -6,5 +6,5 @@ color = c
public fun getColor() : String? { public fun getColor() : String? {
return color return color
} }
abstract public fun area() : Double abstract public fun area() : Double
} }
@@ -0,0 +1 @@
abstract interface I {}
@@ -0,0 +1,2 @@
abstract trait I {
}
@@ -1,7 +1,7 @@
trait INode { trait INode {
class object { class object {
public val IN : String? = "in" val IN : String? = "in"
public val AT : String? = "@" val AT : String? = "@"
public val COMMA_WITH_SPACE : String? = (COMMA + SPACE) val COMMA_WITH_SPACE : String? = (COMMA + SPACE)
} }
} }
@@ -1,4 +1,4 @@
trait INode { trait INode {
public fun getTag() : Tag? fun getTag() : Tag?
public fun toKotlin() : String? fun toKotlin() : String?
} }