/** * Copy constructor. * * @param prototype the prototype */ private ConstructorImpl(final Constructor prototype) { javadoc = requireNonNull(prototype).getJavadoc().map(Copier::copy).orElse(null); imports = Copier.copy(prototype.getImports()); annotations = Copier.copy(prototype.getAnnotations()); generics = Copier.copy(prototype.getGenerics()); params = Copier.copy(prototype.getFields()); code = Copier.copy(prototype.getCode(), c -> c); modifiers = Copier.copy(prototype.getModifiers(), Modifier::copy, EnumSet.noneOf(Modifier.class)); exceptions = new LinkedHashSet<>(prototype.getExceptions()); }
private String fieldSeparator(Constructor model) { if (model.getFields().size() > 3) { return "," + nl() + tab() + tab(); } else return ", "; } }
/** * Copy constructor. * * @param prototype the prototype */ protected ConstructorImpl(final Constructor prototype) { javadoc = requireNonNull(prototype).getJavadoc().map(Copier::copy).orElse(null); annotations = Copier.copy(prototype.getAnnotations()); params = Copier.copy(prototype.getFields()); code = Copier.copy(prototype.getCode(), c -> c); modifiers = Copier.copy(prototype.getModifiers(), c -> c.copy(), EnumSet.noneOf(Modifier.class)); exceptions = new LinkedHashSet<>(prototype.getExceptions()); }
/** * Copy constructor. * * @param prototype the prototype */ private ConstructorImpl(final Constructor prototype) { javadoc = requireNonNull(prototype).getJavadoc().map(Copier::copy).orElse(null); imports = Copier.copy(prototype.getImports()); annotations = Copier.copy(prototype.getAnnotations()); generics = Copier.copy(prototype.getGenerics()); params = Copier.copy(prototype.getFields()); code = Copier.copy(prototype.getCode(), c -> c); modifiers = Copier.copy(prototype.getModifiers(), Modifier::copy, EnumSet.noneOf(Modifier.class)); exceptions = new LinkedHashSet<>(prototype.getExceptions()); }
@Override public Optional<String> transform(Generator gen, Constructor model) { requireNonNulls(gen, model); return Optional.of( ifelse(gen.on(model.getJavadoc()), s -> s + nl(), "") + gen.onEach(model.getModifiers()).collect(joinIfNotEmpty(" ", "", " ")) + renderName(gen, model) .orElseThrow(() -> new UnsupportedOperationException( "Could not find a nameable parent of constructor." )) + gen.onEach(model.getFields()).collect( Collectors.joining( fieldSeparator(model), (model.getFields().size() > 3) ? "(" + nl() + tab() + tab() : "(", ")" ) ) + " " + gen.onEach(model.getExceptions()).collect(joinIfNotEmpty(", ", "throws ", " ")) + block( model.getCode().stream().collect( Collectors.joining(nl()) ) ) ); }