/** * Creates an {@link Import} using the default implementation and adds it to * this model. * * @param type the dependency to add * @return a reference to this * * @since 2.5 */ default T imports(final Type type) { return add(Import.of(type)); }
/** * Adds explicit imports for all {@link Type} references mentioned in the * specified {@link File}. * * @param file the file to add imports in */ @Override public void accept(File file) { findTypesIn(requireNonNull(file)).forEach( (s, t) -> file.add(Import.of(t)) ); }
public static String[] generateFieldsBody( TranslatorSupport<Table> support, File file, Supplier<Stream<? extends Column>> columnsSupplier) { file.add(Import.of(Stream.class)); // If there are no matching columns: if (columnsSupplier.get().noneMatch($ -> true)) { return new String[]{"return Stream.empty();"}; } else { final List<String> rows = new LinkedList<>(); rows.add("return Stream.of("); rows.add(indent(columnsSupplier.get() .filter(HasEnabled::isEnabled) .map(Column::getJavaName) .map(support.namer()::javaStaticFieldName) .map(field -> support.typeName() + "." + field) .collect(joining("," + nl())) )); rows.add(");"); return rows.toArray(new String[rows.size()]); } }
/** * Adds an {@link DefaultJavadocTag#SEE}-tag that references the specified * Java type. * * @param type the type to reference in the {@code see}-tag * @return a reference to this */ default T see(final Type type) { return add(DefaultJavadocTag.SEE.setValue("{@link " + Formatting.shortName(type.getTypeName()) + "}")) .add(Import.of(type)); }
/** * Creates a static {@link Import} using the default implementation and adds * it to this model. * * @param type the dependency to add * @param method name of the static member method * @return a reference to this * * @since 2.5 */ default T imports(final Type type, String method) { return add(Import.of(type).static_().setStaticMember(method)); }
public static String[] generateApplyResultSetBody( ReadFromResultSet readFromResultSet, TranslatorSupport<Table> support, File file, Supplier<Stream<? extends Column>> columnsSupplier) { file.add(Import.of(SQLException.class)); final List<String> rows = new LinkedList<>(); rows.add("return createEntity()"); final Stream.Builder<String> streamBuilder = Stream.builder(); final AtomicInteger position = new AtomicInteger(1); columnsSupplier.get() .filter(HasEnabled::isEnabled) .forEachOrdered(c -> streamBuilder.add(indent(".set" + support.namer().javaTypeName(c.getJavaName()) + "(\t " + readFromResultSet.readFromResultSet(file, c, position) + ")")) ); streamBuilder.add(indent(";")); streamBuilder.build().forEachOrdered(rows::add); return rows.toArray(new String[rows.size()]); }
file.add(Import.of(ResultSetUtil.class).static_().setStaticMember("*")); file.add(Import.of(SimpleType.create(c.getDatabaseType()))); sb.append("(").append(shortName(c.getDatabaseType())).append(") "); } else { if (isCastingRequired(c, getterName)) { file.add(Import.of(SimpleType.create(c.getDatabaseType()))); sb.append("(").append(shortName(c.getDatabaseType())).append(") ");
private Method hashCodeMethod(File file) { final Method method = Method.of("hashCode", int.class) .public_() .add(OVERRIDE) .add("int hash = 7;"); columns().forEachOrdered(c -> { final StringBuilder str = new StringBuilder(); str.append("hash = 31 * hash + "); final Type type = typeMappers.get(c).getJavaType(c); if (!usesOptional(c) && DefaultType.isPrimitive(type)) { str.append(DefaultType.wrapperFor(type).getSimpleName()); } else { str.append("Objects"); } str.append(".hashCode("); if (usesOptional(c)) { file.add(Import.of(OptionalUtil.class)); str.append("OptionalUtil.unwrap("); } str.append("get").append(getSupport().typeName(c)).append("()"); if (usesOptional(c)) str.append(')'); str.append(");"); method.add(str.toString()); }); method.add("return hash;"); return method; }
sqlAdapters.add(sqlAdapterType.getTypeName()); } else { file.add(Import.of(managerImplType)); file.add(Import.of(sqlAdapterType)); managerImpls.add(shortName(managerImplType.getTypeName())); sqlAdapters.add(shortName(sqlAdapterType.getTypeName())); file.add(Import.of(applicationType())); file.add(Import.of(applicationImplType()));
private AnnotationUsage withExecuteBefore(File file) { file.add(Import.of(State.class).static_().setStaticMember("RESOLVED")); return AnnotationUsage.of(ExecuteBefore.class).set(Value.ofReference("RESOLVED")); }
protected Method toStringMethod(File file) { file.add(Import.of(StringJoiner.class)); file.add(Import.of(Objects.class)); final Method m = Method.of("toString", String.class) .public_() .add(OVERRIDE) .add("final StringJoiner sj = new StringJoiner(\", \", \"{ \", \" }\");"); columns().forEachOrdered(col -> { final String getter; if (usesOptional(col)) { file.add(Import.of(OptionalUtil.class)); getter = "OptionalUtil.unwrap(get" + getSupport().typeName(col) + "())"; } else { getter = "get" + getSupport().typeName(col) + "()"; } m.add("sj.add(\"" + getSupport().variableName(col) + " = \" \t+ Objects.toString(" + getter + "));"); }); m.add("return \"" + getSupport().entityImplName() + " \" + sj.toString();"); return m; }
private Method generateCreateEntity(File file) { final Type entityImplType = getSupport().entityImplType(); file.add(Import.of(entityImplType)); return Method.of("createEntity", entityImplType).protected_() .add("return new " + getSupport().entityImplName() + "();"); }
.map(Method::getName) .noneMatch(CREATE_HELPERS_METHOD_NAME::equals)) { file.add(Import.of(Project.class)); clazz.add(createHelpers);
file.add(Import.of(getSupport().managerType()));
file.add(Import.of(OptionalUtil.class));
final TranslatorSupport<Table> fuSupport = fu.getForeignEmt().getSupport(); file.add(Import.of(fuSupport.entityType())); final String shortEntityName = getSupport().entityName(); file.add(Import.of(entityType)); getSupport().typeName(col) + "())")); file.add(Import.of(OptionalUtil.class)); } else { fieldParams.add(Value.ofReference( file.add(Import.of(TypeMapper.class)); fieldParams.add(Value.ofReference("TypeMapper.primitive()")); } else { file.add(Import.of(SimpleType.create(typeMapper))); fieldParams.add(Value.ofReference("new " + shortName(typeMapper) + "()")); file.add(Import.of(TypeMapper.class));