View Javadoc
1   package io.extact.rms.application.domain;
2   
3   import static jakarta.persistence.AccessType.*;
4   
5   import jakarta.persistence.Access;
6   import jakarta.persistence.Entity;
7   import jakarta.persistence.GeneratedValue;
8   import jakarta.persistence.GenerationType;
9   import jakarta.persistence.Id;
10  
11  import org.apache.commons.lang3.builder.ToStringBuilder;
12  import org.apache.commons.lang3.builder.ToStringStyle;
13  
14  import lombok.AllArgsConstructor;
15  import lombok.Getter;
16  import lombok.NoArgsConstructor;
17  import lombok.Setter;
18  
19  import io.extact.rms.application.domain.constraint.ItemName;
20  import io.extact.rms.application.domain.constraint.RmsId;
21  import io.extact.rms.application.domain.constraint.SerialNo;
22  import io.extact.rms.application.domain.constraint.ValidationGroups.Update;
23  
24  @Access(FIELD)
25  @Entity
26  @Getter
27  @Setter
28  @NoArgsConstructor
29  @AllArgsConstructor(staticName = "of")
30  public class RentalItem implements Transformable, IdAccessable {
31  
32      /** id */
33      @Id
34      @GeneratedValue(strategy = GenerationType.IDENTITY)
35      @RmsId(groups = Update.class)
36      private Integer id;
37  
38      /** シリアル番号 */
39      @SerialNo
40      private String serialNo;
41  
42      /** 品名 */
43      @ItemName
44      private String itemName;
45  
46  
47      public static RentalItem ofTransient(String serialNo, String itemName) {
48          return of(null, serialNo, itemName);
49      }
50  
51      // ----------------------------------------------------- override methods
52  
53      @Override
54      public String toString() {
55          return ToStringBuilder.reflectionToString(this, ToStringStyle.SHORT_PREFIX_STYLE);
56      }
57  }