36 lines
1.2 KiB
Java
36 lines
1.2 KiB
Java
package org.jetbrains.jet.j2k.ast;
|
|
|
|
import org.jetbrains.annotations.NotNull;
|
|
import org.jetbrains.annotations.Nullable;
|
|
|
|
/**
|
|
* @author ignatov
|
|
*/
|
|
public class NewClassExpression extends Expression {
|
|
private final Element myName;
|
|
private final Element myArguments;
|
|
private Expression myQualifier;
|
|
private AnonymousClass myAnonymousClass = null;
|
|
|
|
public NewClassExpression(Element name, Element arguments) {
|
|
myName = name;
|
|
myQualifier = EMPTY_EXPRESSION;
|
|
myArguments = arguments;
|
|
}
|
|
|
|
public NewClassExpression(Expression qualifier, Element name, Element arguments, @Nullable AnonymousClass anonymousClass) {
|
|
this(name, arguments);
|
|
myQualifier = qualifier;
|
|
myAnonymousClass = anonymousClass;
|
|
}
|
|
|
|
@NotNull
|
|
@Override
|
|
public String toKotlin() {
|
|
final String callOperator = myQualifier.isNullable() ? QUESTDOT : DOT;
|
|
final String qualifier = myQualifier.isEmpty() ? EMPTY : myQualifier.toKotlin() + callOperator;
|
|
return myAnonymousClass != null ?
|
|
"object" + SPACE + ":" + SPACE + qualifier + myName.toKotlin() + "(" + myArguments.toKotlin() + ")" + myAnonymousClass.toKotlin() :
|
|
qualifier + myName.toKotlin() + "(" + myArguments.toKotlin() + ")";
|
|
}
|
|
} |