Files
kotlin-fork/src/org/jetbrains/jet/j2k/ast/NewClassExpression.java
T
2011-11-22 13:14:28 +04:00

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() + ")";
}
}