View Javadoc
1   package com.srv4pos.server.api.sale;
2   
3   import flexjson.JSONDeserializer;
4   import flexjson.transformer.DateTransformer;
5   import org.springframework.roo.addon.javabean.RooJavaBean;
6   import org.springframework.roo.addon.json.RooJson;
7   import org.springframework.roo.addon.tostring.RooToString;
8   
9   import javax.validation.constraints.Min;
10  import javax.validation.constraints.NotNull;
11  import java.util.Date;
12  import java.util.Map;
13  
14  @RooJavaBean
15  @RooToString
16  @RooJson(deepSerialize = true, fromJsonMethod = "")
17  public class SaleStatsInfo {
18  
19      /**
20       * Total stats by sales brutto.
21       */
22      @Min(0)
23      private long total;
24  
25      /**
26       * Total amount of sales.
27       */
28      @Min(0)
29      private long amountOfSales;
30  
31      /**
32       * Total amount of sold products.
33       */
34      @Min(0)
35      private double amountOfProducts;
36  
37      /**
38       * Date-to-brutto stats grouped by some period (i.e. 'day' or 'hour').
39       */
40      @NotNull
41      private Map<Date, Long> bruttoStats;
42  
43      /**
44       * How sales brutto stats is grouped.
45       */
46      @NotNull
47      private String dateGroupingUnit;
48  
49      // auto generating of this method disabled since we have to do a parse given date format
50      public static SaleStatsInfo fromJsonToSaleStatsInfo(String json) {
51          return new JSONDeserializer<SaleStatsInfo>()
52                  .use(null, SaleStatsInfo.class)
53                  .use(new DateTransformer("yyyy-MM-dd'T'HH:mm:ss.SSSZ"), "bruttoStats.keys")
54                  .deserialize(json);
55      }
56  }