From 480167b53ff271f5f8a1b2c7ddd350fa4d577a97 Mon Sep 17 00:00:00 2001 From: 7u83 <7u83@mail.ru> Date: Mon, 20 Nov 2017 09:50:13 +0100 Subject: [PATCH] Moving SesSimClassLoader to a pure templated class --- nbproject/project.properties | 2 +- src/gui/Globals.java | 2 +- src/indicators/BaseIndicator.java | 2 +- src/sesim/AutoTraderLoader.java | 3 ++- src/sesim/IndicatorLoader.java | 10 ++++++++-- src/sesim/SeSimClassLoader.java | 2 +- 6 files changed, 14 insertions(+), 7 deletions(-) diff --git a/nbproject/project.properties b/nbproject/project.properties index 212f440..0324795 100644 --- a/nbproject/project.properties +++ b/nbproject/project.properties @@ -1,4 +1,4 @@ -#Sun, 19 Nov 2017 18:42:19 +0100 +#Mon, 20 Nov 2017 09:48:54 +0100 annotation.processing.enabled=true annotation.processing.enabled.in.editor=false annotation.processing.processors.list= diff --git a/src/gui/Globals.java b/src/gui/Globals.java index f30f7c3..ed55760 100644 --- a/src/gui/Globals.java +++ b/src/gui/Globals.java @@ -150,7 +150,7 @@ public class Globals { tloader = new AutoTraderLoader(default_pathlist); - IndicatorLoader il = new IndicatorLoader(); + IndicatorLoader il = new IndicatorLoader<>(Indicator.class); il.setDefaultPathList(default_pathlist); il.getInstalled(); diff --git a/src/indicators/BaseIndicator.java b/src/indicators/BaseIndicator.java index 2cd6b8e..4c6dfac 100644 --- a/src/indicators/BaseIndicator.java +++ b/src/indicators/BaseIndicator.java @@ -32,7 +32,7 @@ import sesim.Indicator; * * @author tube */ -public class BaseIndicator implements Indicator{ +public abstract class BaseIndicator implements Indicator{ @Override public String getName() { diff --git a/src/sesim/AutoTraderLoader.java b/src/sesim/AutoTraderLoader.java index bcfd183..76d76bb 100644 --- a/src/sesim/AutoTraderLoader.java +++ b/src/sesim/AutoTraderLoader.java @@ -34,7 +34,7 @@ import java.util.logging.Logger; * * @author 7u83 <7u83@mail.ru> */ -public class AutoTraderLoader extends SeSimClassLoader { +public class AutoTraderLoader extends SeSimClassLoader { private ArrayList> traders_cache = null; @@ -44,6 +44,7 @@ public class AutoTraderLoader extends SeSimClassLoader { private ClassLoader cl; + @Override public AutoTraderInterface newInstance(Class cls) { // ClassLoader cur = Thread.currentThread().getContextClassLoader(); // Thread.currentThread().setContextClassLoader(cl); diff --git a/src/sesim/IndicatorLoader.java b/src/sesim/IndicatorLoader.java index 556994b..27102d7 100644 --- a/src/sesim/IndicatorLoader.java +++ b/src/sesim/IndicatorLoader.java @@ -34,6 +34,12 @@ import java.util.ArrayList; public class IndicatorLoader extends SeSimClassLoader { ArrayList> cache; + final Class class_type; + + + public IndicatorLoader(Class class_type){ + this.class_type=class_type; + } /** * Get a list of all traders found in class path @@ -46,11 +52,11 @@ public class IndicatorLoader extends SeSimClassLoader { return cache; } - Class tube = null; + Class tube ; ArrayList> trl; ArrayList> result = new ArrayList<>(); - trl = getInstalledClasses(new ArrayList(), tube); + trl = getInstalledClasses(new ArrayList(), class_type); for (Class c : trl) { result.add((Class) c); } diff --git a/src/sesim/SeSimClassLoader.java b/src/sesim/SeSimClassLoader.java index 1eb8b58..509ca57 100644 --- a/src/sesim/SeSimClassLoader.java +++ b/src/sesim/SeSimClassLoader.java @@ -41,7 +41,7 @@ import java.util.logging.Level; * * @author 7u83 <7u83@mail.ru> */ -public class SeSimClassLoader { +public class SeSimClassLoader { protected ArrayList default_pathlist;