View Javadoc
1   package com.srv4pos.server.api.tax;
2   
3   import com.srv4pos.server.api.infrastructure.Constraints;
4   import com.srv4pos.server.api.infrastructure.SyncEntityInfo;
5   import com.srv4pos.server.api.infrastructure.journal.JournalDate;
6   import com.srv4pos.server.api.validationGroups.IdentifierValidationGroup;
7   import org.springframework.roo.addon.javabean.RooJavaBean;
8   import org.springframework.roo.addon.json.RooJson;
9   import org.springframework.roo.addon.tostring.RooToString;
10  
11  import javax.validation.constraints.Max;
12  import javax.validation.constraints.Min;
13  import javax.validation.constraints.NotNull;
14  import javax.validation.constraints.Pattern;
15  import javax.validation.constraints.Size;
16  import java.util.Date;
17  
18  
19  /**
20   * <p>User: Kirill, Date: 05.08.13 17:59</p>.
21   */
22  @RooJavaBean
23  @RooToString
24  @RooJson(deepSerialize = true)
25  public class TaxInfo implements SyncEntityInfo {
26  
27      /**
28       * List of fields for ordering.
29       */
30      //CHECKSTYLE:OFF Missing Javadoc comments.
31      public static enum Fields { IDENTIFIER, NAME, VAT }
32      //CHECKSTYLE:ON Missing a Javadoc comment.
33  
34      /**
35       * True if entity was deleted. Only possible if return diff
36       */
37      @NotNull
38      private boolean deleted = Boolean.FALSE;
39  
40      /**
41       * This field uniqly identifies entity. There is no decision what is it,
42       * only the requirement - it must be unique trough one seller
43       */
44      @NotNull(groups = IdentifierValidationGroup.class)
45      @Size(max = 50, min = 1)
46      @Pattern(regexp = Constraints.WINDOWS_FILENAME_REGEX)
47      private String identifier;
48  
49      /**
50       * Regular field.
51       */
52      @Max(100)
53      @Min(0)
54      private int vat;
55  
56      /**
57       * Regular field.
58       */
59      @NotNull
60      @Size(max = 32, min = 1)
61      private String name;
62  
63      /**
64       * Custom data concerned tax.
65       */
66      @Size(max = 65535)
67      private String custom;
68  
69      private Integer version;
70  
71      @JournalDate
72      private Date modified;
73  }