mirror of
https://repository.entgra.net/community/device-mgt-core.git
synced 2025-10-06 02:01:45 +00:00
Adding the changes for device search
This commit is contained in:
parent
e4b400a5e7
commit
e2d67fc92c
@ -34,7 +34,9 @@ import org.wso2.carbon.device.mgt.core.search.mgt.impl.Utils;
|
|||||||
|
|
||||||
import java.sql.*;
|
import java.sql.*;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
|
||||||
public class SearchDAOImpl implements SearchDAO {
|
public class SearchDAOImpl implements SearchDAO {
|
||||||
@ -52,12 +54,13 @@ public class SearchDAOImpl implements SearchDAO {
|
|||||||
PreparedStatement stmt = null;
|
PreparedStatement stmt = null;
|
||||||
ResultSet rs;
|
ResultSet rs;
|
||||||
List<DeviceWrapper> devices = new ArrayList<>();
|
List<DeviceWrapper> devices = new ArrayList<>();
|
||||||
|
Map<Integer, Integer> devs = new HashMap<>();
|
||||||
try {
|
try {
|
||||||
conn = this.getConnection();
|
conn = this.getConnection();
|
||||||
stmt = conn.prepareStatement(query);
|
stmt = conn.prepareStatement(query);
|
||||||
rs = stmt.executeQuery();
|
rs = stmt.executeQuery();
|
||||||
while (rs.next()) {
|
while (rs.next()) {
|
||||||
|
if(!devs.containsKey(rs.getInt("ID"))) {
|
||||||
Device device = new Device();
|
Device device = new Device();
|
||||||
device.setId(rs.getInt("ID"));
|
device.setId(rs.getInt("ID"));
|
||||||
device.setDescription(rs.getString("DESCRIPTION"));
|
device.setDescription(rs.getString("DESCRIPTION"));
|
||||||
@ -105,6 +108,8 @@ public class SearchDAOImpl implements SearchDAO {
|
|||||||
wrapper.setDeviceLocation(deviceLocation);
|
wrapper.setDeviceLocation(deviceLocation);
|
||||||
wrapper.setDeviceIdentifier(identifier);
|
wrapper.setDeviceIdentifier(identifier);
|
||||||
devices.add(wrapper);
|
devices.add(wrapper);
|
||||||
|
devs.put(device.getId(), device.getId());
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
@ -132,12 +137,13 @@ public class SearchDAOImpl implements SearchDAO {
|
|||||||
PreparedStatement stmt = null;
|
PreparedStatement stmt = null;
|
||||||
ResultSet rs;
|
ResultSet rs;
|
||||||
List<DeviceWrapper> devices = new ArrayList<>();
|
List<DeviceWrapper> devices = new ArrayList<>();
|
||||||
|
Map<Integer, Integer> devs = new HashMap<>();
|
||||||
try {
|
try {
|
||||||
conn = this.getConnection();
|
conn = this.getConnection();
|
||||||
stmt = conn.prepareStatement(query);
|
stmt = conn.prepareStatement(query);
|
||||||
rs = stmt.executeQuery();
|
rs = stmt.executeQuery();
|
||||||
while (rs.next()) {
|
while (rs.next()) {
|
||||||
|
if(!devs.containsKey(rs.getInt("ID"))) {
|
||||||
Device device = new Device();
|
Device device = new Device();
|
||||||
device.setId(rs.getInt("ID"));
|
device.setId(rs.getInt("ID"));
|
||||||
device.setDescription(rs.getString("DESCRIPTION"));
|
device.setDescription(rs.getString("DESCRIPTION"));
|
||||||
@ -184,7 +190,10 @@ public class SearchDAOImpl implements SearchDAO {
|
|||||||
wrapper.setDeviceInfo(deviceInfo);
|
wrapper.setDeviceInfo(deviceInfo);
|
||||||
wrapper.setDeviceLocation(deviceLocation);
|
wrapper.setDeviceLocation(deviceLocation);
|
||||||
wrapper.setDeviceIdentifier(identifier);
|
wrapper.setDeviceIdentifier(identifier);
|
||||||
|
|
||||||
devices.add(wrapper);
|
devices.add(wrapper);
|
||||||
|
devs.put(device.getId(), device.getId());
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
|
|||||||
@ -114,7 +114,7 @@ public class QueryBuilderImpl implements QueryBuilder {
|
|||||||
for (Condition con : conditions) {
|
for (Condition con : conditions) {
|
||||||
if (Utils.checkDeviceDetailsColumns(con.getKey())) {
|
if (Utils.checkDeviceDetailsColumns(con.getKey())) {
|
||||||
querySuffix = querySuffix + " AND DD." + Utils.getDeviceDetailsColumnNames().get(con.getKey()) +
|
querySuffix = querySuffix + " AND DD." + Utils.getDeviceDetailsColumnNames().get(con.getKey()) +
|
||||||
con.getOperator() + con.getValue();
|
con.getOperator() + Utils.getConvertedValue(con.getKey(), con.getValue());
|
||||||
} else if (Utils.checkDeviceLocationColumns(con.getKey())) {
|
} else if (Utils.checkDeviceLocationColumns(con.getKey())) {
|
||||||
querySuffix = querySuffix + " AND DL." + Utils.getDeviceLocationColumnNames().get(con.getKey()) +
|
querySuffix = querySuffix + " AND DL." + Utils.getDeviceLocationColumnNames().get(con.getKey()) +
|
||||||
con.getOperator() + con.getValue();
|
con.getOperator() + con.getValue();
|
||||||
@ -132,7 +132,7 @@ public class QueryBuilderImpl implements QueryBuilder {
|
|||||||
for (Condition con : conditions) {
|
for (Condition con : conditions) {
|
||||||
if (Utils.checkDeviceDetailsColumns(con.getKey())) {
|
if (Utils.checkDeviceDetailsColumns(con.getKey())) {
|
||||||
querySuffix = querySuffix + " OR DD." + Utils.getDeviceDetailsColumnNames().get(con.getKey()) +
|
querySuffix = querySuffix + " OR DD." + Utils.getDeviceDetailsColumnNames().get(con.getKey()) +
|
||||||
con.getOperator() + con.getValue();
|
con.getOperator() + Utils.getConvertedValue(con.getKey(), con.getValue());
|
||||||
} else if (Utils.checkDeviceLocationColumns(con.getKey())) {
|
} else if (Utils.checkDeviceLocationColumns(con.getKey())) {
|
||||||
querySuffix = querySuffix + " OR DL." + Utils.getDeviceLocationColumnNames().get(con.getKey()) +
|
querySuffix = querySuffix + " OR DL." + Utils.getDeviceLocationColumnNames().get(con.getKey()) +
|
||||||
con.getOperator() + con.getValue();
|
con.getOperator() + con.getValue();
|
||||||
|
|||||||
@ -60,6 +60,41 @@ public class Utils {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static boolean checkColumnType(String column) {
|
||||||
|
|
||||||
|
boolean bool = false;
|
||||||
|
|
||||||
|
switch (column) {
|
||||||
|
case "deviceModel":
|
||||||
|
bool = true;
|
||||||
|
break;
|
||||||
|
case "vendor":
|
||||||
|
bool = true;
|
||||||
|
break;
|
||||||
|
case "osVersion":
|
||||||
|
bool = true;
|
||||||
|
break;
|
||||||
|
case "connectionType":
|
||||||
|
bool = true;
|
||||||
|
break;
|
||||||
|
case "ssid":
|
||||||
|
bool = true;
|
||||||
|
break;
|
||||||
|
default: bool =false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return bool;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String getConvertedValue(String column, String value) {
|
||||||
|
|
||||||
|
if(checkColumnType(column)){
|
||||||
|
return "\'" + value + "\'";
|
||||||
|
} else return value;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
public static Map<String, String> getDeviceDetailsColumnNames() {
|
public static Map<String, String> getDeviceDetailsColumnNames() {
|
||||||
return genericColumnsMap;
|
return genericColumnsMap;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -93,62 +93,91 @@ public class SearchDevice extends BaseDeviceManagementTest {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// @Test
|
@Test
|
||||||
// public void doValidLocationSearch() throws Exception{
|
public void doValidLocationSearch() throws Exception{
|
||||||
//
|
|
||||||
// SearchContext context = new SearchContext();
|
SearchContext context = new SearchContext();
|
||||||
// List<Condition> conditions = new ArrayList<>();
|
List<Condition> conditions = new ArrayList<>();
|
||||||
//
|
|
||||||
// Condition cond = new Condition();
|
Condition cond = new Condition();
|
||||||
// cond.setKey("LOCATION");
|
cond.setKey("LOCATION");
|
||||||
// cond.setOperator("=");
|
cond.setOperator("=");
|
||||||
// cond.setValue("Karan");
|
cond.setValue("Karan");
|
||||||
// cond.setState(Condition.State.AND);
|
cond.setState(Condition.State.AND);
|
||||||
// conditions.add(cond);
|
conditions.add(cond);
|
||||||
//
|
|
||||||
// context.setConditions(conditions);
|
context.setConditions(conditions);
|
||||||
//
|
|
||||||
// SearchManagerService service = new SearchManagerServiceImpl();
|
SearchManagerService service = new SearchManagerServiceImpl();
|
||||||
// List<DeviceWrapper> deviceWrappers = service.search(context);
|
List<DeviceWrapper> deviceWrappers = service.search(context);
|
||||||
//
|
|
||||||
// Gson gson = new Gson();
|
Gson gson = new Gson();
|
||||||
// String bbbb = gson.toJson(deviceWrappers);
|
String bbbb = gson.toJson(deviceWrappers);
|
||||||
// log.info("Valid Search " + bbbb);
|
log.info("Valid Search " + bbbb);
|
||||||
//
|
|
||||||
//
|
|
||||||
// for (DeviceWrapper dw : deviceWrappers) {
|
for (DeviceWrapper dw : deviceWrappers) {
|
||||||
// log.debug(dw.getDevice().getDescription());
|
log.debug(dw.getDevice().getDescription());
|
||||||
// log.debug(dw.getDevice().getDeviceIdentifier());
|
log.debug(dw.getDevice().getDeviceIdentifier());
|
||||||
// }
|
}
|
||||||
// }
|
}
|
||||||
//
|
|
||||||
// @Test
|
@Test
|
||||||
// public void doInvalidLocationSearch() throws Exception{
|
public void doInvalidLocationSearch() throws Exception{
|
||||||
//
|
|
||||||
// SearchContext context = new SearchContext();
|
SearchContext context = new SearchContext();
|
||||||
// List<Condition> conditions = new ArrayList<>();
|
List<Condition> conditions = new ArrayList<>();
|
||||||
//
|
|
||||||
// Condition cond = new Condition();
|
Condition cond = new Condition();
|
||||||
// cond.setKey("LOCATION");
|
cond.setKey("LOCATION");
|
||||||
// cond.setOperator("=");
|
cond.setOperator("=");
|
||||||
// cond.setValue("Colombo");
|
cond.setValue("Colombo");
|
||||||
// cond.setState(Condition.State.AND);
|
cond.setState(Condition.State.AND);
|
||||||
// conditions.add(cond);
|
conditions.add(cond);
|
||||||
//
|
|
||||||
// context.setConditions(conditions);
|
context.setConditions(conditions);
|
||||||
//
|
|
||||||
// SearchManagerService service = new SearchManagerServiceImpl();
|
SearchManagerService service = new SearchManagerServiceImpl();
|
||||||
// List<DeviceWrapper> deviceWrappers = service.search(context);
|
List<DeviceWrapper> deviceWrappers = service.search(context);
|
||||||
//
|
|
||||||
// Gson gson = new Gson();
|
Gson gson = new Gson();
|
||||||
// String bbbb = gson.toJson(deviceWrappers);
|
String bbbb = gson.toJson(deviceWrappers);
|
||||||
// log.info("Invalid Search " + bbbb);
|
log.info("Invalid Search " + bbbb);
|
||||||
//
|
|
||||||
//
|
|
||||||
// for (DeviceWrapper dw : deviceWrappers) {
|
for (DeviceWrapper dw : deviceWrappers) {
|
||||||
// log.debug(dw.getDevice().getDescription());
|
log.debug(dw.getDevice().getDescription());
|
||||||
// log.debug(dw.getDevice().getDeviceIdentifier());
|
log.debug(dw.getDevice().getDeviceIdentifier());
|
||||||
// }
|
}
|
||||||
// }
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void doStringSearch() throws Exception{
|
||||||
|
|
||||||
|
SearchContext context = new SearchContext();
|
||||||
|
List<Condition> conditions = new ArrayList<>();
|
||||||
|
|
||||||
|
Condition cond = new Condition();
|
||||||
|
cond.setKey("deviceModel");
|
||||||
|
cond.setOperator("=");
|
||||||
|
cond.setValue("SM-T520");
|
||||||
|
cond.setState(Condition.State.AND);
|
||||||
|
conditions.add(cond);
|
||||||
|
|
||||||
|
context.setConditions(conditions);
|
||||||
|
|
||||||
|
SearchManagerService service = new SearchManagerServiceImpl();
|
||||||
|
List<DeviceWrapper> deviceWrappers = service.search(context);
|
||||||
|
|
||||||
|
Gson gson = new Gson();
|
||||||
|
String bbbb = gson.toJson(deviceWrappers);
|
||||||
|
log.info("Invalid Search " + bbbb);
|
||||||
|
|
||||||
|
|
||||||
|
for (DeviceWrapper dw : deviceWrappers) {
|
||||||
|
log.debug(dw.getDevice().getDescription());
|
||||||
|
log.debug(dw.getDevice().getDeviceIdentifier());
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user