Example usage for org.eclipse.jdt.core.dom TypeParameter typeBounds

List of usage examples for org.eclipse.jdt.core.dom TypeParameter typeBounds

Introduction

In this page you can find the example usage for org.eclipse.jdt.core.dom TypeParameter typeBounds.

Prototype

ASTNode.NodeList typeBounds

To view the source code for org.eclipse.jdt.core.dom TypeParameter typeBounds.

Click Source Link

Document

The type bounds (element type: Type ).

Usage

From source file:at.bestsolution.fxide.jdt.corext.dom.ASTFlattener.java

License:Open Source License

@Override
public boolean visit(TypeParameter node) {
    printModifiers(node.modifiers());//  www.  j  a v a  2s .c o  m
    node.getName().accept(this);
    if (!node.typeBounds().isEmpty()) {
        this.fBuffer.append(" extends ");//$NON-NLS-1$
        for (Iterator<Type> it = node.typeBounds().iterator(); it.hasNext();) {
            Type t = it.next();
            t.accept(this);
            if (it.hasNext()) {
                this.fBuffer.append(" & ");//$NON-NLS-1$
            }
        }
    }
    return false;
}

From source file:chibi.gumtreediff.gen.jdt.cd.CdJdtVisitor.java

License:Open Source License

@SuppressWarnings("unchecked")
@Override/*  w  ww. j a v  a 2 s .  c  om*/
public boolean visit(TypeParameter node) {
    pushNode(node, node.getName().getFullyQualifiedName());
    visitList(node.typeBounds());
    return false;
}

From source file:coloredide.utils.CopiedNaiveASTFlattener.java

License:Open Source License

public boolean visit(TypeParameter node) {
    node.getName().accept(this);
    if (!node.typeBounds().isEmpty()) {
        this.buffer.append(" extends ");//$NON-NLS-1$
        for (Iterator it = node.typeBounds().iterator(); it.hasNext();) {
            Type t = (Type) it.next();
            t.accept(this);
            if (it.hasNext()) {
                this.buffer.append(" & ");//$NON-NLS-1$
            }/*from  w w  w .ja  v a  2 s . com*/
        }
    }
    return false;
}

From source file:com.bsiag.eclipse.jdt.java.formatter.SpacePreparator.java

License:Open Source License

@Override
public boolean visit(TypeParameter node) {
    List<Type> typeBounds = node.typeBounds();
    for (int i = 1; i < typeBounds.size(); i++) {
        handleTokenBefore(typeBounds.get(i), TokenNameAND,
                this.options.insert_space_before_and_in_type_parameter,
                this.options.insert_space_after_and_in_type_parameter);
    }/*from  w  ww.j ava 2s  .c  om*/
    return true;
}

From source file:com.google.devtools.j2cpp.translate.DeadCodeEliminator.java

License:Open Source License

/**
 * Add a method stub, the body of which throws an assertion error, to a type.
 *///from ww w.j  a va  2 s  . c o m
@SuppressWarnings("unchecked")
private void generateMethodStub(AST ast, ITypeBinding scope, List<BodyDeclaration> scopeBody,
        IMethodBinding method, Type returnType) {
    MethodDeclaration decl = ast.newMethodDeclaration();
    decl.setName(ast.newSimpleName(method.getName()));

    // Return type
    decl.setReturnType2(returnType);

    // Generic type
    for (ITypeBinding typeParamBinding : method.getTypeParameters()) {
        TypeParameter typeParam = ast.newTypeParameter();
        typeParam.setName(ast.newSimpleName(typeParamBinding.getName()));
        for (ITypeBinding typeBound : typeParamBinding.getTypeBounds()) {
            typeParam.typeBounds().add(createType(ast, scope, typeBound));
        }
        decl.typeParameters().add(typeParam);
    }

    // Parameters
    int paramCount = 0;
    for (ITypeBinding paramBinding : method.getParameterTypes()) {
        SingleVariableDeclaration var = ast.newSingleVariableDeclaration();

        // Binding doesn't track original parameter name; generate new parameter names.
        String paramName = "arg" + (paramCount++);

        var.setName(ast.newSimpleName(paramName));
        var.setType(createType(ast, scope, paramBinding));
        decl.parameters().add(var);
    }

    // Modifiers
    int modifiers = method.getModifiers();
    // Always make the new method public.  Even if this method overrides a
    // protected method, it might also need to implement an interface.
    decl.modifiers().add(ast.newModifier(ModifierKeyword.PUBLIC_KEYWORD));
    if (Modifier.isStrictfp(modifiers)) {
        decl.modifiers().add(ast.newModifier(Modifier.ModifierKeyword.STRICTFP_KEYWORD));
    }
    if (Modifier.isSynchronized(modifiers)) {
        decl.modifiers().add(ast.newModifier(Modifier.ModifierKeyword.SYNCHRONIZED_KEYWORD));
    }

    // Body
    Block block = ast.newBlock();
    decl.setBody(block);
    addAssertionError(block);

    // Add to type
    scopeBody.add(decl);
    generatedMethods.add(decl);
}

