From d3057f25df018cced194eca2c46bb4b30b692349 Mon Sep 17 00:00:00 2001 From: 7u83 <7u83@mail.ru> Date: Sun, 19 Nov 2017 17:06:30 +0100 Subject: [PATCH 1/3] Created ChartPainterInterface and moved ChartPainter intto sesim package --- nbproject/private/private.xml | 3 +- nbproject/project.properties | 2 +- src/chart/MasterChart.form | 8 +++--- src/chart/MasterChart.java | 13 +++++---- src/chart/painter/ChartCrossPainter.java | 4 +-- src/chart/painter/ChartPainter.java | 7 +++-- src/chart/painter/OHLCChartPainter.java | 4 +-- src/chart/painter/XLegendPainter.java | 4 +-- src/chart/painter/YLegendPainter.java | 4 +-- src/gui/jp99.form | 2 +- src/gui/jp99.java | 4 +-- src/indicators/SMAIndicator.java | 8 ++++-- src/{chart => sesim}/ChartDef.java | 4 +-- src/sesim/ChartPainterInterface.java | 36 ++++++++++++++++++++++++ src/{chart => sesim}/ChartPanel.form | 0 src/{chart => sesim}/ChartPanel.java | 2 +- 16 files changed, 73 insertions(+), 32 deletions(-) rename src/{chart => sesim}/ChartDef.java (97%) create mode 100644 src/sesim/ChartPainterInterface.java rename src/{chart => sesim}/ChartPanel.form (100%) rename src/{chart => sesim}/ChartPanel.java (99%) diff --git a/nbproject/private/private.xml b/nbproject/private/private.xml index 3709b8c..18240e9 100644 --- a/nbproject/private/private.xml +++ b/nbproject/private/private.xml @@ -15,9 +15,10 @@ file:/home/tube/NetBeansProjects/SeSim/src/indicators/SMAIndicator.java file:/home/tube/NetBeansProjects/SeSim/.git/config file:/home/tube/NetBeansProjects/SeSim/src/chart/painter/OHLCChartPainter.java + file:/home/tube/NetBeansProjects/SeSim/src/indicators/RSIIndicator.java file:/home/tube/NetBeansProjects/SeSim/src/sesim/Indicator.java - file:/home/tube/NetBeansProjects/SeSim/src/indicators/EMAIndicator.java file:/home/tube/NetBeansProjects/SeSim/src/sesim/SeSimClassLoader.java + file:/home/tube/NetBeansProjects/SeSim/src/sesim/Order.java diff --git a/nbproject/project.properties b/nbproject/project.properties index 95ee139..23a8544 100644 --- a/nbproject/project.properties +++ b/nbproject/project.properties @@ -1,4 +1,4 @@ -#Sat, 18 Nov 2017 16:01:27 +0100 +#Sun, 19 Nov 2017 17:04:32 +0100 annotation.processing.enabled=true annotation.processing.enabled.in.editor=false annotation.processing.processors.list= diff --git a/src/chart/MasterChart.form b/src/chart/MasterChart.form index b80be11..d9f87d4 100644 --- a/src/chart/MasterChart.form +++ b/src/chart/MasterChart.form @@ -54,7 +54,7 @@ - + @@ -81,7 +81,7 @@ - + @@ -96,7 +96,7 @@ - + @@ -120,4 +120,4 @@ - + \ No newline at end of file diff --git a/src/chart/MasterChart.java b/src/chart/MasterChart.java index c4ba23f..872925d 100644 --- a/src/chart/MasterChart.java +++ b/src/chart/MasterChart.java @@ -25,6 +25,7 @@ */ package chart; +import sesim.ChartDef; import chart.painter.CandleStickChartPainter; import chart.painter.ChartPainter; import chart.painter.XLegendPainter; @@ -148,9 +149,9 @@ public class MasterChart extends javax.swing.JPanel implements QuoteReceiver { // //GEN-BEGIN:initComponents private void initComponents() { - chart = new chart.ChartPanel(); - yLegend = new chart.ChartPanel(); - xLegend = new chart.ChartPanel(); + chart = new sesim.ChartPanel(); + yLegend = new sesim.ChartPanel(); + xLegend = new sesim.ChartPanel(); xScrollBar = new javax.swing.JScrollBar(); addMouseWheelListener(new java.awt.event.MouseWheelListener() { @@ -266,10 +267,10 @@ public class MasterChart extends javax.swing.JPanel implements QuoteReceiver { // Variables declaration - do not modify//GEN-BEGIN:variables - private chart.ChartPanel chart; - private chart.ChartPanel xLegend; + private sesim.ChartPanel chart; + private sesim.ChartPanel xLegend; private javax.swing.JScrollBar xScrollBar; - private chart.ChartPanel yLegend; + private sesim.ChartPanel yLegend; // End of variables declaration//GEN-END:variables @Override diff --git a/src/chart/painter/ChartCrossPainter.java b/src/chart/painter/ChartCrossPainter.java index b84d77e..4537a6d 100644 --- a/src/chart/painter/ChartCrossPainter.java +++ b/src/chart/painter/ChartCrossPainter.java @@ -25,8 +25,8 @@ */ package chart.painter; -import chart.ChartDef; -import chart.ChartPanel; +import sesim.ChartDef; +import sesim.ChartPanel; import java.awt.Graphics2D; import java.awt.Point; diff --git a/src/chart/painter/ChartPainter.java b/src/chart/painter/ChartPainter.java index e6e91f0..7836ede 100644 --- a/src/chart/painter/ChartPainter.java +++ b/src/chart/painter/ChartPainter.java @@ -25,10 +25,11 @@ */ package chart.painter; -import chart.ChartDef; -import chart.ChartPanel; +import sesim.ChartDef; +import sesim.ChartPanel; import java.awt.Dimension; import java.awt.Graphics2D; +import sesim.ChartPainterInterface; import sesim.MinMax; import sesim.OHLCData; @@ -36,7 +37,7 @@ import sesim.OHLCData; * * @author 7u83 <7u83@mail.ru> */ -abstract public class ChartPainter { +abstract public class ChartPainter implements ChartPainterInterface{ protected int em_size; diff --git a/src/chart/painter/OHLCChartPainter.java b/src/chart/painter/OHLCChartPainter.java index b54d353..09ea366 100644 --- a/src/chart/painter/OHLCChartPainter.java +++ b/src/chart/painter/OHLCChartPainter.java @@ -25,8 +25,8 @@ */ package chart.painter; -import chart.ChartDef; -import chart.ChartPanel; +import sesim.ChartDef; +import sesim.ChartPanel; import java.awt.Color; import java.awt.Dimension; import java.awt.Graphics2D; diff --git a/src/chart/painter/XLegendPainter.java b/src/chart/painter/XLegendPainter.java index b6605e2..6ffc17f 100644 --- a/src/chart/painter/XLegendPainter.java +++ b/src/chart/painter/XLegendPainter.java @@ -25,8 +25,8 @@ */ package chart.painter; -import chart.ChartDef; -import chart.ChartPanel; +import sesim.ChartDef; +import sesim.ChartPanel; import java.awt.Color; import java.awt.Dimension; import java.awt.Graphics2D; diff --git a/src/chart/painter/YLegendPainter.java b/src/chart/painter/YLegendPainter.java index 64c0d4d..3e3a303 100644 --- a/src/chart/painter/YLegendPainter.java +++ b/src/chart/painter/YLegendPainter.java @@ -26,8 +26,8 @@ package chart.painter; import chart.Chart; -import chart.ChartDef; -import chart.ChartPanel; +import sesim.ChartDef; +import sesim.ChartPanel; import java.awt.Dimension; import java.awt.Graphics2D; import java.awt.Rectangle; diff --git a/src/gui/jp99.form b/src/gui/jp99.form index 39c058e..48abb80 100644 --- a/src/gui/jp99.form +++ b/src/gui/jp99.form @@ -38,7 +38,7 @@ - + diff --git a/src/gui/jp99.java b/src/gui/jp99.java index 0c80e04..b4065ef 100644 --- a/src/gui/jp99.java +++ b/src/gui/jp99.java @@ -28,7 +28,7 @@ public class jp99 extends javax.swing.JPanel { private void initComponents() { jScrollPane1 = new javax.swing.JScrollPane(); - chart11 = new chart.ChartPanel(); + chart11 = new sesim.ChartPanel(); javax.swing.GroupLayout chart11Layout = new javax.swing.GroupLayout(chart11); chart11.setLayout(chart11Layout); @@ -63,7 +63,7 @@ public class jp99 extends javax.swing.JPanel { // Variables declaration - do not modify//GEN-BEGIN:variables - private chart.ChartPanel chart11; + private sesim.ChartPanel chart11; private javax.swing.JScrollPane jScrollPane1; // End of variables declaration//GEN-END:variables } diff --git a/src/indicators/SMAIndicator.java b/src/indicators/SMAIndicator.java index 6f578a7..2a4731f 100644 --- a/src/indicators/SMAIndicator.java +++ b/src/indicators/SMAIndicator.java @@ -43,10 +43,14 @@ public class SMAIndicator implements Indicator { this.parent = parent; indicator = new OHLCData(); } + + public void setParent(OHLCData parent){ + + } int len = 20; - float getAt(int pos) { + private float getAt(int pos) { if (parent.size() == 0) { return 0; } @@ -57,9 +61,7 @@ public class SMAIndicator implements Indicator { } float sum = 0; for (int i = start; i <= pos; i++) { - //sum += parent.get(i).getAverage(); sum += parent.get(i).close; - } return sum / (pos - start + 1); diff --git a/src/chart/ChartDef.java b/src/sesim/ChartDef.java similarity index 97% rename from src/chart/ChartDef.java rename to src/sesim/ChartDef.java index bc07a36..69c6aab 100644 --- a/src/chart/ChartDef.java +++ b/src/sesim/ChartDef.java @@ -23,7 +23,7 @@ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ -package chart; +package sesim; import javax.swing.JScrollBar; @@ -39,7 +39,7 @@ public class ChartDef { */ public double x_unit_width=1.0; - ChartDef(){ + public ChartDef(){ } diff --git a/src/sesim/ChartPainterInterface.java b/src/sesim/ChartPainterInterface.java new file mode 100644 index 0000000..2d92393 --- /dev/null +++ b/src/sesim/ChartPainterInterface.java @@ -0,0 +1,36 @@ +/* + * Copyright (c) 2017, 7u83 <7u83@mail.ru> + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ +package sesim; + +import java.awt.Graphics2D; + +/** + * + * @author 7u83 <7u83@mail.ru> + */ +public interface ChartPainterInterface { + abstract public void drawChart(Graphics2D g, ChartPanel p, ChartDef def); +} diff --git a/src/chart/ChartPanel.form b/src/sesim/ChartPanel.form similarity index 100% rename from src/chart/ChartPanel.form rename to src/sesim/ChartPanel.form diff --git a/src/chart/ChartPanel.java b/src/sesim/ChartPanel.java similarity index 99% rename from src/chart/ChartPanel.java rename to src/sesim/ChartPanel.java index 036c8f8..8568708 100644 --- a/src/chart/ChartPanel.java +++ b/src/sesim/ChartPanel.java @@ -1,4 +1,4 @@ -package chart; +package sesim; import chart.painter.ChartPainter; import gui.Globals; From 08dc2b6ba3a3b1a5a663610d5e28d5d763fd8471 Mon Sep 17 00:00:00 2001 From: 7u83 <7u83@mail.ru> Date: Sun, 19 Nov 2017 17:19:29 +0100 Subject: [PATCH 2/3] Indicators --- nbproject/project.properties | 2 +- src/indicators/BaseIndicator.java | 45 +++++++++++++++++++++++++ src/indicators/RSIIndicator.java | 3 +- src/indicators/SMAIndicator.java | 3 +- src/sesim/AutoTraderInterface.java | 28 ++++++---------- src/sesim/ConfigurableInterface.java | 50 ++++++++++++++++++++++++++++ src/sesim/Indicator.java | 3 +- 7 files changed, 110 insertions(+), 24 deletions(-) create mode 100644 src/indicators/BaseIndicator.java create mode 100644 src/sesim/ConfigurableInterface.java diff --git a/nbproject/project.properties b/nbproject/project.properties index 23a8544..ee84478 100644 --- a/nbproject/project.properties +++ b/nbproject/project.properties @@ -1,4 +1,4 @@ -#Sun, 19 Nov 2017 17:04:32 +0100 +#Sun, 19 Nov 2017 14:47:09 +0100 annotation.processing.enabled=true annotation.processing.enabled.in.editor=false annotation.processing.processors.list= diff --git a/src/indicators/BaseIndicator.java b/src/indicators/BaseIndicator.java new file mode 100644 index 0000000..8cba92f --- /dev/null +++ b/src/indicators/BaseIndicator.java @@ -0,0 +1,45 @@ +/* + * Copyright (c) 2017, tube + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ +package indicators; + +import sesim.Indicator; + +/** + * + * @author tube + */ +public class BaseIndicator implements Indicator{ + + @Override + public String getName() { + return this.getClass().getName(); + } + + @Override + public String getDescription() { + return ""; + } +} diff --git a/src/indicators/RSIIndicator.java b/src/indicators/RSIIndicator.java index 4ba80fb..e3d235b 100644 --- a/src/indicators/RSIIndicator.java +++ b/src/indicators/RSIIndicator.java @@ -25,12 +25,11 @@ */ package indicators; -import sesim.Indicator; /** * * @author 7u83 <7u83@mail.ru> */ -public class RSIIndicator implements Indicator{ +public class RSIIndicator extends BaseIndicator{ } diff --git a/src/indicators/SMAIndicator.java b/src/indicators/SMAIndicator.java index 2a4731f..6dba64c 100644 --- a/src/indicators/SMAIndicator.java +++ b/src/indicators/SMAIndicator.java @@ -25,7 +25,6 @@ */ package indicators; -import sesim.Indicator; import sesim.OHLCData; import sesim.OHLCDataItem; @@ -33,7 +32,7 @@ import sesim.OHLCDataItem; * * @author 7u83 <7u83@mail.ru> */ -public class SMAIndicator implements Indicator { +public class SMAIndicator extends BaseIndicator { private OHLCData parent; diff --git a/src/sesim/AutoTraderInterface.java b/src/sesim/AutoTraderInterface.java index 1200f6d..a1bf2ce 100644 --- a/src/sesim/AutoTraderInterface.java +++ b/src/sesim/AutoTraderInterface.java @@ -30,9 +30,10 @@ import org.json.JSONObject; /** * Interface for auto traders + * * @author 7u83 <7u83@mail.ru> */ -public interface AutoTraderInterface { +public interface AutoTraderInterface extends ConfigurableInterface { public abstract boolean getDevelStatus(); @@ -40,39 +41,30 @@ public interface AutoTraderInterface { /** * Get a graphical user interface to configure the auto trader. - * @return an AutoTraderGui object or null if there is no graphical - * user interface available. + * + * @return an AutoTraderGui object or null if there is no graphical user + * interface available. */ public abstract AutoTraderGui getGui(); public abstract JDialog getGuiConsole(); - /** - * Get current configuration of the auto trader as JSON object. - * @return JSONObject containing the configuration - */ - public abstract JSONObject getConfig(); - - /** - * Set the configuration for auto trader by a JSON object. - * @param cfg the configuration - */ - public abstract void putConfig(JSONObject cfg); - /** * Return the name of the auto trader. + * * @return name */ public abstract String getName(); /** * Initialize the auto trader + * * @param se Exechange to trade on - * @param id + * @param id * @param name Name of auto trader - * @param money Money + * @param money Money * @param shares Number of shares - * @param cfg + * @param cfg */ public void init(Exchange se, long id, String name, double money, double shares, JSONObject cfg); diff --git a/src/sesim/ConfigurableInterface.java b/src/sesim/ConfigurableInterface.java new file mode 100644 index 0000000..5cf8a19 --- /dev/null +++ b/src/sesim/ConfigurableInterface.java @@ -0,0 +1,50 @@ +/* + * Copyright (c) 2017, tube + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ +package sesim; + +import org.json.JSONObject; + +/** + * + * @author tube + */ +public interface ConfigurableInterface { + + /** + * Get current configuration as JSON object. + * + * @return JSONObject containing the configuration + */ + public abstract JSONObject getConfig(); + + /** + * Set the configuration by a JSON object. + * + * @param cfg the configuration + */ + public abstract void putConfig(JSONObject cfg); + +} diff --git a/src/sesim/Indicator.java b/src/sesim/Indicator.java index de4ceec..7f9cf21 100644 --- a/src/sesim/Indicator.java +++ b/src/sesim/Indicator.java @@ -30,5 +30,6 @@ package sesim; * @author 7u83 <7u83@mail.ru> */ public interface Indicator { - + public String getName(); + public String getDescription(); } From 9475a9436e55a9029e9f39499508d778cb05a197 Mon Sep 17 00:00:00 2001 From: 7u83 <7u83@mail.ru> Date: Sun, 19 Nov 2017 18:17:53 +0100 Subject: [PATCH 3/3] Introducing Indicator Loader --- nbproject/project.properties | 2 +- src/sesim/IndicatorLoader.java | 63 ++++++++++++++++++++++++++++++++++ 2 files changed, 64 insertions(+), 1 deletion(-) create mode 100644 src/sesim/IndicatorLoader.java diff --git a/nbproject/project.properties b/nbproject/project.properties index ee84478..e8faa3d 100644 --- a/nbproject/project.properties +++ b/nbproject/project.properties @@ -1,4 +1,4 @@ -#Sun, 19 Nov 2017 14:47:09 +0100 +#Sun, 19 Nov 2017 18:17:22 +0100 annotation.processing.enabled=true annotation.processing.enabled.in.editor=false annotation.processing.processors.list= diff --git a/src/sesim/IndicatorLoader.java b/src/sesim/IndicatorLoader.java new file mode 100644 index 0000000..d8c590a --- /dev/null +++ b/src/sesim/IndicatorLoader.java @@ -0,0 +1,63 @@ +/* + * Copyright (c) 2017, 7u83 <7u83@mail.ru> + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ +package sesim; + +import java.util.ArrayList; + +/** + * + * @author 7u83 <7u83@mail.ru> + */ +public class IndicatorLoader extends SeSimClassLoader { + + ArrayList> cache; + + /** + * Get a list of all traders found in class path + * + * @return List of traders + */ + public ArrayList> getInstalledIndicators() { + + if (cache != null) { + return cache; + } + + Class tube = null; + + ArrayList> trl; + ArrayList> result = new ArrayList<>(); + trl = getInstalledClasses(new ArrayList(), tube); + for (Class c : trl) { + result.add((Class) c); + } + + cache = result; + return cache; + + } + +}