// Generated by delombok at Sun Nov 06 21:28:46 CET 2022

import java.util.List;

class BuilderComplex {
	private static <T extends Number> void testVoidWithGenerics(T number, int arg2, String arg3, BuilderComplex selfRef) {
	}


	@java.lang.SuppressWarnings("all")
	public static class VoidBuilder<T extends Number> {
		@java.lang.SuppressWarnings("all")
		private T number;
		@java.lang.SuppressWarnings("all")
		private int arg2;
		@java.lang.SuppressWarnings("all")
		private String arg3;
		@java.lang.SuppressWarnings("all")
		private BuilderComplex selfRef;

		@java.lang.SuppressWarnings("all")
		VoidBuilder() {
		}

		/**
		 * @return {@code this}.
		 */
		@java.lang.SuppressWarnings("all")
		public BuilderComplex.VoidBuilder<T> number(final T number) {
			this.number = number;
			return this;
		}

		/**
		 * @return {@code this}.
		 */
		@java.lang.SuppressWarnings("all")
		public BuilderComplex.VoidBuilder<T> arg2(final int arg2) {
			this.arg2 = arg2;
			return this;
		}

		/**
		 * @return {@code this}.
		 */
		@java.lang.SuppressWarnings("all")
		public BuilderComplex.VoidBuilder<T> arg3(final String arg3) {
			this.arg3 = arg3;
			return this;
		}

		/**
		 * @return {@code this}.
		 */
		@java.lang.SuppressWarnings("all")
		public BuilderComplex.VoidBuilder<T> selfRef(final BuilderComplex selfRef) {
			this.selfRef = selfRef;
			return this;
		}

		@java.lang.SuppressWarnings("all")
		public void execute() {
			BuilderComplex.<T>testVoidWithGenerics(this.number, this.arg2, this.arg3, this.selfRef);
		}

		@java.lang.Override
		@java.lang.SuppressWarnings("all")
		public java.lang.String toString() {
			return "BuilderComplex.VoidBuilder(number=" + this.number + ", arg2=" + this.arg2 + ", arg3=" + this.arg3 + ", selfRef=" + this.selfRef + ")";
		}
	}

	@java.lang.SuppressWarnings("all")
	public static <T extends Number> BuilderComplex.VoidBuilder<T> builder() {
		return new BuilderComplex.VoidBuilder<T>();
	}
}
