From 2e34143467969cd0eecbbef66ecab9e0a9eaaec2 Mon Sep 17 00:00:00 2001 From: 7u83 <7u83@mail.ru> Date: Sun, 19 Nov 2017 14:55:26 +0100 Subject: [PATCH] Introduced ConfigurableInterface --- nbproject/private/private.xml | 59 +++++++++++++++++++++++----- nbproject/project.properties | 2 +- src/sesim/AutoTraderInterface.java | 28 +++++-------- src/sesim/ConfigurableInterface.java | 50 +++++++++++++++++++++++ 4 files changed, 111 insertions(+), 28 deletions(-) create mode 100644 src/sesim/ConfigurableInterface.java diff --git a/nbproject/private/private.xml b/nbproject/private/private.xml index 3709b8c..7659825 100644 --- a/nbproject/private/private.xml +++ b/nbproject/private/private.xml @@ -4,20 +4,61 @@ file:/home/tube/NetBeansProjects/SeSim/src/chart/MasterChart.java - file:/home/tube/NetBeansProjects/SeSim/src/sesim/OHLCData.java - file:/home/tube/NetBeansProjects/SeSim/src/resources/files/defaultcfg.json + file:/home/tube/NetBeansProjects/SeSim/src/sesim/Quote.java + file:/home/tube/NetBeansProjects/SeSim/src/gui/tools/NummericCellRenderer.java file:/home/tube/NetBeansProjects/SeSim/src/sesim/AutoTraderInterface.java - file:/home/tube/NetBeansProjects/SeSim/src/chart/painter/LineChartPainter.java - file:/home/tube/NetBeansProjects/SeSim/src/sesim/AutoTraderGui.java - file:/home/tube/NetBeansProjects/SeSim/src/sesim/AutoTraderLoader.java + file:/home/tube/NetBeansProjects/SeSim/src/sesim/Account.java + file:/home/tube/NetBeansProjects/SeSim/src/traders/ManTrader/ManTraderConsoleDialog.java + file:/home/tube/NetBeansProjects/SeSim/src/gui/SeSimApplication.java file:/home/tube/NetBeansProjects/SeSim/src/gui/Globals.java + file:/home/tube/NetBeansProjects/SeSim/src/chart/painter/OHLCChartPainter.java + file:/home/tube/NetBeansProjects/SeSim/src/gui/QuotePanel.java + file:/home/tube/NetBeansProjects/SeSim/src/gui/MainChart.java + file:/home/tube/NetBeansProjects/SeSim/src/chart/ChartDef.java + file:/home/tube/NetBeansProjects/SeSim/src/sesim/OHLCData.java + file:/home/tube/NetBeansProjects/SeSim/src/sesim/MinMax.java + file:/home/tube/NetBeansProjects/SeSim/src/chart/painter/XLegendPainter.java + file:/home/tube/NetBeansProjects/SeSim/src/chart/painter/LineChartPainter.java + file:/home/tube/NetBeansProjects/SeSim/src/sesim/Exchange.java + file:/home/tube/NetBeansProjects/SeSim/src/sesim/Stock.java + file:/home/tube/NetBeansProjects/SeSim/src/sesim/Locker.java + file:/home/tube/NetBeansProjects/SeSim/src/chart/ChartPanel.java + file:/home/tube/NetBeansProjects/SeSim/src/indicators/BaseIndicator.java + file:/home/tube/NetBeansProjects/SeSim/src/sesim/OHLCDataItem.java + file:/home/tube/NetBeansProjects/SeSim/src/gui/AboutDialog.java + file:/home/tube/NetBeansProjects/SeSim/src/gui/OpenOrdersList.java + file:/home/tube/NetBeansProjects/SeSim/src/indicators/RSIIndicator.java + file:/home/tube/NetBeansProjects/SeSim/src/chart/painter/YLegendPainter.java + file:/home/tube/NetBeansProjects/SeSim/src/gui/AskBook.java + file:/home/tube/NetBeansProjects/SeSim/src/gui/TestChartdialog.java + file:/home/tube/NetBeansProjects/SeSim/src/traders/RandomTraderA.java + file:/home/tube/NetBeansProjects/SeSim/test/sesim/Test.java + file:/home/tube/NetBeansProjects/SeSim/src/chart/painter/ChartCrossPainter.java + file:/home/tube/NetBeansProjects/SeSim/src/gui/StatisticsPanel.java + file:/home/tube/NetBeansProjects/SeSim/src/sesim/AutoTraderLoader.java + file:/home/tube/NetBeansProjects/SeSim/src/traders/ManTrader/ManTrader.java file:/home/tube/NetBeansProjects/SeSim/src/chart/painter/ChartPainter.java 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/sesim/OHLCDataProvider.java + file:/home/tube/NetBeansProjects/SeSim/src/traders/RandomTraderB.java + file:/home/tube/NetBeansProjects/SeSim/src/sesim/Logger.java + file:/home/tube/NetBeansProjects/SeSim/src/gui/EditPreferencesDialog.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/AutoTraderBase.java + file:/home/tube/NetBeansProjects/SeSim/src/gui/Statistics.java + file:/home/tube/NetBeansProjects/SeSim/src/gui/EditStrategies.java + file:/home/tube/NetBeansProjects/SeSim/src/chart/Chart.java + file:/home/tube/NetBeansProjects/SeSim/src/sesim/IDGenerator.java + file:/home/tube/NetBeansProjects/SeSim/src/sesim/AutoTraderGui.java + file:/home/tube/NetBeansProjects/SeSim/src/gui/jp99.java + file:/home/tube/NetBeansProjects/SeSim/src/gui/orderbook/OrderBook.java + file:/home/tube/NetBeansProjects/SeSim/src/gui/OrderBook.java + file:/home/tube/NetBeansProjects/SeSim/src/chart/painter/CandleStickChartPainter.java + file:/home/tube/NetBeansProjects/SeSim/src/gui/BidBook.java + file:/home/tube/NetBeansProjects/SeSim/src/sesim/Scheduler.java + file:/home/tube/NetBeansProjects/SeSim/src/chart/SuperDlg.java + file:/home/tube/NetBeansProjects/SeSim/src/sesim/Order.java + file:/home/tube/NetBeansProjects/SeSim/README.md diff --git a/nbproject/project.properties b/nbproject/project.properties index 95ee139..ee84478 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 14:47:09 +0100 annotation.processing.enabled=true annotation.processing.enabled.in.editor=false annotation.processing.processors.list= 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); + +}