From source file:com.google.devtools.j2objc.util.ASTUtil.java

License:Apache License

@SuppressWarnings("unchecked")
public static List<Type> getTypeBounds(TypeParameter node) {
    return node.typeBounds();
}

From source file:com.google.googlejavaformat.java.JavaInputAstVisitor.java

License:Apache License

/** Visitor method for {@link TypeParameter}s. */
@Override//from   w  ww .j a  v  a 2s  .co  m
public boolean visit(TypeParameter node) {
    sync(node);
    builder.open(ZERO);
    visitAndBreakModifiers(node.modifiers(), Direction.HORIZONTAL, Optional.<BreakTag>absent());
    visit(node.getName());
    if (!node.typeBounds().isEmpty()) {
        builder.space();
        token("extends");
        builder.open(plusFour);
        builder.breakOp(" ");
        builder.open(plusFour);
        boolean first = true;
        for (Type typeBound : (List<Type>) node.typeBounds()) {
            if (!first) {
                builder.breakToFill(" ");
                token("&");
                builder.space();
            }
            typeBound.accept(this);
            first = false;
        }
        builder.close();
        builder.close();
    }
    builder.close();
    return false;
}

From source file:edu.uci.ics.sourcerer.extractor.ast.ReferenceExtractorVisitor.java

License:Open Source License

/**
 * This method writes:/*from  w  w w.  j  a  va  2s .  c  o m*/
 * <ul>
 *   <li>Parametrized by relation to <code>IRelationWriter</code>.</li>
 * </ul>
 */
@SuppressWarnings("unchecked")
@Override
public boolean visit(TypeParameter node) {
    // Write the parametrized by relation
    relationWriter.writeParametrizedBy(fqnStack.getFqn(), getTypeParam(node),
            fqnStack.getNextTypeParameterPos(), getLocation(node));

    accept(node.typeBounds());
    return false;
}

From source file:edu.uci.ics.sourcerer.extractor.ast.ReferenceExtractorVisitor.java

License:Open Source License

@SuppressWarnings("unchecked")
private String getTypeParam(TypeParameter typeParam) {
    StringBuilder builder = new StringBuilder();
    builder.append('<').append(typeParam.getName().getIdentifier());
    boolean first = true;
    for (Type bound : (List<Type>) typeParam.typeBounds()) {
        if (first) {
            first = false;//  ww w . j  ava 2 s .  com
            builder.append('+');
        } else {
            builder.append('&');
        }
        builder.append(getTypeFqn(bound));
    }
    builder.append('>');
    return builder.toString();
}

From source file:edu.uci.ics.sourcerer.tools.java.extractor.eclipse.ReferenceExtractorVisitor.java

License:Open Source License

/**
 * This method writes:// w w  w. j av a2  s . com
 * <ul>
 *   <li>Parametrized by relation to <code>IRelationWriter</code>.</li>
 * </ul>
 */
@Override
public boolean visit(TypeParameter node) {
    // Write the parametrized by relation
    relationWriter.writeRelation(Relation.PARAMETRIZED_BY, fqnStack.getFqn(), getTypeParam(node),
            createLocation(node));

    accept(node.typeBounds());
    return false;
}