Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @Builder
- XYZClientWrapper{
- String name;
- String domain;
- XYZClient client;
- }
- @Builder
- public class MyClass {
- private String myField;
- private final String excludeThisField = "bar";
- }
- package com.something;
- import lombok.AccessLevel;
- import lombok.AllArgsConstructor;
- import lombok.Builder;
- import lombok.Data;
- import lombok.Getter;
- import lombok.NoArgsConstructor;
- import lombok.Setter;
- import javax.persistence.AttributeOverride;
- import javax.persistence.AttributeOverrides;
- import javax.persistence.Column;
- import javax.persistence.Embedded;
- import javax.persistence.Entity;
- import java.time.ZonedDateTime;
- @Data
- @Entity
- @Builder
- @AllArgsConstructor
- @NoArgsConstructor
- public class MyClass{
- //The builder will generate a method for this property for us.
- private String anotherProperty;
- @Embedded
- @AttributeOverrides({
- @AttributeOverride(name = "localDateTime", column = @Column(name = "some_date_local_date_time")),
- @AttributeOverride(name = "zoneId", column = @Column(name = "some__date_zone_id"))
- })
- @Getter(AccessLevel.PRIVATE)
- @Setter(AccessLevel.PRIVATE)
- private ZonedDateTimeEmbeddable someDateInternal;
- public ZonedDateTime getSomeDate() {
- return someDateInternal.toZonedDateTime();
- }
- public void setSomeDate(ZonedDateTime someDate) {
- someDateInternal = new ZonedDateTimeEmbeddable(someDate);
- }
- public static class MyClassBuilder {
- //Prevent direct access to the internal private field by pre-creating builder method with private access.
- private MyClassBuilder shipmentDateInternal(ZonedDateTimeEmbeddable zonedDateTimeEmbeddable) {
- return this;
- }
- //Add a builder method because we don't have a field for this Type
- public MyClassBuilder someDate(ZonedDateTime someDate) {
- someDateInternal = new ZonedDateTimeEmbeddable(someDate);
- return this;
- }
- }
- }
- @Builder
- XYZClientWrapper{
- String name;
- String domain;
- XYZClient client;
- public static class XYZClientWrapperBuilder {
- private XYZClientWrapperBuilder client(XYZClient client) { return this; }
- }
- }
Add Comment
Please, Sign In to add comment