private NamedType convertToRawType(DeclaredType type) { assert type != null; Element element = type.asElement(); if (element == null) { return null; } switch (element.getKind()) { case CLASS: case INTERFACE: case ENUM: case ANNOTATION_TYPE: { Name name = asName(((TypeElement) element).getQualifiedName()); return factory.newNamedType(name); } default: throw new AssertionError(type); } }
/** * Converts the type variable. * @param type the target type variable * @return the corresponded type * @throws IllegalArgumentException if the parameter is {@code null} */ public NamedType convert(TypeVariable type) { if (type == null) { throw new IllegalArgumentException("type must not be null"); //$NON-NLS-1$ } SimpleName name = asSimpleName(type.asElement().getSimpleName()); return factory.newNamedType(name); }
@Override public DocElement visitNamedType(IrDocNamedType elem, Void context) { Name name = (Name) elem.getName().accept(this, null); return factory.newNamedType(name); }
@Override public Type visitNamedType(IrDocNamedType elem, Mapper context) { Name name = (Name) elem.getName().accept(context, null); return context.factory.newNamedType(name); }
/** * Creates a parameterized about operator element. * @param environment current environment * @param typeParameters target type parameter elements * @param rawNodeType parameterization target * @param imports import builder * @return generated syntax model * @throws IllegalArgumentException if some parameters were {@code null} */ public static Type toParameterizedType( CompileEnvironment environment, List<? extends TypeParameterElement> typeParameters, Type rawNodeType, ImportBuilder imports) { Objects.requireNonNull(environment, "environment must not be null"); //$NON-NLS-1$ Objects.requireNonNull(typeParameters, "typeParameters must not be null"); //$NON-NLS-1$ Objects.requireNonNull(rawNodeType, "rawNodeType must not be null"); //$NON-NLS-1$ Objects.requireNonNull(imports, "imports must not be null"); //$NON-NLS-1$ if (typeParameters.isEmpty()) { return rawNodeType; } ModelFactory factory = Models.getModelFactory(); List<Type> typeArgs = new ArrayList<>(); for (TypeParameterElement typeParameter : typeParameters) { typeArgs.add(factory.newNamedType(factory.newSimpleName(typeParameter.getSimpleName().toString()))); } return factory.newParameterizedType(rawNodeType, typeArgs); }
private MethodDeclaration createReferenceMapKeySetMethod(PropertyReferenceDeclaration reference) { return f.newMethodDeclaration( null, new AttributeBuilder(f) .annotation(context.resolve(Override.class)) .Public() .toAttributes(), f.newParameterizedType(context.resolve(Set.class), context.resolve(String.class)), f.newSimpleName("keySet"), //$NON-NLS-1$ Arrays.asList(), Arrays.asList(new TypeBuilder(f, f.newNamedType(context.getTypeName())) .field(getKeysFieldName(reference)) .toReturnStatement())); }
private MethodDeclaration createReferenceListGetMethod(PropertyReferenceDeclaration reference) { SimpleName index = f.newSimpleName("_i"); //$NON-NLS-1$ List<Statement> cases = new ArrayList<>(); int caseIndex = 0; for (PropertySymbol ref : reference.getReference().getAllReferences()) { PropertyDeclaration decl = ref.findDeclaration(); assert decl != null; cases.add(f.newSwitchCaseLabel(Models.toLiteral(f, caseIndex++))); cases.add(new TypeBuilder(f, f.newNamedType(context.getTypeName())) .dotThis() .method(context.getOptionGetterName(decl)) .toReturnStatement()); } cases.add(f.newSwitchDefaultLabel()); cases.add(new TypeBuilder(f, context.resolve(IndexOutOfBoundsException.class)) .newObject() .toThrowStatement()); return f.newMethodDeclaration( null, new AttributeBuilder(f) .annotation(context.resolve(Override.class)) .Public() .toAttributes(), context.getElementType(reference), f.newSimpleName("get"), //$NON-NLS-1$ Arrays.asList(f.newFormalParameterDeclaration(context.resolve(int.class), index)), Arrays.asList(f.newSwitchStatement(index, cases))); }
assert decl != null; cases.add(f.newSwitchCaseLabel(Models.toLiteral(f, k))); cases.add(new TypeBuilder(f, f.newNamedType(context.getTypeName())) .dotThis() .method(context.getOptionGetterName(decl))
.toLocalVariableDeclaration(context.resolve(CsvParser.class), parser)); statements.add(new TypeBuilder(f, f.newNamedType(f.newSimpleName(NAME_READER))) .newObject(parser) .toReturnStatement());
.toLocalVariableDeclaration(context.resolve(CsvEmitter.class), emitter)); statements.add(new TypeBuilder(f, f.newNamedType(f.newSimpleName(NAME_WRITER))) .newObject(emitter) .toReturnStatement());
.toLocalVariableDeclaration(context.resolve(RecordEmitter.class), emitter)); statements.add(new TypeBuilder(f, f.newNamedType(f.newSimpleName(NAME_WRITER))) .newObject(emitter) .toReturnStatement());
.toLocalVariableDeclaration(context.resolve(RecordParser.class), parser)); statements.add(new TypeBuilder(f, f.newNamedType(f.newSimpleName(NAME_READER))) .newObject(parser) .toReturnStatement());
.method(NAME_CREATE_VECTOR, columnNames) .toLocalVariableDeclaration(context.resolve(int[].class), vector)); statements.add(new TypeBuilder(f, f.newNamedType(f.newSimpleName(NAME_RESULT_SET_SUPPORT))) .newObject(resultSet, vector) .toReturnStatement());
.method(NAME_CREATE_VECTOR, columnNames) .toLocalVariableDeclaration(context.resolve(int[].class), vector)); statements.add(new TypeBuilder(f, f.newNamedType(f.newSimpleName(NAME_PREPARED_STATEMENT_SUPPORT))) .newObject(preparedStatement, vector) .toReturnStatement());
.toLocalVariableDeclaration(context.resolve(CsvEmitter.class), emitter)); statements.add(new TypeBuilder(f, f.newNamedType(f.newSimpleName(NAME_WRITER))) .newObject(emitter) .toReturnStatement());
.toLocalVariableDeclaration(context.resolve(LineOutput.class), emitter)); statements.add(new TypeBuilder(f, f.newNamedType(f.newSimpleName(NAME_WRITER))) .newObject(emitter) .toReturnStatement());
statements.add(new TypeBuilder(f, f.newNamedType(f.newSimpleName(NAME_WRITER))) .newObject(emitter) .toReturnStatement());
.toExpression()); statements.add(new TypeBuilder(f, f.newNamedType(f.newSimpleName(NAME_READER))) .newObject(arguments) .toReturnStatement());
.toLocalVariableDeclaration(context.resolve(CsvParser.class), parser)); statements.add(new TypeBuilder(f, f.newNamedType(f.newSimpleName(NAME_READER))) .newObject(parser) .toReturnStatement());
.toLocalVariableDeclaration(context.resolve(LineInput.class), parser)); statements.add(new TypeBuilder(f, f.newNamedType(f.newSimpleName(NAME_READER))) .newObject(parser) .toReturnStatement());