Merge pull request #53 from Parabot/cleanup/refclass

[CLEANUP] Using RefClass instead of direct Reflection
This commit is contained in:
Jeroen Ketelaar
2017-09-11 23:37:35 +02:00
committed by GitHub
@@ -2,11 +2,11 @@ package org.parabot.randoms.locopk;
import org.parabot.core.Context; import org.parabot.core.Context;
import org.parabot.core.asm.ASMClassLoader; import org.parabot.core.asm.ASMClassLoader;
import org.parabot.environment.OperatingSystem; import org.parabot.core.reflect.RefClass;
import org.parabot.core.reflect.RefField;
import org.parabot.environment.randoms.Random; import org.parabot.environment.randoms.Random;
import org.parabot.environment.randoms.RandomType; import org.parabot.environment.randoms.RandomType;
import java.lang.reflect.Field;
import java.util.UUID; import java.util.UUID;
/** /**
@@ -26,20 +26,20 @@ public class MacAddressFix implements Random {
try { try {
final ASMClassLoader classLoader = Context.getInstance().getASMClassLoader(); final ASMClassLoader classLoader = Context.getInstance().getASMClassLoader();
Class<?> createUID = classLoader.loadClass("com.locopk.client.rs.CreateUID"); RefClass createUID = new RefClass(classLoader.loadClass("com.locopk.client.rs.CreateUID"));
if (OperatingSystem.getOS().equals(OperatingSystem.MAC)) { String s1 = UUID.randomUUID().toString();
String s2 = UUID.randomUUID().toString();
Field mac = createUID.getDeclaredField("mac"); RefField mac = createUID.getField("mac");
mac.set(null, randomMacAddress()); mac.set(randomMacAddress());
} else {
Field firstId = createUID.getDeclaredField("firstId");
firstId.set(null, UUID.randomUUID().toString());
Field secondId = createUID.getDeclaredField("secondId"); RefField firstId = createUID.getField("firstId");
secondId.set(null, UUID.randomUUID().toString()); firstId.set(s1);
}
} catch (ClassNotFoundException | NoSuchFieldException | IllegalAccessException e) { RefField secondId = createUID.getField("secondId");
secondId.set(s2);
} catch (ClassNotFoundException e) {
e.printStackTrace(); e.printStackTrace();
} }