View Javadoc
1   package com.srv4pos.server.api.activation;
2   import com.srv4pos.server.api.infrastructure.Info;
3   import org.springframework.roo.addon.javabean.RooJavaBean;
4   import org.springframework.roo.addon.json.RooJson;
5   import org.springframework.roo.addon.tostring.RooToString;
6   
7   import javax.validation.constraints.NotNull;
8   import javax.validation.constraints.Size;
9   import java.util.Date;
10  import java.util.HashMap;
11  import java.util.Map;
12  
13  /**
14   * This entity provides info about android device.
15   * <p>User: Kirill, Date: 05.08.13 17:59</p>
16   */
17  
18  @RooJavaBean
19  @RooToString
20  @RooJson(deepSerialize = true)
21  public class InstallationInfo implements Info {
22  
23      /**
24       * Unique number of every Device.
25       */
26      @NotNull
27      @Size(max = 17, min = 1)
28      private String deviceId;
29  
30      /**
31       * Information about the device. For instance for Android it can be taken
32       * from <a href="http://developer.android.com/reference/android/os/Build.html">android.os.Build</a>
33       */
34      @NotNull
35      private Map<String, String> buildInfo = new HashMap<String, String>();
36  
37      /**
38       * A unique identifier of the software, but not it's version. For instance for Android it
39       * can be <a href="http://developer.android.com/reference/android/content/Context.html#getPackageName%28%29">getPackageName()</a>
40       */
41      @NotNull
42      @Size(min = 1, max = 64)
43      private String applicationPackage;
44  
45      /**
46       * An identifier of the device on Google Cloud Message service.
47       */
48      @Size(min = 1)
49      private String gcmRegistrationId;
50  
51      /**
52       * Business identifier for installation entities. It's read only field, ignored when input.
53       */
54      @Size(max = 25)
55      private String productionNumber;
56  
57      /**
58       * It's read only field, ignored when input.
59       */
60      private Date registrationDate;
61  
62      /**
63       * It's read-only field, ignored when input.
64       */
65      private Date gcmUnsubscribeDate;
66  
67      public InstallationCreationInfo toInstallationCreationInfo() {
68          InstallationCreationInfo installationCreationInfo = new InstallationCreationInfo();
69  
70          installationCreationInfo.setGcmRegistrationId(gcmRegistrationId);
71          installationCreationInfo.setBuildInfo(buildInfo);
72          installationCreationInfo.setDeviceId(deviceId);
73  
74          return installationCreationInfo;
75      }
76  }