Speeded up script parser

This commit is contained in:
Clisprail
2014-04-27 00:40:53 +02:00
parent e061c8a3d7
commit 144a2b271b
2 changed files with 11 additions and 17 deletions
@@ -4,13 +4,10 @@ import org.parabot.core.Directories;
import org.parabot.core.classpath.ClassPath;
import org.parabot.core.desc.ScriptDescription;
import org.parabot.environment.scripts.LocalScriptExecuter;
import org.parabot.environment.scripts.Script;
import org.parabot.environment.scripts.ScriptManifest;
import org.parabot.environment.scripts.loader.JavaScriptLoader;
import java.lang.reflect.Constructor;
import java.util.ArrayList;
import java.util.List;
/**
* Parses locally stored java scripts
@@ -28,12 +25,6 @@ public class LocalJavaScripts extends ScriptParser {
// init the script loader
final JavaScriptLoader loader = new JavaScriptLoader(path);
// list of scripts
final List<Script> scripts = new ArrayList<Script>();
// list of descriptions
final List<ScriptDescription> descs = new ArrayList<ScriptDescription>();
// loop through all classes which extends the 'Script' class
for (final String className : loader.getScriptClassNames()) {
try {
@@ -56,16 +47,13 @@ public class LocalJavaScripts extends ScriptParser {
final ScriptManifest manifest = (ScriptManifest) annotation;
// get constructor
final Constructor<?> con = scriptClass.getConstructor();
final Script script = (Script) con.newInstance();
scripts.add(script);
final ScriptDescription desc = new ScriptDescription(
manifest.name(), manifest.author(), manifest.category()
.toString(), manifest.version(),
manifest.description(), manifest.servers(),
manifest.vip() ? "yes" : "no",
manifest.premium() ? "yes" : "no");
SCRIPT_CACHE.put(desc, new LocalScriptExecuter(script));
descs.add(desc);
SCRIPT_CACHE.put(desc, new LocalScriptExecuter(con));
} catch (ClassNotFoundException ignored) {
} catch (NoClassDefFoundError ignored) {
} catch (Throwable t) {
@@ -1,5 +1,7 @@
package org.parabot.environment.scripts;
import java.lang.reflect.Constructor;
/**
*
* Loads a locally stored script
@@ -8,15 +10,19 @@ package org.parabot.environment.scripts;
*
*/
public class LocalScriptExecuter extends ScriptExecuter {
private Script script;
private Constructor<?> scriptConstructor;
public LocalScriptExecuter(final Script script) {
this.script = script;
public LocalScriptExecuter(final Constructor<?> scriptConstructor) {
this.scriptConstructor = scriptConstructor;
}
@Override
public void run(ThreadGroup tg) {
super.finalize(tg, this.script);
try {
super.finalize(tg, (Script) scriptConstructor.newInstance(new Object[] { }));
} catch (Throwable t) {
t.printStackTrace();
}
}
}