use of com.google.devtools.j2objc.ast.Name in project j2objc by google.
the class JavadocGenerator method printTagFragments.
private String printTagFragments(List<TreeNode> fragments) {
if (fragments.isEmpty()) {
return "";
}
StringBuilder sb = new StringBuilder();
int lineNo = fragments.get(0).getLineNumber();
for (TreeNode fragment : fragments) {
if (fragment.getLineNumber() > lineNo) {
sb.append("\n ");
lineNo = fragment.getLineNumber();
}
if (fragment instanceof TextElement) {
if (spanningPreTag) {
sb.append(getSourceIndent(fragment));
}
String text = escapeDocText(((TextElement) fragment).getText());
sb.append(text);
} else if (fragment instanceof TagElement) {
sb.append(printTag((TagElement) fragment));
} else if (fragment instanceof SimpleName) {
Element element = ((Name) fragment).getElement();
if (element != null && ElementUtil.isVariable(element)) {
sb.append(NameTable.getDocCommentVariableName(((VariableElement) element)));
} else {
sb.append(fragment.toString());
}
} else {
sb.append(fragment.toString().trim());
}
}
return sb.toString();
}
use of com.google.devtools.j2objc.ast.Name in project j2objc by google.
the class OuterReferenceResolver method visit.
@Override
public boolean visit(ThisExpression node) {
Name qualifier = TreeUtil.remove(node.getQualifier());
if (qualifier != null) {
Name path = getOuterPath((TypeElement) qualifier.getElement());
if (path != null) {
node.replaceWith(path);
}
} else {
Scope currentScope = peekScope();
if (ElementUtil.isLambda(currentScope.type)) {
Name path = getOuterPath(ElementUtil.getDeclaringClass(currentScope.type));
assert path != null : "this keyword within a lambda should have a non-empty path";
node.replaceWith(path);
}
}
return true;
}
use of com.google.devtools.j2objc.ast.Name in project j2objc by google.
the class StatementGenerator method visit.
@Override
public boolean visit(QualifiedName node) {
Element element = node.getElement();
if (ElementUtil.isVariable(element)) {
VariableElement var = (VariableElement) element;
if (ElementUtil.isGlobalVar(var)) {
buffer.append(nameTable.getVariableQualifiedName(var));
return false;
}
}
if (ElementUtil.isTypeElement(element)) {
buffer.append(nameTable.getFullName((TypeElement) element));
return false;
}
Name qualifier = node.getQualifier();
qualifier.accept(this);
buffer.append("->");
node.getName().accept(this);
return false;
}
use of com.google.devtools.j2objc.ast.Name in project j2objc by google.
the class TreeConverter method convertSuperMethodInvocation.
private static TreeNode convertSuperMethodInvocation(org.eclipse.jdt.core.dom.SuperMethodInvocation node) {
SuperMethodInvocation newNode = new SuperMethodInvocation();
convertExpression(node, newNode);
for (Object argument : node.arguments()) {
newNode.addArgument((Expression) TreeConverter.convert(argument));
}
IMethodBinding methodBinding = node.resolveMethodBinding();
return newNode.setExecutablePair(new ExecutablePair(BindingConverter.getExecutableElement(methodBinding), BindingConverter.getType(methodBinding))).setVarargsType(getVarargsType(methodBinding, node.arguments())).setQualifier((Name) TreeConverter.convert(node.getQualifier())).setName((SimpleName) TreeConverter.convert(node.getName()));
}
use of com.google.devtools.j2objc.ast.Name in project j2objc by google.
the class TreeConverter method convertQualifiedName.
private static TreeNode convertQualifiedName(org.eclipse.jdt.core.dom.QualifiedName node) {
QualifiedName newNode = new QualifiedName();
convertName(node, newNode);
return newNode.setQualifier((Name) TreeConverter.convert(node.getQualifier())).setName((SimpleName) TreeConverter.convert(node.getName()));
}
Aggregations