added constructors for enums

This commit is contained in:
Sergey Ignatov
2011-11-16 13:23:18 +04:00
parent fb6ac8e4b6
commit 7d6513f49f
4 changed files with 24 additions and 19 deletions
@@ -28,10 +28,6 @@ public class Constructor extends Function {
return myIsPrimary;
}
public String privatePrimaryToKotlin() {
return modifiersToKotlin() + "(" + myParams.toKotlin() + ")" + SPACE + myBlock.toKotlin();
}
@NotNull
@Override
public Kind getKind() {
+5 -15
View File
@@ -15,19 +15,9 @@ public class Enum extends Class {
super(name, modifiers, typeParameters, extendsTypes, baseClassParams, implementsTypes, innerClasses, methods, fields);
}
@Nullable
private Constructor getPrimaryConstructor() {
for (Function m : myMethods)
if (m.getKind() == Kind.CONSTRUCTOR)
return (Constructor) m;
return null;
}
private String primaryConstructorToKotlin() {
Constructor maybeConstructor = getPrimaryConstructor();
if (maybeConstructor != null)
return maybeConstructor.privatePrimaryToKotlin();
return EMPTY;
String primaryConstructorSignatureToKotlin() {
String s = super.primaryConstructorSignatureToKotlin();
return s.equals("()") ? EMPTY : s;
}
@Override
@@ -38,11 +28,11 @@ public class Enum extends Class {
@NotNull
@Override
public String toKotlin() {
return modifiersToKotlin() + "enum" + SPACE + myName.toKotlin() + typeParametersToKotlin() + implementTypesToKotlin() + SPACE + "{" + N +
return modifiersToKotlin() + "enum" + SPACE + myName.toKotlin() + primaryConstructorSignatureToKotlin() + typeParametersToKotlin() + implementTypesToKotlin() + SPACE + "{" + N +
AstUtil.joinNodes(myFields, N) + N +
primaryConstructorToKotlin() + N +
AstUtil.joinNodes(methodsExceptConstructors(), N) + N +
AstUtil.joinNodes(myInnerClasses, N) + N +
primaryConstructorBodyToKotlin() + N +
"}";
}
}
@@ -0,0 +1,10 @@
enum Color {
private int code;
private Color(int c) {
code = c;
}
public int getCode() {
return code;
}
@@ -0,0 +1,9 @@
enum Color(c : Int) {
private var code : Int
open public fun getCode() : Int {
return code
}
{
$code = c
}
}