From cbed8613751a3ed72043a25a6ec10b9378f6248f Mon Sep 17 00:00:00 2001 From: alterdekim <alterwain@protonmail.com> Date: Fri, 10 Jan 2025 22:34:24 +0300 Subject: [PATCH] Serializer started x4 --- pom.xml | 2 +- .../flash/decompiler/mapper/FlashMapper.java | 25 +++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 66163df..08109ab 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ <groupId>com.alterdekim.game</groupId> <artifactId>actionScriptDecompiler</artifactId> - <version>0.0.9</version> + <version>0.0.10</version> <packaging>jar</packaging> <name>SWFDissect</name> diff --git a/src/main/java/com/alterdekim/flash/decompiler/mapper/FlashMapper.java b/src/main/java/com/alterdekim/flash/decompiler/mapper/FlashMapper.java index b44935e..98beb07 100644 --- a/src/main/java/com/alterdekim/flash/decompiler/mapper/FlashMapper.java +++ b/src/main/java/com/alterdekim/flash/decompiler/mapper/FlashMapper.java @@ -13,6 +13,31 @@ import java.util.stream.Collectors; @Slf4j public class FlashMapper { + public static <T> Map<String, Object> simpleToMap(List<T> l) { + Map<String, Object> m = new HashMap<>(); + for( T o : l ) { + List<Field> fields = Arrays.stream(o.getClass().getDeclaredFields()) + .filter(f -> f.isAnnotationPresent(FlashValue.class)) + .collect(Collectors.toList()); + try { + String key = null; + Object val = null; + for (Field f : fields) { + f.setAccessible(true); + switch (f.getAnnotation(FlashValue.class).type()) { + case Id -> key = ((Long) f.get(o)).toString(); + case Value -> val = f.get(o); + } + } + if( key == null || val == null ) continue; + m.put(key, val); + } catch (IllegalAccessException e) { + log.error("FlashMapper valueGet error: {}", e.getMessage()); + } + } + return m; + } + public static <T> Map<String, Object> objToMap(List<T> l) { Map<String, Object> m = new HashMap<>(); for( T o : l ) {