//version 8: class WithOnClass1 { boolean isNone; boolean isPublic; WithOnClass1(boolean isNone, boolean isPublic) { } /** * @return a clone of this object, except with this updated property (returns {@code this} if an identical value is passed). */ @java.lang.SuppressWarnings("all") public WithOnClass1 withPublic(final boolean isPublic) { return this.isPublic == isPublic ? this : new WithOnClass1(this.isNone, isPublic); } } class WithOnClass2 { boolean isNone; boolean isProtected; boolean isPackage; WithOnClass2(boolean isNone, boolean isProtected, boolean isPackage) { } /** * @return a clone of this object, except with this updated property (returns {@code this} if an identical value is passed). */ @java.lang.SuppressWarnings("all") protected WithOnClass2 withProtected(final boolean isProtected) { return this.isProtected == isProtected ? this : new WithOnClass2(this.isNone, isProtected, this.isPackage); } /** * @return a clone of this object, except with this updated property (returns {@code this} if an identical value is passed). */ @java.lang.SuppressWarnings("all") WithOnClass2 withPackage(final boolean isPackage) { return this.isPackage == isPackage ? this : new WithOnClass2(this.isNone, this.isProtected, isPackage); } } class WithOnClass3 { String couldBeNull; @lombok.NonNull String nonNull; WithOnClass3(String couldBeNull, String nonNull) { } /** * @return a clone of this object, except with this updated property (returns {@code this} if an identical value is passed). */ @java.lang.SuppressWarnings("all") public WithOnClass3 withCouldBeNull(final String couldBeNull) { return this.couldBeNull == couldBeNull ? this : new WithOnClass3(couldBeNull, this.nonNull); } /** * @return a clone of this object, except with this updated property (returns {@code this} if an identical value is passed). */ @java.lang.SuppressWarnings("all") public WithOnClass3 withNonNull(@lombok.NonNull final String nonNull) { if (nonNull == null) { throw new java.lang.NullPointerException("nonNull is marked non-null but is null"); } return this.nonNull == nonNull ? this : new WithOnClass3(this.couldBeNull, nonNull); } } class WithOnClass4 { final int fX = 10; final int fY; WithOnClass4(int y) { this.fY = y; } /** * @return a clone of this object, except with this updated property (returns {@code this} if an identical value is passed). */ @java.lang.SuppressWarnings("all") public WithOnClass4 withY(final int fY) { return this.fY == fY ? this : new WithOnClass4(fY); } }