diff --git a/src/main/java/a8k/hardware/controler/Controler.java b/src/main/java/a8k/hardware/controler/Controler.java index 9630df6..39f2593 100644 --- a/src/main/java/a8k/hardware/controler/Controler.java +++ b/src/main/java/a8k/hardware/controler/Controler.java @@ -74,7 +74,7 @@ public class Controler { Map param = new HashMap<>(); param.put("key", methodName.substring(3)); - param.put("type", method.getReturnType().getSimpleName()); + param.put("type", method.getReturnType().getName()); param.put("group", paramAnnotation.group()); param.put("name",paramAnnotation.name()); param.put("value", method.invoke(paramService)); @@ -246,4 +246,26 @@ public class Controler { } return AppRet.success(actionResult); } + + @PostMapping("/api/service-config/class-struct-info-get") + @ResponseBody + public AppRet classStructInfoGet( @RequestBody Map params ) throws Exception { + String className = (String)params.get("class"); + Class clazz = Class.forName(className); + List> struct = new ArrayList<>(); + this.classStructInfoFill(clazz, struct); + return AppRet.success(struct); + } + + // fill up struct info + private void classStructInfoFill( Class clazz, List> struct ) { + var fields = clazz.getFields(); + for ( var item : fields ) { + var filed = new HashMap(); + filed.put("name", item.getName()); + filed.put("type", item.getType().getName()); + filed.put("typeShort", item.getType().getSimpleName()); + struct.add(filed); + } + } }