View Javadoc
1   package com.srv4pos.server.api.activation;
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 org.springframework.roo.addon.javabean.RooJavaBean;
7   import org.springframework.roo.addon.json.RooJson;
8   import org.springframework.roo.addon.tostring.RooToString;
9   
10  import javax.validation.constraints.NotNull;
11  import javax.validation.constraints.Pattern;
12  import javax.validation.constraints.Size;
13  import java.util.Date;
14  
15  /**
16   * Represents server-side entity available for admin.
17   *
18   * Identified by seller and cashRegisterName
19   * <p>User: Kirill, Date: 05.08.13 17:59</p>
20   */
21  @RooJavaBean
22  @RooToString
23  @RooJson(deepSerialize = true)
24  public class RegistrationInfo implements SyncEntityInfo {
25  
26      /**
27       * List of fields for ordering.
28       */
29      public static enum Fields { CASH_REGISTER_NAME, CREATION_DATE }
30  
31      /**
32       * Described in swedish regulations as "cash register designation".
33       * See <a href="https://redmine.produktpoolen.se/projects/mobilkassan-android/wiki/Activation_server">wiki</a> for more info.
34       */
35      @NotNull
36      @Size(max = 16)
37      @Pattern(regexp = Constraints.CASH_REGISTER_NAME_REGEX)
38      private String cashRegisterName;
39  
40      /**
41       * Country where seller with given {@link #corporateId} is registered.
42       */
43      @NotNull
44      @Size(max = 2, min = 2)
45      private String country;
46  
47      /**
48       * Corporate identity number.
49       */
50      @NotNull
51      @Size(max = 96)
52      @Pattern(regexp = Constraints.WINDOWS_FILENAME_REGEX)
53      private String corporateId;
54  
55      /**
56       * Id of POS application instance installed on Device.
57       */
58      private String productionNumber;
59  
60      private Integer version;
61  
62      private boolean deleted;
63  
64      @JournalDate
65      private Date modified;
66  
67      public String getIdentifier() {
68          return cashRegisterName;
69      }
70  }