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;
+
+ }
+
+}