/** * Returns a parameterized type with the provided type name and type arguments. * * @param typeName the type name (simple or qualified name) * @param typeArguments the type arguments * @return a new parameterized type */ public Type genericType(String typeName, Type... typeArguments) { final Type type = type(typeName); if (typeArguments.length == 0) { return type; } final ParameterizedType parameterizedType = ast.newParameterizedType(type); Collections.addAll(typeArguments(parameterizedType), typeArguments); return parameterizedType; }
/** * Create a parameterized type. The type itself is given as a name, while the parameter type is an actual type in * this variation. * * @param type fully qualified type name * @param param type parameter * @return type */ public Type createParameterizedType(String type, Type param) { ParameterizedType ptype = getAST().newParameterizedType(createType(type)); ptype.typeArguments().add(param); return ptype; }
@SuppressWarnings("unchecked") private static ParameterizedType parametrizeSimple(final org.eclipse.jdt.core.dom.Type original, final String... parameters) { final AST ast = original.getAST(); final ParameterizedType result = ast.newParameterizedType(original); for (final String name : parameters) { final SimpleType type = ast.newSimpleType(ast.newSimpleName(name)); result.typeArguments().add(type); } return result; }
/** * Create a parameterized type. * * @param type fully qualified type name * @param param fully qualified parameter type name * @return type */ public Type createParameterizedType(String type, String param) { ParameterizedType ptype = getAST().newParameterizedType(createType(type)); ptype.typeArguments().add(createType(param)); return ptype; }
@SuppressWarnings("unchecked") private Expression aggregate(final AST ast, final Expression publisher, final Expression subscriber) { // new AggregatePublishSubscriber<>(publish, subscribe) final SimpleType type = ast.newSimpleType(ast.newName("de.dentrassi.asyncapi.util.AggregatePublishSubscriber")); final ParameterizedType pt = ast.newParameterizedType(type); final ClassInstanceCreation cic = ast.newClassInstanceCreation(); cic.setType(pt); cic.arguments().add(publisher); cic.arguments().add(subscriber); return cic; }
/** * Returns the substitute type. * * @param b The builder. * @param origType The original type * @param originalExpr The original expression * @return the substitute type. */ @Override protected Type substituteType(final ASTBuilder b, final Type origType, ASTNode originalExpr) { if (origType.isParameterizedType()) { return null; } final TypeNameDecider typeNameDecider = new TypeNameDecider(originalExpr); final ParameterizedType parameterizedType = b.getAST().newParameterizedType(b.copy(origType)); final List<Type> typeArgs = typeArguments(parameterizedType); typeArgs.clear(); typeArgs.add(b.toType(keyType, typeNameDecider)); typeArgs.add(b.toType(valueType, typeNameDecider)); return parameterizedType; }
private Type createEnclosingType(final AST ast) throws JavaModelException { Assert.isNotNull(ast); final ITypeParameter[] parameters= fType.getDeclaringType().getTypeParameters(); final Type type= ASTNodeFactory.newType(ast, fType.getDeclaringType().getTypeQualifiedName('.')); if (parameters.length > 0) { final ParameterizedType parameterized= ast.newParameterizedType(type); for (int index= 0; index < parameters.length; index++) parameterized.typeArguments().add(ast.newSimpleType(ast.newSimpleName(parameters[index].getElementName()))); return parameterized; } return type; }
private Type createEnclosingType(final AST ast) throws JavaModelException { Assert.isNotNull(ast); final ITypeParameter[] parameters= fType.getDeclaringType().getTypeParameters(); final Type type= ASTNodeFactory.newType(ast, fType.getDeclaringType().getTypeQualifiedName('.')); if (parameters.length > 0) { final ParameterizedType parameterized= ast.newParameterizedType(type); for (int index= 0; index < parameters.length; index++) parameterized.typeArguments().add(ast.newSimpleType(ast.newSimpleName(parameters[index].getElementName()))); return parameterized; } return type; }
/** * Returns the substitute type. * * @param b The builder. * @param origType The original type * @param originalExpr The original expression * @return the substitute type. */ @Override protected Type substituteType(final ASTBuilder b, final Type origType, ASTNode originalExpr) { if (origType.isParameterizedType()) { return null; } final TypeNameDecider typeNameDecider = new TypeNameDecider(originalExpr); final ParameterizedType parameterizedType = b.getAST().newParameterizedType(b.copy(origType)); typeArguments(parameterizedType).clear(); typeArguments(parameterizedType).add(b.toType(elementType, typeNameDecider)); return parameterizedType; }
private Type createEnclosingType(final AST ast) throws JavaModelException { Assert.isNotNull(ast); final ITypeParameter[] parameters= fType.getDeclaringType().getTypeParameters(); final Type type= ASTNodeFactory.newType(ast, JavaModelUtil.getTypeQualifiedName(fType.getDeclaringType())); if (parameters.length > 0) { final ParameterizedType parameterized= ast.newParameterizedType(type); for (int index= 0; index < parameters.length; index++) parameterized.typeArguments().add(ast.newSimpleType(ast.newSimpleName(parameters[index].getElementName()))); return parameterized; } return type; }
@SuppressWarnings("unchecked") private static Type wrapParameterizedIfRequired(TypeDeclaration template, Type type) { AST ast = template.getAST(); SimpleName sn = ast.newSimpleName(template.getName().getIdentifier()); if (type == null) { type = ast.newSimpleType(sn); } else { type = ast.newQualifiedType(type, sn); } if (template.typeParameters().isEmpty()) { return type; } ParameterizedType parameterizedType = ast.newParameterizedType(type); for (int i = 0; i < template.typeParameters().size(); i++) { parameterizedType.typeArguments().add(ast.newWildcardType()); } return parameterizedType; }
private ASTNode getNewQualifiedNameNode(ITypeBinding[] parameters, Name name) { final AST ast= name.getAST(); boolean raw= false; final ITypeBinding binding= name.resolveTypeBinding(); if (binding != null && binding.isRawType()) raw= true; if (parameters != null && parameters.length > 0 && !raw) { final ParameterizedType type= ast.newParameterizedType(ast.newSimpleType(ast.newName(fQualifiedTypeName))); for (int index= 0; index < parameters.length; index++) type.typeArguments().add(ast.newSimpleType(ast.newSimpleName(parameters[index].getName()))); return type; } return ast.newName(fQualifiedTypeName); }
private ASTNode getNewQualifiedNameNode(ITypeBinding[] parameters, Name name) { final AST ast= name.getAST(); boolean raw= false; final ITypeBinding binding= name.resolveTypeBinding(); if (binding != null && binding.isRawType()) raw= true; if (parameters != null && parameters.length > 0 && !raw) { final ParameterizedType type= ast.newParameterizedType(ast.newSimpleType(ast.newName(fQualifiedTypeName))); for (int index= 0; index < parameters.length; index++) type.typeArguments().add(ast.newSimpleType(ast.newSimpleName(parameters[index].getName()))); return type; } return ast.newName(fQualifiedTypeName); }
private ASTNode getNewQualifiedNameNode(ITypeBinding[] parameters, Name name) { final AST ast= name.getAST(); boolean raw= false; final ITypeBinding binding= name.resolveTypeBinding(); if (binding != null && binding.isRawType()) raw= true; if (parameters != null && parameters.length > 0 && !raw) { final ParameterizedType type= ast.newParameterizedType(ast.newSimpleType(ast.newName(fQualifiedTypeName))); for (int index= 0; index < parameters.length; index++) type.typeArguments().add(ast.newSimpleType(ast.newSimpleName(parameters[index].getName()))); return type; } return ast.newName(fQualifiedTypeName); }
private ASTNode getNewUnqualifiedTypeNode(ITypeBinding[] parameters, Name name) { final AST ast= name.getAST(); boolean raw= false; final ITypeBinding binding= name.resolveTypeBinding(); if (binding != null && binding.isRawType()) raw= true; if (parameters != null && parameters.length > 0 && !raw) { final ParameterizedType type= ast.newParameterizedType(ast.newSimpleType(ast.newSimpleName(fType.getElementName()))); for (int index= 0; index < parameters.length; index++) type.typeArguments().add(ast.newSimpleType(ast.newSimpleName(parameters[index].getName()))); return type; } return ast.newSimpleType(ast.newSimpleName(fType.getElementName())); }
private ASTNode getNewUnqualifiedTypeNode(ITypeBinding[] parameters, Name name) { final AST ast= name.getAST(); boolean raw= false; final ITypeBinding binding= name.resolveTypeBinding(); if (binding != null && binding.isRawType()) raw= true; if (parameters != null && parameters.length > 0 && !raw) { final ParameterizedType type= ast.newParameterizedType(ast.newSimpleType(ast.newSimpleName(fType.getElementName()))); for (int index= 0; index < parameters.length; index++) type.typeArguments().add(ast.newSimpleType(ast.newSimpleName(parameters[index].getName()))); return type; } return ast.newSimpleType(ast.newSimpleName(fType.getElementName())); }
private ASTNode getNewUnqualifiedTypeNode(ITypeBinding[] parameters, Name name) { final AST ast= name.getAST(); boolean raw= false; final ITypeBinding binding= name.resolveTypeBinding(); if (binding != null && binding.isRawType()) raw= true; if (parameters != null && parameters.length > 0 && !raw) { final ParameterizedType type= ast.newParameterizedType(ast.newSimpleType(ast.newSimpleName(fType.getElementName()))); for (int index= 0; index < parameters.length; index++) type.typeArguments().add(ast.newSimpleType(ast.newSimpleName(parameters[index].getName()))); return type; } return ast.newSimpleType(ast.newSimpleName(fType.getElementName())); }
private ASTNode createNewClassInstanceCreation(CompilationUnitRewrite rewrite, ITypeBinding[] parameters) { AST ast= fAnonymousInnerClassNode.getAST(); ClassInstanceCreation newClassCreation= ast.newClassInstanceCreation(); newClassCreation.setAnonymousClassDeclaration(null); Type type= null; SimpleName newNameNode= ast.newSimpleName(fClassName); if (parameters.length > 0) { final ParameterizedType parameterized= ast.newParameterizedType(ast.newSimpleType(newNameNode)); for (int index= 0; index < parameters.length; index++) parameterized.typeArguments().add(ast.newSimpleType(ast.newSimpleName(parameters[index].getName()))); type= parameterized; } else type= ast.newSimpleType(newNameNode); newClassCreation.setType(type); copyArguments(rewrite, newClassCreation); addArgumentsForLocalsUsedInInnerClass(newClassCreation); addLinkedPosition(KEY_TYPE_NAME, newNameNode, rewrite.getASTRewrite(), true); return newClassCreation; }
private ASTNode createNewClassInstanceCreation(CompilationUnitRewrite rewrite, ITypeBinding[] parameters) { AST ast= fAnonymousInnerClassNode.getAST(); ClassInstanceCreation newClassCreation= ast.newClassInstanceCreation(); newClassCreation.setAnonymousClassDeclaration(null); Type type= null; SimpleName newNameNode= ast.newSimpleName(fClassName); if (parameters.length > 0) { final ParameterizedType parameterized= ast.newParameterizedType(ast.newSimpleType(newNameNode)); for (int index= 0; index < parameters.length; index++) parameterized.typeArguments().add(ast.newSimpleType(ast.newSimpleName(parameters[index].getName()))); type= parameterized; } else type= ast.newSimpleType(newNameNode); newClassCreation.setType(type); copyArguments(rewrite, newClassCreation); addArgumentsForLocalsUsedInInnerClass(rewrite, newClassCreation); addLinkedPosition(KEY_TYPE_NAME, newNameNode, rewrite.getASTRewrite(), true); return newClassCreation; }
private ASTNode createNewClassInstanceCreation(CompilationUnitRewrite rewrite, ITypeBinding[] parameters) { AST ast= fAnonymousInnerClassNode.getAST(); ClassInstanceCreation newClassCreation= ast.newClassInstanceCreation(); newClassCreation.setAnonymousClassDeclaration(null); Type type= null; SimpleName newNameNode= ast.newSimpleName(fClassName); if (parameters.length > 0) { final ParameterizedType parameterized= ast.newParameterizedType(ast.newSimpleType(newNameNode)); for (int index= 0; index < parameters.length; index++) parameterized.typeArguments().add(ast.newSimpleType(ast.newSimpleName(parameters[index].getName()))); type= parameterized; } else type= ast.newSimpleType(newNameNode); newClassCreation.setType(type); copyArguments(rewrite, newClassCreation); addArgumentsForLocalsUsedInInnerClass(newClassCreation); addLinkedPosition(KEY_TYPE_NAME, newNameNode, rewrite.getASTRewrite(), true); return newClassCreation; }