Search in sources :

Example 6 with Name

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();
}
Also used : TextElement(com.google.devtools.j2objc.ast.TextElement) TreeNode(com.google.devtools.j2objc.ast.TreeNode) SimpleName(com.google.devtools.j2objc.ast.SimpleName) TagElement(com.google.devtools.j2objc.ast.TagElement) VariableElement(javax.lang.model.element.VariableElement) Element(javax.lang.model.element.Element) TextElement(com.google.devtools.j2objc.ast.TextElement) TagElement(com.google.devtools.j2objc.ast.TagElement) Name(com.google.devtools.j2objc.ast.Name) SimpleName(com.google.devtools.j2objc.ast.SimpleName)

Example 7 with Name

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;
}
Also used : SimpleName(com.google.devtools.j2objc.ast.SimpleName) QualifiedName(com.google.devtools.j2objc.ast.QualifiedName) Name(com.google.devtools.j2objc.ast.Name)

Example 8 with Name

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;
}
Also used : TypeElement(javax.lang.model.element.TypeElement) TypeElement(javax.lang.model.element.TypeElement) Element(javax.lang.model.element.Element) VariableElement(javax.lang.model.element.VariableElement) ExecutableElement(javax.lang.model.element.ExecutableElement) VariableElement(javax.lang.model.element.VariableElement) QualifiedName(com.google.devtools.j2objc.ast.QualifiedName) SimpleName(com.google.devtools.j2objc.ast.SimpleName) Name(com.google.devtools.j2objc.ast.Name)

Example 9 with Name

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()));
}
Also used : IMethodBinding(org.eclipse.jdt.core.dom.IMethodBinding) ExecutablePair(com.google.devtools.j2objc.types.ExecutablePair) SuperMethodInvocation(com.google.devtools.j2objc.ast.SuperMethodInvocation) SimpleName(com.google.devtools.j2objc.ast.SimpleName) Name(com.google.devtools.j2objc.ast.Name) QualifiedName(com.google.devtools.j2objc.ast.QualifiedName)

Example 10 with Name

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()));
}
Also used : QualifiedName(com.google.devtools.j2objc.ast.QualifiedName) SimpleName(com.google.devtools.j2objc.ast.SimpleName) Name(com.google.devtools.j2objc.ast.Name) QualifiedName(com.google.devtools.j2objc.ast.QualifiedName)

Aggregations

Name (com.google.devtools.j2objc.ast.Name)10 SimpleName (com.google.devtools.j2objc.ast.SimpleName)9 QualifiedName (com.google.devtools.j2objc.ast.QualifiedName)8 VariableElement (javax.lang.model.element.VariableElement)4 CastExpression (com.google.devtools.j2objc.ast.CastExpression)2 ConditionalExpression (com.google.devtools.j2objc.ast.ConditionalExpression)2 Expression (com.google.devtools.j2objc.ast.Expression)2 FunctionalExpression (com.google.devtools.j2objc.ast.FunctionalExpression)2 InfixExpression (com.google.devtools.j2objc.ast.InfixExpression)2 InstanceofExpression (com.google.devtools.j2objc.ast.InstanceofExpression)2 LambdaExpression (com.google.devtools.j2objc.ast.LambdaExpression)2 ParenthesizedExpression (com.google.devtools.j2objc.ast.ParenthesizedExpression)2 PostfixExpression (com.google.devtools.j2objc.ast.PostfixExpression)2 PrefixExpression (com.google.devtools.j2objc.ast.PrefixExpression)2 ThisExpression (com.google.devtools.j2objc.ast.ThisExpression)2 TreeNode (com.google.devtools.j2objc.ast.TreeNode)2 VariableDeclarationExpression (com.google.devtools.j2objc.ast.VariableDeclarationExpression)2 Element (javax.lang.model.element.Element)2 IMethodBinding (org.eclipse.jdt.core.dom.IMethodBinding)2 Annotation (com.google.devtools.j2objc.ast.Annotation)1