From a5477a7e4e820ba6812c321a6bff9fa52d0c7ce1 Mon Sep 17 00:00:00 2001 From: Banks Troutman Date: Sat, 2 Nov 2019 04:39:47 -0400 Subject: [PATCH] fix exception when handling drivermode settings --- .../chameleonvision/web/ServerHandler.java | 33 ++++++++++++++----- 1 file changed, 24 insertions(+), 9 deletions(-) diff --git a/Main/src/main/java/com/chameleonvision/web/ServerHandler.java b/Main/src/main/java/com/chameleonvision/web/ServerHandler.java index 214ca6f5b..7f0db9d30 100644 --- a/Main/src/main/java/com/chameleonvision/web/ServerHandler.java +++ b/Main/src/main/java/com/chameleonvision/web/ServerHandler.java @@ -184,17 +184,32 @@ public class ServerHandler { try { if (obj instanceof Camera) { var cam = (Camera)obj; - if (fieldName.equals("driverBrightness")) { - cam.setDriverBrightness((Integer)value); - } else if (fieldName.equals("driverExposure")) { - cam.setDriverExposure((Integer)value); + switch (fieldName) { + case "driverBrightness": + cam.setDriverBrightness((Integer) value); + break; + case "driverExposure": + cam.setDriverExposure((Integer) value); + break; + default: + Field field = obj.getClass().getField(fieldName); + if (field.getType().isEnum()) { + field.set(obj, field.getType().getEnumConstants()[(Integer) value]); + } else { + field.set(obj, value); + } + break; + } + } else { + Field field = obj.getClass().getField(fieldName); + if (field.getType().isEnum()) { + field.set(obj, field.getType().getEnumConstants()[(Integer) value]); + } + else { + field.set(obj, value); } } - Field field = obj.getClass().getField(fieldName); - if (field.getType().isEnum()) - field.set(obj, field.getType().getEnumConstants()[(Integer) value]); - else - field.set(obj, value); + } catch (NoSuchFieldException | IllegalAccessException ex) { ex.printStackTrace(); }