Adding last version of iotruntime and iotinstaller; preparing to extend IoTMaster...
[iot2.git] / iotjava / iotruntime / master / ObjectAddressInitHandler.java
1 package iotruntime.master;
2
3 // Java standard libraries
4 import java.util.ArrayList;
5 import java.util.HashMap;
6 import java.util.List;
7 import java.util.Map;
8
9 /** Class ObjectAddressInitHandler is a class that maintains
10  *  a data structure that preserves a collection information
11  *  for creation and re-initialization of driver object's IoTSet
12  *  that usually contains IoTDeviceAddress, IoTZigbeeAddress,
13  *  or IoTAddress. These are read from the database when we
14  *  instrument the fields for policy generation.
15  *  
16  *  +------------+-----------------------------+
17  *  | FIELD_NAME | ARRAYLIST OF arrFieldValues |
18  *  +------------+-----------------------------+
19  *  | XXXXXXXXXX | #1 | XXXXX                  |
20  *  |            | #2 | XXXXX                  |
21  *  |            | #3 | XXXXX                  |
22  *  |            | ...                         |
23  *  |            |                             |
24  *  |            |                             |
25  *  |            |                             |
26  *  +------------+-----------------------------+
27  *  | XXXXXXXXXX | #1 | XXXXX                  |
28  *  |            | #2 | XXXXX                  |
29  *  |            | #3 | XXXXX                  |
30  *  |            | ...                         |
31  *  |            |                             |
32  *  |            |                             |
33  *  |            |                             |
34  *  +------------+-----------------------------+
35  *
36  * @author      Rahmadi Trimananda <rahmadi.trimananda @ uci.edu>
37  * @version     1.0
38  * @since       2016-06-24
39  */
40 public final class ObjectAddressInitHandler {
41
42
43         /**
44          * ObjectInitHandler class properties
45          */
46         private Map<String, List<Object[]>> mapFieldToValuesList;
47         private boolean bVerbose;
48
49
50         /**
51          * Empty constructor
52          */
53         public ObjectAddressInitHandler(boolean _bVerbose) {
54
55                 mapFieldToValuesList = new HashMap<String, List<Object[]>>();
56                 bVerbose = _bVerbose;
57                 RuntimeOutput.print("ObjectAddressInitHandler: Creating a new ObjectAddressInitHandler object!", bVerbose);
58         }
59
60         /**
61          * Method addField()
62          * <p>
63          * Add a new field
64          *
65          * @param   strFieldAndObjectID         String field name + object ID
66          * @param   arrFieldValues                      Array field values object
67          * @return  void
68          */
69         public void addField(String strFieldAndObjectID, Object[] arrFieldValues) {
70
71
72                 // Add a new list if this is a new field+object ID
73                 if (!mapFieldToValuesList.containsKey(strFieldAndObjectID)) {
74                         mapFieldToValuesList.put(strFieldAndObjectID, new ArrayList<Object[]>());
75                 }
76                 List<Object[]> listField = mapFieldToValuesList.get(strFieldAndObjectID);
77                 listField.add(arrFieldValues);
78         }
79
80         /**
81          * Method getField()
82          * <p>
83          * Get list of fields
84          *
85          * @param   strFieldAndObjectID         String field name + object ID
86          * @return  void
87          */
88         public List<Object[]> getFields(String strFieldAndObjectID) {
89
90                 return mapFieldToValuesList.get(strFieldAndObjectID);
91         }
92
93 }