1 package com.example.lede2;
\r
3 import android.util.Pair;
\r
5 import java.lang.reflect.Array;
\r
6 import java.util.ArrayList;
\r
7 import java.util.List;
\r
9 import javax.sql.StatementEvent;
\r
12 * Created by Brian on 3/5/2018.
\r
15 public class DatabaseSubtypeObject {
\r
17 //param and address params are the database column names
\r
18 //devices are the specific instances found on the database
\r
19 private int numParams;
\r
20 private int numAddresses;
\r
21 private int numAddressParams;
\r
22 private int numZigbeeParams;
\r
23 private int numZigbeeAddresses;
\r
24 private ArrayList<Pair <String, String>> params;
\r
25 //outer list = numOf addresses, inner list = num of params, inner pair = field name and value
\r
26 private ArrayList<ArrayList<Pair<String,String>>> addressParams;
\r
27 private ArrayList<ArrayList<Pair<String, String>>> zigbeeAddressParams;
\r
28 private List<String> devices;
\r
29 private String nextID;
\r
35 public DatabaseSubtypeObject(String name, String tag, int numAddresses, int numZigbeeAddresses){
\r
37 numAddressParams = 0;
\r
38 this.numAddresses = numAddresses;
\r
39 this.numZigbeeAddresses = numZigbeeAddresses;
\r
40 params = new ArrayList<Pair<String, String>>();
\r
41 addressParams = new ArrayList<>();
\r
42 zigbeeAddressParams = new ArrayList<>();
\r
43 devices = new ArrayList<String>();
\r
46 if(devices.isEmpty()){
\r
50 public void addDevice(String device){
\r
51 devices.add(device);
\r
54 public void addParam(Pair<String, String> param){
\r
55 if(!params.contains(param)){
\r
61 public void addAddressParam(int i, Pair<String, String> param){
\r
62 if(!addressParams.get(i).contains(param)){
\r
63 addressParams.get(i).add(param);
\r
69 public void deleteParam(String param){
\r
70 if(params.contains(param)){
\r
71 params.remove(param);
\r
75 public ArrayList<Pair<String,String>> getParams(){
\r
78 public ArrayList<ArrayList<Pair<String, String>>> getAddressParams(){
\r
79 return this.addressParams;
\r
81 public String getName(){
\r
84 public int getNumParams() {
\r
88 public int getNumAddressParams() {
\r
89 return numAddressParams;
\r
92 public List<String> getDevices() {
\r
95 public String getNextID(){
\r
99 //sets the field which is used to generate the next available id
\r
100 //needs to fix so it it doesn't rely on the first instance in the list
\r
101 public void setNextID(){
\r
103 ArrayList<String> ids = new ArrayList<>();
\r
104 if(devices.isEmpty()){
\r
108 if(devices.size() > 0 && devices.get(0) != null) {
\r
109 for (int i = 0; i < devices.size(); i++) {
\r
110 ids.add(devices.get(i).substring(2));
\r
114 boolean doesNotContain = true;
\r
116 //should you set boolean to false or break;
\r
117 while(doesNotContain) {
\r
118 Integer idValue = new Integer(count);
\r
119 if(ids.contains(idValue.toString())){
\r
124 doesNotContain = false;
\r
128 id = tag + String.valueOf(count);
\r
132 public void insertID(){
\r
133 devices.add(this.nextID);
\r
137 public void deleteDevice(String DeviceID){
\r
138 devices.remove(DeviceID);
\r
141 public void setNumAddressParams(int numParams){
\r
142 numAddressParams = numParams;
\r
144 public void setNumParams(int numParams){
\r
145 numParams = numParams;
\r
147 public void setNumZigbeeParams(int numParams){ this.numZigbeeParams = numParams; }
\r
148 public int getNumAddresses(){
\r
149 return this.numAddresses;
\r
151 public int getNumZigbeeAddresses(){ return this.numZigbeeAddresses; }
\r
152 public ArrayList<ArrayList<Pair<String, String>>> getZigbeeAddressParams(){return this.zigbeeAddressParams; }
\r