From ba0769231380710d0c0faa02617538a637213f33 Mon Sep 17 00:00:00 2001 From: Andrea Cavalli Date: Wed, 12 Sep 2018 22:16:33 +0200 Subject: [PATCH] Moved StaticVars to Settings, moved other packages and organized imports --- core/.classpath | 2 +- core/pom.xml | 5 + .../java/it/cavallium/warppi/BMPFile.java | 221 ------------------ .../main/java/it/cavallium/warppi/Engine.java | 6 +- .../java/it/cavallium/warppi/IntegerObj.java | 9 - .../cavallium/warppi/{deps => }/Platform.java | 26 ++- .../java/it/cavallium/warppi/StaticVars.java | 9 +- .../java/it/cavallium/warppi/boot/Boot.java | 5 +- .../it/cavallium/warppi/device/CacheFile.java | 4 +- .../it/cavallium/warppi/device/Keyboard.java | 53 +++-- .../KeyboardJogampValues.java} | 4 +- .../warppi/device/PIHardwareDisplay.java | 3 +- .../warppi/device/graphicengine/RAWFont.java | 4 +- .../cavallium/warppi/gui/CalculatorHUD.java | 5 +- .../cavallium/warppi/gui/DisplayManager.java | 8 +- .../cavallium/warppi/gui/GUIErrorMessage.java | 2 +- .../warppi/gui/expression/blocks/Block.java | 2 +- .../gui/expression/blocks/BlockContainer.java | 4 +- .../gui/expression/blocks/BlockDivision.java | 2 +- .../gui/expression/blocks/BlockLogarithm.java | 2 +- .../expression/blocks/BlockParenthesis.java | 2 +- .../blocks/BlockParenthesisAbstract.java | 2 +- .../gui/expression/blocks/BlockPower.java | 2 +- .../gui/expression/blocks/BlockPower2.java | 2 +- .../gui/expression/blocks/BlockSine.java | 2 +- .../expression/blocks/BlockSquareRoot.java | 2 +- .../gui/expression/blocks/BlockVariable.java | 3 +- .../expression/containers/InputContainer.java | 2 +- .../gui/graphicengine/common/PngSkin.java | 2 +- .../gui/graphicengine/common/RFTFont.java | 4 +- .../gui/graphicengine/nogui/NoGuiEngine.java | 2 +- .../screens/ChooseVariableValueScreen.java | 3 +- .../gui/screens/KeyboardDebugScreen.java | 1 - .../warppi/gui/screens/LoadingScreen.java | 3 +- .../warppi/gui/screens/MarioScreen.java | 1 - .../warppi/gui/screens/MathInputScreen.java | 12 +- .../warppi/gui/screens/SolveForXScreen.java | 1 - .../it/cavallium/warppi/math/Function.java | 2 +- .../warppi/math/FunctionDynamic.java | 4 +- .../warppi/math/FunctionOperator.java | 6 +- .../cavallium/warppi/math/FunctionSingle.java | 2 +- .../it/cavallium/warppi/math/MathContext.java | 2 +- .../warppi/math/MathematicalSymbols.java | 4 +- .../warppi/math/functions/Division.java | 2 +- .../warppi/math/functions/EmptyNumber.java | 2 +- .../warppi/math/functions/Expression.java | 2 +- .../cavallium/warppi/math/functions/Joke.java | 4 +- .../warppi/math/functions/Logarithm.java | 2 +- .../warppi/math/functions/Multiplication.java | 2 +- .../warppi/math/functions/Negative.java | 2 +- .../warppi/math/functions/Number.java | 4 +- .../warppi/math/functions/Power.java | 2 +- .../cavallium/warppi/math/functions/Root.java | 4 +- .../warppi/math/functions/RootSquare.java | 2 +- .../warppi/math/functions/Subtraction.java | 2 +- .../cavallium/warppi/math/functions/Sum.java | 2 +- .../warppi/math/functions/SumSubtraction.java | 2 +- .../warppi/math/functions/Undefined.java | 2 +- .../warppi/math/functions/Variable.java | 2 +- .../math/functions/equations/Equation.java | 2 +- .../functions/equations/EquationsSystem.java | 2 +- .../equations/EquationsSystemPart.java | 2 +- .../functions/trigonometry/ArcCosine.java | 4 +- .../math/functions/trigonometry/ArcSine.java | 4 +- .../functions/trigonometry/ArcTangent.java | 4 +- .../math/functions/trigonometry/Cosine.java | 4 +- .../math/functions/trigonometry/Sine.java | 2 +- .../math/functions/trigonometry/Tangent.java | 2 +- .../warppi/math/parser/MathParser.java | 17 +- .../warppi/math/parser/MathParserStep.java | 6 +- .../parser/features/FeatureLogarithm.java | 2 +- .../math/parser/features/FeatureNumber.java | 2 +- .../parser/features/FeatureParenthesis.java | 2 +- .../math/parser/features/FeaturePower.java | 2 +- .../parser/features/FeaturePowerChar.java | 2 +- .../math/parser/features/FeatureSine.java | 2 +- .../parser/features/FeatureSquareRoot.java | 2 +- .../parser/features/FeatureSubtraction.java | 2 +- .../math/parser/features/FeatureSum.java | 2 +- .../features/FeatureSumSubtraction.java | 2 +- .../parser/features/interfaces/Feature.java | 2 +- .../steps/AddImplicitMultiplications.java | 4 +- .../steps/FixMultiplicationsAndDivisions.java | 8 +- .../parser/steps/FixSingleFunctionArgs.java | 8 +- .../parser/steps/FixSumsAndSubtractions.java | 8 +- .../parser/steps/JoinNumberAndVariables.java | 4 +- .../math/parser/steps/RemoveParentheses.java | 4 +- .../it/cavallium/warppi/math/rules/Rule.java | 2 +- .../warppi/math/rules/RulesManager.java | 7 +- .../math/rules/methods/DivisionRule1.java | 2 +- .../rules/methods/MultiplicationMethod1.java | 2 +- .../warppi/math/rules/methods/SumMethod1.java | 2 +- .../warppi/math/solver/MathSolver.java | 9 +- .../warppi/{ => util}/CacheUtils.java | 2 +- .../warppi/{ => util}/ClassUtils.java | 6 +- .../it/cavallium/warppi/{ => util}/Error.java | 2 +- .../cavallium/warppi/{ => util}/Errors.java | 2 +- .../it/cavallium/warppi/util/IntWrapper.java | 9 + .../warppi/{ => util}/ScriptUtils.java | 2 +- .../it/cavallium/warppi/{ => util}/Utils.java | 8 +- .../main/java/org/nevec/rjm/Bernoulli.java | 2 +- .../java/org/nevec/rjm/BigDecimalMath.java | 2 +- .../java/org/nevec/rjm/BigIntegerMath.java | 2 +- .../java/org/nevec/rjm/BigIntegerPoly.java | 2 +- core/src/main/java/org/nevec/rjm/BigSurd.java | 4 +- .../main/java/org/nevec/rjm/BigSurdVec.java | 4 +- core/src/main/java/org/nevec/rjm/Ifactor.java | 2 +- core/src/main/java/org/nevec/rjm/RatPoly.java | 2 +- .../src/main/java/org/nevec/rjm/Rational.java | 4 +- .../java/org/nevec/rjm/SafeMathContext.java | 2 +- .../src/main/java/org/nevec/rjm/Wigner3j.java | 2 +- .../main/java/org/nevec/rjm/Wigner3jGUI.java | 2 +- .../java/it/cavallium/warppi/AppTest.java | 38 +++ desktop/math-rules-cache.zip | Bin 144382 -> 102487 bytes .../warppi/desktop/DesktopConsoleUtils.java | 2 +- .../cavallium/warppi/desktop/DesktopGpio.java | 4 +- .../warppi/desktop/DesktopPlatform.java | 14 +- .../warppi/desktop/DesktopPngReader.java | 2 +- .../warppi/desktop/DesktopPngUtils.java | 2 +- .../warppi/desktop/DesktopSemaphore.java | 2 +- .../warppi/desktop/DesktopSettings.java | 23 ++ .../warppi/desktop/DesktopStorageUtils.java | 4 +- .../warppi/desktop/DesktopURLClassLoader.java | 2 +- .../gui/graphicengine/cpu/CPUEngine.java | 4 +- .../graphicengine/cpu/JAdvancedButton.java | 2 +- .../gui/graphicengine/cpu/SwingWindow.java | 10 +- .../headless24bit/Headless24bitEngine.java | 9 +- .../headless256/Headless256Engine.java | 6 +- .../headless8/Headless8Engine.java | 6 +- .../gui/graphicengine/gpu/GPUEngine.java | 4 +- .../gui/graphicengine/gpu/GPURenderer.java | 6 +- .../gui/graphicengine/gpu/NEWTWindow.java | 5 +- .../main/java/cz/adamh/utils/NativeUtils.java | 0 .../it/cavallium/warppi/MmapByteBuffer.java | 0 .../java/it/cavallium/warppi/TestJNI.java | 0 .../graphicengine/framebuffer/FBEngine.java | 4 - .../warppi/hardware/HardwareConsoleUtils.java | 2 +- .../warppi/hardware/HardwareGpio.java | 4 +- .../warppi/hardware/HardwarePlatform.java | 16 +- .../warppi/hardware/HardwarePngReader.java | 2 +- .../warppi/hardware/HardwarePngUtils.java | 2 +- .../warppi/hardware/HardwareSemaphore.java | 2 +- .../warppi/hardware/HardwareSettings.java | 23 ++ .../warppi/hardware/HardwareStorageUtils.java | 4 +- .../hardware/HardwareURLClassLoader.java | 2 +- {core => hardware}/src/main/jni/.gitignore | 0 .../src/main/jni/CMakeLists.txt | 0 {core => hardware}/src/main/jni/TestJNI.cpp | 0 {core => hardware}/src/main/jni/TestJNI.h | 0 {core => hardware}/src/main/jni/libpicalc.so | Bin {core => hardware}/src/main/jni/makefileOLD | 0 pom.xml | 6 + rules/src/main/java/rules/ExpandRule1.java | 2 - rules/src/main/java/rules/ExpandRule2.java | 8 +- rules/src/main/java/rules/ExpandRule5.java | 5 - rules/src/main/java/rules/ExponentRule1.java | 4 - rules/src/main/java/rules/ExponentRule15.java | 3 - rules/src/main/java/rules/ExponentRule16.java | 3 - rules/src/main/java/rules/ExponentRule17.java | 4 - rules/src/main/java/rules/ExponentRule2.java | 4 - rules/src/main/java/rules/ExponentRule3.java | 4 - rules/src/main/java/rules/ExponentRule4.java | 4 - rules/src/main/java/rules/ExponentRule8.java | 3 - rules/src/main/java/rules/ExponentRule9.java | 3 - .../src/main/java/rules/FractionsRule10.java | 8 - .../src/main/java/rules/FractionsRule11.java | 4 - .../src/main/java/rules/FractionsRule12.java | 4 - .../src/main/java/rules/FractionsRule14.java | 4 - rules/src/main/java/rules/FractionsRule2.java | 1 - rules/src/main/java/rules/FractionsRule3.java | 4 - rules/src/main/java/rules/FractionsRule4.java | 4 - rules/src/main/java/rules/FractionsRule5.java | 4 +- rules/src/main/java/rules/FractionsRule6.java | 5 - rules/src/main/java/rules/FractionsRule7.java | 4 - rules/src/main/java/rules/FractionsRule8.java | 8 - rules/src/main/java/rules/FractionsRule9.java | 8 - rules/src/main/java/rules/NumberRule1.java | 3 - rules/src/main/java/rules/NumberRule2.java | 4 - rules/src/main/java/rules/NumberRule3.java | 4 - rules/src/main/java/rules/NumberRule4.java | 3 - rules/src/main/java/rules/NumberRule5.java | 3 - rules/src/main/java/rules/NumberRule7.java | 3 - rules/src/main/java/rules/UndefinedRule1.java | 3 - rules/src/main/java/rules/UndefinedRule2.java | 3 - rules/src/main/java/rules/VariableRule1.java | 3 - rules/src/main/java/rules/VariableRule2.java | 3 - rules/src/main/java/rules/VariableRule3.java | 3 - .../java/rules/functions/DivisionRule.java | 29 +-- .../java/rules/functions/EmptyNumberRule.java | 6 - .../java/rules/functions/ExpressionRule.java | 11 - .../main/java/rules/functions/JokeRule.java | 6 - .../rules/functions/MultiplicationRule.java | 9 - .../java/rules/functions/NegativeRule.java | 13 +- .../main/java/rules/functions/NumberRule.java | 9 +- .../main/java/rules/functions/PowerRule.java | 11 +- .../main/java/rules/functions/RootRule.java | 19 +- .../java/rules/functions/SubtractionRule.java | 8 - .../main/java/rules/functions/SumRule.java | 8 - .../rules/functions/SumSubtractionRule.java | 8 - .../java/rules/functions/VariableRule.java | 16 +- .../gui/graphicengine/html/HtmlEngine.java | 10 +- .../gui/graphicengine/html/HtmlFont.java | 3 - .../gui/graphicengine/html/HtmlRenderer.java | 3 - .../gui/graphicengine/html/HtmlSkin.java | 1 - .../warppi/teavm/TeaVMConsoleUtils.java | 2 +- .../it/cavallium/warppi/teavm/TeaVMGpio.java | 4 +- .../cavallium/warppi/teavm/TeaVMPlatform.java | 14 +- .../warppi/teavm/TeaVMPngReader.java | 2 +- .../cavallium/warppi/teavm/TeaVMPngUtils.java | 2 +- .../warppi/teavm/TeaVMSemaphore.java | 3 +- .../cavallium/warppi/teavm/TeaVMSettings.java | 23 ++ .../warppi/teavm/TeaVMStorageUtils.java | 2 +- .../warppi/teavm/TeaVMURLClassLoader.java | 2 +- 213 files changed, 444 insertions(+), 804 deletions(-) delete mode 100644 core/src/main/java/it/cavallium/warppi/BMPFile.java delete mode 100644 core/src/main/java/it/cavallium/warppi/IntegerObj.java rename core/src/main/java/it/cavallium/warppi/{deps => }/Platform.java (86%) rename core/src/main/java/it/cavallium/warppi/{deps/DJogamp.java => device/KeyboardJogampValues.java} (96%) rename core/src/main/java/it/cavallium/warppi/{ => util}/CacheUtils.java (93%) rename core/src/main/java/it/cavallium/warppi/{ => util}/ClassUtils.java (94%) rename core/src/main/java/it/cavallium/warppi/{ => util}/Error.java (87%) rename core/src/main/java/it/cavallium/warppi/{ => util}/Errors.java (84%) create mode 100644 core/src/main/java/it/cavallium/warppi/util/IntWrapper.java rename core/src/main/java/it/cavallium/warppi/{ => util}/ScriptUtils.java (92%) rename core/src/main/java/it/cavallium/warppi/{ => util}/Utils.java (95%) create mode 100644 core/src/test/java/it/cavallium/warppi/AppTest.java create mode 100644 desktop/src/main/java/it/cavallium/warppi/desktop/DesktopSettings.java rename {core => hardware}/src/main/java/cz/adamh/utils/NativeUtils.java (100%) rename {core => hardware}/src/main/java/it/cavallium/warppi/MmapByteBuffer.java (100%) rename {core => hardware}/src/main/java/it/cavallium/warppi/TestJNI.java (100%) create mode 100644 hardware/src/main/java/it/cavallium/warppi/hardware/HardwareSettings.java rename {core => hardware}/src/main/jni/.gitignore (100%) rename {core => hardware}/src/main/jni/CMakeLists.txt (100%) rename {core => hardware}/src/main/jni/TestJNI.cpp (100%) rename {core => hardware}/src/main/jni/TestJNI.h (100%) rename {core => hardware}/src/main/jni/libpicalc.so (100%) rename {core => hardware}/src/main/jni/makefileOLD (100%) create mode 100644 teavm/src/main/java/it/cavallium/warppi/teavm/TeaVMSettings.java diff --git a/core/.classpath b/core/.classpath index 906bfcec..cab3585c 100644 --- a/core/.classpath +++ b/core/.classpath @@ -13,9 +13,9 @@ + - diff --git a/core/pom.xml b/core/pom.xml index 1486d180..0d247183 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -31,6 +31,11 @@ org.apache.commons commons-lang3 + + junit + junit + test + diff --git a/core/src/main/java/it/cavallium/warppi/BMPFile.java b/core/src/main/java/it/cavallium/warppi/BMPFile.java deleted file mode 100644 index 5a83f7d5..00000000 --- a/core/src/main/java/it/cavallium/warppi/BMPFile.java +++ /dev/null @@ -1,221 +0,0 @@ -package it.cavallium.warppi; - -import java.awt.Component; -import java.awt.Image; -import java.awt.image.PixelGrabber; -import java.io.FileOutputStream; - -public class BMPFile extends Component { - /** - * - */ - private static final long serialVersionUID = 9182927946568629682L; - // --- Private constants - private final static int BITMAPFILEHEADER_SIZE = 14; - private final static int BITMAPINFOHEADER_SIZE = 40; - // --- Private variable declaration - // --- Bitmap file header - @SuppressWarnings("unused") - private final byte bitmapFileHeader[] = new byte[14]; - private final byte bfType[] = { 'B', 'M' }; - private int bfSize = 0; - private final int bfReserved1 = 0; - private final int bfReserved2 = 0; - private final int bfOffBits = BITMAPFILEHEADER_SIZE + BITMAPINFOHEADER_SIZE; - // --- Bitmap info header - @SuppressWarnings("unused") - private final byte bitmapInfoHeader[] = new byte[40]; - private final int biSize = BITMAPINFOHEADER_SIZE; - private int biWidth = 0; - private int biHeight = 0; - private final int biPlanes = 1; - private final int biBitCount = 24; - private final int biCompression = 0; - private int biSizeImage = 0x030000; - private final int biXPelsPerMeter = 0x0; - private final int biYPelsPerMeter = 0x0; - private final int biClrUsed = 0; - private final int biClrImportant = 0; - // --- Bitmap raw data - private int bitmap[]; - // --- File section - private FileOutputStream fo; - - // --- Default constructor - public BMPFile() {} - - public void saveBitmap(String parFilename, Image parImage, int parWidth, int parHeight) { - try { - fo = new FileOutputStream(parFilename); - save(parImage, parWidth, parHeight); - fo.close(); - } catch (final Exception saveEx) { - saveEx.printStackTrace(); - } - } - - /* - * The saveMethod is the main method of the process. This method - * will call the convertImage method to convert the memory image to - * a byte array; method writeBitmapFileHeader creates and writes - * the bitmap file header; writeBitmapInfoHeader creates the - * information header; and writeBitmap writes the image. - * - */ - private void save(Image parImage, int parWidth, int parHeight) { - try { - convertImage(parImage, parWidth, parHeight); - writeBitmapFileHeader(); - writeBitmapInfoHeader(); - writeBitmap(); - } catch (final Exception saveEx) { - saveEx.printStackTrace(); - } - } - - /* - * convertImage converts the memory image to the bitmap format (BRG). - * It also computes some information for the bitmap info header. - * - */ - private boolean convertImage(Image parImage, int parWidth, int parHeight) { - int pad; - bitmap = new int[parWidth * parHeight]; - final PixelGrabber pg = new PixelGrabber(parImage, 0, 0, parWidth, parHeight, bitmap, 0, parWidth); - try { - pg.grabPixels(); - } catch (final InterruptedException e) { - e.printStackTrace(); - return (false); - } - pad = (4 - ((parWidth * 3) % 4)) * parHeight; - biSizeImage = ((parWidth * parHeight) * 3) + pad; - bfSize = biSizeImage + BITMAPFILEHEADER_SIZE + BITMAPINFOHEADER_SIZE; - biWidth = parWidth; - biHeight = parHeight; - return (true); - } - - /* - * writeBitmap converts the image returned from the pixel grabber to - * the format required. Remember: scan lines are inverted in - * a bitmap file! - * - * Each scan line must be padded to an even 4-byte boundary. - */ - private void writeBitmap() { - int size; - int value; - int j; - int i; - int rowCount; - int rowIndex; - int lastRowIndex; - int pad; - int padCount; - final byte rgb[] = new byte[3]; - size = (biWidth * biHeight) - 1; - pad = 4 - ((biWidth * 3) % 4); - if (pad == 4) { - pad = 0; // <==== Bug correction - } - rowCount = 1; - padCount = 0; - rowIndex = size - biWidth; - lastRowIndex = rowIndex; - try { - for (j = 0; j < size; j++) { - value = bitmap[rowIndex]; - rgb[0] = (byte) (value & 0xFF); - rgb[1] = (byte) ((value >> 8) & 0xFF); - rgb[2] = (byte) ((value >> 16) & 0xFF); - fo.write(rgb); - if (rowCount == biWidth) { - padCount += pad; - for (i = 1; i <= pad; i++) { - fo.write(0x00); - } - rowCount = 1; - rowIndex = lastRowIndex - biWidth; - lastRowIndex = rowIndex; - } else { - rowCount++; - } - rowIndex++; - } - // --- Update the size of the file - bfSize += padCount - pad; - biSizeImage += padCount - pad; - } catch (final Exception wb) { - wb.printStackTrace(); - } - } - - /* - * writeBitmapFileHeader writes the bitmap file header to the file. - * - */ - private void writeBitmapFileHeader() { - try { - fo.write(bfType); - fo.write(intToDWord(bfSize)); - fo.write(intToWord(bfReserved1)); - fo.write(intToWord(bfReserved2)); - fo.write(intToDWord(bfOffBits)); - } catch (final Exception wbfh) { - wbfh.printStackTrace(); - } - } - - /* - * - * writeBitmapInfoHeader writes the bitmap information header - * to the file. - * - */ - private void writeBitmapInfoHeader() { - try { - fo.write(intToDWord(biSize)); - fo.write(intToDWord(biWidth)); - fo.write(intToDWord(biHeight)); - fo.write(intToWord(biPlanes)); - fo.write(intToWord(biBitCount)); - fo.write(intToDWord(biCompression)); - fo.write(intToDWord(biSizeImage)); - fo.write(intToDWord(biXPelsPerMeter)); - fo.write(intToDWord(biYPelsPerMeter)); - fo.write(intToDWord(biClrUsed)); - fo.write(intToDWord(biClrImportant)); - } catch (final Exception wbih) { - wbih.printStackTrace(); - } - } - - /* - * - * intToWord converts an int to a word, where the return - * value is stored in a 2-byte array. - * - */ - private byte[] intToWord(int parValue) { - final byte retValue[] = new byte[2]; - retValue[0] = (byte) (parValue & 0x00FF); - retValue[1] = (byte) ((parValue >> 8) & 0x00FF); - return (retValue); - } - - /* - * - * intToDWord converts an int to a double word, where the return - * value is stored in a 4-byte array. - * - */ - private byte[] intToDWord(int parValue) { - final byte retValue[] = new byte[4]; - retValue[0] = (byte) (parValue & 0x00FF); - retValue[1] = (byte) ((parValue >> 8) & 0x000000FF); - retValue[2] = (byte) ((parValue >> 16) & 0x000000FF); - retValue[3] = (byte) ((parValue >> 24) & 0x000000FF); - return (retValue); - } -} \ No newline at end of file diff --git a/core/src/main/java/it/cavallium/warppi/Engine.java b/core/src/main/java/it/cavallium/warppi/Engine.java index 34378aff..df7b2e0b 100644 --- a/core/src/main/java/it/cavallium/warppi/Engine.java +++ b/core/src/main/java/it/cavallium/warppi/Engine.java @@ -2,9 +2,8 @@ package it.cavallium.warppi; import java.io.IOException; +import it.cavallium.warppi.Platform.ConsoleUtils; import it.cavallium.warppi.boot.StartupArguments; -import it.cavallium.warppi.deps.Platform; -import it.cavallium.warppi.deps.Platform.ConsoleUtils; import it.cavallium.warppi.device.HardwareDevice; import it.cavallium.warppi.device.HardwareTouchDevice; import it.cavallium.warppi.device.InputManager; @@ -15,6 +14,7 @@ import it.cavallium.warppi.gui.DisplayManager; import it.cavallium.warppi.gui.HUD; import it.cavallium.warppi.gui.HardwareDisplay; import it.cavallium.warppi.gui.screens.Screen; +import it.cavallium.warppi.util.ClassUtils; public class Engine { public static final Engine INSTANCE = new Engine(); @@ -93,7 +93,7 @@ public class Engine { Engine.getPlatform().getGpio().pinMode(12, Engine.getPlatform().getGpio().valuePwmOutput()); } else { StaticVars.screenPos = new int[] { 0, 0 }; - StaticVars.debugOn = true; + Engine.getPlatform().getSettings().setDebugEnabled(true); } } diff --git a/core/src/main/java/it/cavallium/warppi/IntegerObj.java b/core/src/main/java/it/cavallium/warppi/IntegerObj.java deleted file mode 100644 index a0fa20a0..00000000 --- a/core/src/main/java/it/cavallium/warppi/IntegerObj.java +++ /dev/null @@ -1,9 +0,0 @@ -package it.cavallium.warppi; - -public class IntegerObj { - public int i; - - public IntegerObj(int i) { - this.i = i; - } -} diff --git a/core/src/main/java/it/cavallium/warppi/deps/Platform.java b/core/src/main/java/it/cavallium/warppi/Platform.java similarity index 86% rename from core/src/main/java/it/cavallium/warppi/deps/Platform.java rename to core/src/main/java/it/cavallium/warppi/Platform.java index 23ecf5a8..8bad5737 100644 --- a/core/src/main/java/it/cavallium/warppi/deps/Platform.java +++ b/core/src/main/java/it/cavallium/warppi/Platform.java @@ -1,4 +1,4 @@ -package it.cavallium.warppi.deps; +package it.cavallium.warppi; import java.io.File; import java.io.IOException; @@ -8,9 +8,9 @@ import java.net.URISyntaxException; import java.net.URL; import java.util.List; import java.util.Map; -import it.cavallium.warppi.Error; + import it.cavallium.warppi.gui.graphicengine.GraphicEngine; -import it.cavallium.warppi.gui.graphicengine.Skin; +import it.cavallium.warppi.util.Error; public interface Platform { @@ -18,6 +18,7 @@ public interface Platform { public Gpio getGpio(); public StorageUtils getStorageUtils(); public PngUtils getPngUtils(); + public Settings getSettings(); public void setThreadName(Thread t, String name); public void setThreadDaemon(Thread t); @@ -159,4 +160,23 @@ public interface Platform { } } + + public interface Settings { + + public boolean isDebugEnabled(); + + public void setDebugEnabled(boolean debugOn); + + public default String getCalculatorName() { + return "WarpPI"; + } + public default String getCalculatorNameLowercase() { + return "warppi"; + } + public default String getCalculatorNameUppercase() { + return "WARPPI"; + } + + } + } diff --git a/core/src/main/java/it/cavallium/warppi/StaticVars.java b/core/src/main/java/it/cavallium/warppi/StaticVars.java index 07bc4a5d..2ac86784 100644 --- a/core/src/main/java/it/cavallium/warppi/StaticVars.java +++ b/core/src/main/java/it/cavallium/warppi/StaticVars.java @@ -6,16 +6,13 @@ import it.cavallium.warppi.boot.StartupArguments; import it.cavallium.warppi.flow.BehaviorSubject; import it.cavallium.warppi.flow.Observable; +/* + * TODO: Move everything to Engine.Settings + */ public class StaticVars { - public static final boolean enableVBO = true; - public static final String calculatorName = "WarpPI"; - public static final String calculatorNameLOWER = calculatorName.toLowerCase(); - public static final String calculatorNameUPPER = calculatorName.toUpperCase(); - public static boolean haxMode = true; public static final boolean zoomed = true; public static int[] screenPos = new int[] { 0, 0 }; public static final int[] screenSize = new int[] { 480, 320 }; - public static boolean debugOn; public static int outputLevel = 0; public static boolean debugWindow2x = false; public static BehaviorSubject windowZoom = BehaviorSubject.create(2F); diff --git a/core/src/main/java/it/cavallium/warppi/boot/Boot.java b/core/src/main/java/it/cavallium/warppi/boot/Boot.java index 763720b2..d3ffaea2 100644 --- a/core/src/main/java/it/cavallium/warppi/boot/Boot.java +++ b/core/src/main/java/it/cavallium/warppi/boot/Boot.java @@ -4,14 +4,13 @@ import java.util.Arrays; import it.cavallium.warppi.Engine; import it.cavallium.warppi.Engine.LoadingStatus; -import it.cavallium.warppi.Error; -import it.cavallium.warppi.deps.Platform; -import it.cavallium.warppi.device.HardwareDevice; +import it.cavallium.warppi.Platform; import it.cavallium.warppi.device.PIHardwareDisplay; import it.cavallium.warppi.device.PIHardwareTouchDevice; import it.cavallium.warppi.gui.CalculatorHUD; import it.cavallium.warppi.gui.screens.LoadingScreen; import it.cavallium.warppi.math.rules.RulesManager; +import it.cavallium.warppi.util.Error; public class Boot { diff --git a/core/src/main/java/it/cavallium/warppi/device/CacheFile.java b/core/src/main/java/it/cavallium/warppi/device/CacheFile.java index 2488dec9..48a5eb29 100644 --- a/core/src/main/java/it/cavallium/warppi/device/CacheFile.java +++ b/core/src/main/java/it/cavallium/warppi/device/CacheFile.java @@ -8,7 +8,7 @@ import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.util.UUID; -import it.cavallium.warppi.StaticVars; +import it.cavallium.warppi.Engine; public class CacheFile { private String path; @@ -22,7 +22,7 @@ public class CacheFile { path = UUID.randomUUID().toString() + ".ser"; } while (new File(path).exists()); try { - File.createTempFile(StaticVars.calculatorNameLOWER, ""); + File.createTempFile(Engine.getPlatform().getSettings().getCalculatorNameLowercase(), ""); } catch (final IOException e) { e.printStackTrace(); } diff --git a/core/src/main/java/it/cavallium/warppi/device/Keyboard.java b/core/src/main/java/it/cavallium/warppi/device/Keyboard.java index 3467bd36..b1854d1f 100644 --- a/core/src/main/java/it/cavallium/warppi/device/Keyboard.java +++ b/core/src/main/java/it/cavallium/warppi/device/Keyboard.java @@ -3,9 +3,8 @@ package it.cavallium.warppi.device; import java.awt.event.KeyEvent; import it.cavallium.warppi.Engine; +import it.cavallium.warppi.Platform.ConsoleUtils; import it.cavallium.warppi.StaticVars; -import it.cavallium.warppi.deps.DJogamp; -import it.cavallium.warppi.deps.Platform.ConsoleUtils; import it.cavallium.warppi.device.chip.ParallelToSerial; import it.cavallium.warppi.device.chip.SerialToParallel; import it.cavallium.warppi.event.Key; @@ -42,7 +41,7 @@ public class Keyboard { public synchronized void startKeyboard() { final Thread kt = new Thread(() -> { - if (StaticVars.debugOn) { + if (Engine.getPlatform().getSettings().isDebugEnabled()) { try { while (true) { if (debugKeyCode != -1) { @@ -215,7 +214,7 @@ public class Keyboard { Keyboard.keyPressed(Key.LOGARITHM); } break; - case DJogamp.VK_ENTER: + case KeyboardJogampValues.VK_ENTER: case KeyEvent.VK_ENTER: if (Keyboard.shift) { Keyboard.keyPressed(Key.STEP); @@ -274,7 +273,7 @@ public class Keyboard { if (!Keyboard.shift && !Keyboard.alpha) { Keyboard.keyPressed(Key.NUM7); } else if (Keyboard.shift) { - if (StaticVars.debugOn) { + if (Engine.getPlatform().getSettings().isDebugEnabled()) { Keyboard.keyPressed(Key.DIVIDE); } } @@ -315,7 +314,7 @@ public class Keyboard { Keyboard.keyPressed(Key.LETTER_M); } break; - case DJogamp.VK_ADD: + case KeyboardJogampValues.VK_ADD: case KeyEvent.VK_ADD: if (!Keyboard.shift && !Keyboard.alpha) { Keyboard.keyPressed(Key.PLUS); @@ -325,7 +324,7 @@ public class Keyboard { Keyboard.keyPressed(Key.NONE); } break; - case DJogamp.VK_SUBTRACT: + case KeyboardJogampValues.VK_SUBTRACT: case KeyEvent.VK_SUBTRACT: if (!Keyboard.shift && !Keyboard.alpha) { Keyboard.keyPressed(Key.MINUS); @@ -333,7 +332,7 @@ public class Keyboard { Keyboard.keyPressed(Key.NONE); } break; - case DJogamp.VK_MULTIPLY: + case KeyboardJogampValues.VK_MULTIPLY: case KeyEvent.VK_MULTIPLY: if (!Keyboard.shift && !Keyboard.alpha) { Keyboard.keyPressed(Key.MULTIPLY); @@ -341,7 +340,7 @@ public class Keyboard { Keyboard.keyPressed(Key.NONE); } break; - case DJogamp.VK_DIVIDE: + case KeyboardJogampValues.VK_DIVIDE: case KeyEvent.VK_DIVIDE: if (!Keyboard.shift && !Keyboard.alpha) { Keyboard.keyPressed(Key.DIVIDE); @@ -352,7 +351,7 @@ public class Keyboard { case KeyEvent.VK_BACK_SPACE: Keyboard.keyPressed(Key.DELETE); break; - case DJogamp.VK_DELETE: + case KeyboardJogampValues.VK_DELETE: case KeyEvent.VK_DELETE: if (!Keyboard.shift && !Keyboard.alpha) { Keyboard.keyPressed(Key.RESET); @@ -360,7 +359,7 @@ public class Keyboard { Keyboard.keyPressed(Key.NONE); } break; - case DJogamp.VK_LEFT: + case KeyboardJogampValues.VK_LEFT: case KeyEvent.VK_LEFT: //LEFT row = 2; @@ -372,7 +371,7 @@ public class Keyboard { Keyboard.keyPressed(Key.NONE); } break; - case DJogamp.VK_RIGHT: + case KeyboardJogampValues.VK_RIGHT: case KeyEvent.VK_RIGHT: //RIGHT row = 2; @@ -384,7 +383,7 @@ public class Keyboard { Keyboard.keyPressed(Key.NONE); } break; - case DJogamp.VK_UP: + case KeyboardJogampValues.VK_UP: case KeyEvent.VK_UP: //UP row = 1; @@ -396,7 +395,7 @@ public class Keyboard { Keyboard.keyPressed(Key.NONE); } break; - case DJogamp.VK_DOWN: + case KeyboardJogampValues.VK_DOWN: case KeyEvent.VK_DOWN: //DOWN row = 3; @@ -419,7 +418,7 @@ public class Keyboard { Keyboard.keyPressed(Key.NONE); } break; - case DJogamp.VK_NUMPAD4: + case KeyboardJogampValues.VK_NUMPAD4: case KeyEvent.VK_NUMPAD4: if (!Keyboard.shift && !Keyboard.alpha) { Keyboard.keyPressed(Key.HISTORY_BACK); @@ -427,7 +426,7 @@ public class Keyboard { Keyboard.keyPressed(Key.NONE); } break; - case DJogamp.VK_NUMPAD6: + case KeyboardJogampValues.VK_NUMPAD6: case KeyEvent.VK_NUMPAD6: if (!Keyboard.shift && !Keyboard.alpha) { Keyboard.keyPressed(Key.HISTORY_FORWARD); @@ -585,26 +584,26 @@ public class Keyboard { Keyboard.keyPressed(Key.NONE); } break; - case DJogamp.VK_SHIFT: + case KeyboardJogampValues.VK_SHIFT: case KeyEvent.VK_SHIFT: Keyboard.keyPressed(Key.SHIFT); break; case KeyEvent.VK_CONTROL: Keyboard.keyPressed(Key.ALPHA); break; - case DJogamp.VK_NUMPAD1: + case KeyboardJogampValues.VK_NUMPAD1: case KeyEvent.VK_NUMPAD1: Keyboard.keyPressed(Key.SQRT); break; - case DJogamp.VK_NUMPAD2: + case KeyboardJogampValues.VK_NUMPAD2: case KeyEvent.VK_NUMPAD2: Keyboard.keyPressed(Key.ROOT); break; - case DJogamp.VK_NUMPAD3: + case KeyboardJogampValues.VK_NUMPAD3: case KeyEvent.VK_NUMPAD3: Keyboard.keyPressed(Key.POWER_OF_2); break; - case DJogamp.VK_NUMPAD5: + case KeyboardJogampValues.VK_NUMPAD5: case KeyEvent.VK_NUMPAD5: Keyboard.keyPressed(Key.POWER_OF_x); break; @@ -618,14 +617,14 @@ public class Keyboard { int col = 1; Keyboard.debugKeysDown[row - 1][col - 1] = false; break; - case DJogamp.VK_LEFT: + case KeyboardJogampValues.VK_LEFT: case KeyEvent.VK_LEFT: //LEFT row = 2; col = 3; Keyboard.debugKeysDown[row - 1][col - 1] = false; break; - case DJogamp.VK_RIGHT: + case KeyboardJogampValues.VK_RIGHT: case KeyEvent.VK_RIGHT: //RIGHT row = 2; @@ -633,14 +632,14 @@ public class Keyboard { Keyboard.debugKeysDown[row - 1][col - 1] = false; System.out.println("RELEASE"); break; - case DJogamp.VK_UP: + case KeyboardJogampValues.VK_UP: case KeyEvent.VK_UP: //UP row = 1; col = 4; Keyboard.debugKeysDown[row - 1][col - 1] = false; break; - case DJogamp.VK_DOWN: + case KeyboardJogampValues.VK_DOWN: case KeyEvent.VK_DOWN: //DOWN row = 3; @@ -657,7 +656,7 @@ public class Keyboard { } public static boolean isKeyDown(int row, int col) { - if (StaticVars.debugOn == false) { + if (Engine.getPlatform().getSettings().isDebugEnabled() == false) { return precedentStates[row - 1][col - 1]; } else { return debugKeysDown[row - 1][col - 1]; @@ -863,7 +862,7 @@ public class Keyboard { } public static void stopKeyboard() { - if (StaticVars.debugOn == false) { + if (Engine.getPlatform().getSettings().isDebugEnabled() == false) { Engine.getPlatform().getGpio().digitalWrite(33, false); Engine.getPlatform().getGpio().digitalWrite(35, false); Engine.getPlatform().getGpio().digitalWrite(36, false); diff --git a/core/src/main/java/it/cavallium/warppi/deps/DJogamp.java b/core/src/main/java/it/cavallium/warppi/device/KeyboardJogampValues.java similarity index 96% rename from core/src/main/java/it/cavallium/warppi/deps/DJogamp.java rename to core/src/main/java/it/cavallium/warppi/device/KeyboardJogampValues.java index 0e62caa1..7a59f6f7 100644 --- a/core/src/main/java/it/cavallium/warppi/deps/DJogamp.java +++ b/core/src/main/java/it/cavallium/warppi/device/KeyboardJogampValues.java @@ -1,6 +1,6 @@ -package it.cavallium.warppi.deps; +package it.cavallium.warppi.device; -public interface DJogamp { +public interface KeyboardJogampValues { // // Unicode: Non printable controls: [0x00 - 0x1F] diff --git a/core/src/main/java/it/cavallium/warppi/device/PIHardwareDisplay.java b/core/src/main/java/it/cavallium/warppi/device/PIHardwareDisplay.java index e5db0d21..b29326b9 100644 --- a/core/src/main/java/it/cavallium/warppi/device/PIHardwareDisplay.java +++ b/core/src/main/java/it/cavallium/warppi/device/PIHardwareDisplay.java @@ -1,7 +1,6 @@ package it.cavallium.warppi.device; import it.cavallium.warppi.Engine; -import it.cavallium.warppi.StaticVars; import it.cavallium.warppi.gui.HardwareDisplay; public class PIHardwareDisplay implements HardwareDisplay { @@ -14,7 +13,7 @@ public class PIHardwareDisplay implements HardwareDisplay { @Override public void setBrightness(double value) { - if (StaticVars.debugOn == false) { + if (Engine.getPlatform().getSettings().isDebugEnabled() == false) { Engine.getPlatform().getGpio().pwmWrite(12, (int) Math.ceil(value * 1024f)); // SoftPwm.softPwmWrite(12, (int)(Math.ceil(brightness*10))); } else { diff --git a/core/src/main/java/it/cavallium/warppi/device/graphicengine/RAWFont.java b/core/src/main/java/it/cavallium/warppi/device/graphicengine/RAWFont.java index 4e298720..0b69f52f 100644 --- a/core/src/main/java/it/cavallium/warppi/device/graphicengine/RAWFont.java +++ b/core/src/main/java/it/cavallium/warppi/device/graphicengine/RAWFont.java @@ -11,9 +11,9 @@ import java.util.logging.Logger; import javax.imageio.ImageIO; -import it.cavallium.warppi.ClassUtils; import it.cavallium.warppi.Engine; -import it.cavallium.warppi.Utils; +import it.cavallium.warppi.util.ClassUtils; +import it.cavallium.warppi.util.Utils; /** * diff --git a/core/src/main/java/it/cavallium/warppi/gui/CalculatorHUD.java b/core/src/main/java/it/cavallium/warppi/gui/CalculatorHUD.java index 41d177dd..93d1c9dc 100644 --- a/core/src/main/java/it/cavallium/warppi/gui/CalculatorHUD.java +++ b/core/src/main/java/it/cavallium/warppi/gui/CalculatorHUD.java @@ -2,12 +2,11 @@ package it.cavallium.warppi.gui; import it.cavallium.warppi.Engine; import it.cavallium.warppi.StaticVars; -import it.cavallium.warppi.Utils; -import it.cavallium.warppi.device.HardwareDevice; import it.cavallium.warppi.device.Keyboard; import it.cavallium.warppi.gui.graphicengine.GraphicEngine; import it.cavallium.warppi.gui.graphicengine.Renderer; import it.cavallium.warppi.gui.graphicengine.Skin; +import it.cavallium.warppi.util.Utils; public class CalculatorHUD extends HUD { @@ -92,7 +91,7 @@ public class CalculatorHUD extends HUD { final boolean canGoBack = Engine.INSTANCE.getHardwareDevice().getDisplayManager().canGoBack(); final boolean canGoForward = Engine.INSTANCE.getHardwareDevice().getDisplayManager().canGoForward(); - if (StaticVars.haxMode) { + if (Engine.getPlatform().getSettings().isDebugEnabled()) { renderer.glFillRect(StaticVars.screenSize[0] - (padding + 16), 2, 16, 16, 16 * 18, 16 * 0, 16, 16); padding += 18 + 6; } diff --git a/core/src/main/java/it/cavallium/warppi/gui/DisplayManager.java b/core/src/main/java/it/cavallium/warppi/gui/DisplayManager.java index d5f1f3c1..b7648c35 100644 --- a/core/src/main/java/it/cavallium/warppi/gui/DisplayManager.java +++ b/core/src/main/java/it/cavallium/warppi/gui/DisplayManager.java @@ -7,10 +7,9 @@ import java.util.List; import org.apache.commons.lang3.tuple.Pair; import it.cavallium.warppi.Engine; +import it.cavallium.warppi.Platform.ConsoleUtils; +import it.cavallium.warppi.Platform.Semaphore; import it.cavallium.warppi.StaticVars; -import it.cavallium.warppi.Utils; -import it.cavallium.warppi.deps.Platform.ConsoleUtils; -import it.cavallium.warppi.deps.Platform.Semaphore; import it.cavallium.warppi.device.Keyboard; import it.cavallium.warppi.flow.Observable; import it.cavallium.warppi.gui.graphicengine.BinaryFont; @@ -20,6 +19,7 @@ import it.cavallium.warppi.gui.graphicengine.RenderingLoop; import it.cavallium.warppi.gui.graphicengine.Skin; import it.cavallium.warppi.gui.graphicengine.nogui.NoGuiEngine; import it.cavallium.warppi.gui.screens.Screen; +import it.cavallium.warppi.util.Utils; import it.unimi.dsi.fastutil.objects.ObjectArrayList; public final class DisplayManager implements RenderingLoop { @@ -327,7 +327,7 @@ public final class DisplayManager implements RenderingLoop { fnt.use(engine); } renderer.glColor3i(129, 28, 22); - renderer.glDrawStringRight(StaticVars.screenSize[0] - 2, StaticVars.screenSize[1] - (fnt.getCharacterHeight() + 2), StaticVars.calculatorNameUPPER + " CALCULATOR"); + renderer.glDrawStringRight(StaticVars.screenSize[0] - 2, StaticVars.screenSize[1] - (fnt.getCharacterHeight() + 2), Engine.getPlatform().getSettings().getCalculatorNameUppercase() + " CALCULATOR"); renderer.glColor3i(149, 32, 26); renderer.glDrawStringCenter((StaticVars.screenSize[0] / 2), 22, error); renderer.glColor3i(164, 34, 28); diff --git a/core/src/main/java/it/cavallium/warppi/gui/GUIErrorMessage.java b/core/src/main/java/it/cavallium/warppi/gui/GUIErrorMessage.java index 5c345c11..d1f2432c 100644 --- a/core/src/main/java/it/cavallium/warppi/gui/GUIErrorMessage.java +++ b/core/src/main/java/it/cavallium/warppi/gui/GUIErrorMessage.java @@ -1,8 +1,8 @@ package it.cavallium.warppi.gui; -import it.cavallium.warppi.Error; import it.cavallium.warppi.gui.graphicengine.GraphicEngine; import it.cavallium.warppi.gui.graphicengine.Renderer; +import it.cavallium.warppi.util.Error; public class GUIErrorMessage { diff --git a/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/Block.java b/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/Block.java index c84cf880..51757c9f 100644 --- a/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/Block.java +++ b/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/Block.java @@ -1,6 +1,5 @@ package it.cavallium.warppi.gui.expression.blocks; -import it.cavallium.warppi.Error; import it.cavallium.warppi.gui.GraphicalElement; import it.cavallium.warppi.gui.expression.Caret; import it.cavallium.warppi.gui.expression.ExtraMenu; @@ -8,6 +7,7 @@ import it.cavallium.warppi.gui.graphicengine.GraphicEngine; import it.cavallium.warppi.gui.graphicengine.Renderer; import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.math.parser.features.interfaces.Feature; +import it.cavallium.warppi.util.Error; public abstract class Block implements GraphicalElement { diff --git a/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/BlockContainer.java b/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/BlockContainer.java index 217c6fb5..ce02c680 100644 --- a/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/BlockContainer.java +++ b/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/BlockContainer.java @@ -1,7 +1,5 @@ package it.cavallium.warppi.gui.expression.blocks; -import it.cavallium.warppi.Error; -import it.cavallium.warppi.Errors; import it.cavallium.warppi.Engine; import it.cavallium.warppi.gui.GraphicalElement; import it.cavallium.warppi.gui.expression.Caret; @@ -13,6 +11,8 @@ import it.cavallium.warppi.math.Function; import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.math.parser.MathParser; import it.cavallium.warppi.math.parser.features.interfaces.Feature; +import it.cavallium.warppi.util.Error; +import it.cavallium.warppi.util.Errors; import it.unimi.dsi.fastutil.objects.ObjectArrayList; public class BlockContainer implements GraphicalElement { diff --git a/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/BlockDivision.java b/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/BlockDivision.java index 54da1728..11509145 100644 --- a/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/BlockDivision.java +++ b/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/BlockDivision.java @@ -1,6 +1,5 @@ package it.cavallium.warppi.gui.expression.blocks; -import it.cavallium.warppi.Error; import it.cavallium.warppi.gui.expression.Caret; import it.cavallium.warppi.gui.graphicengine.GraphicEngine; import it.cavallium.warppi.gui.graphicengine.Renderer; @@ -8,6 +7,7 @@ import it.cavallium.warppi.math.Function; import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.math.parser.features.FeatureDivision; import it.cavallium.warppi.math.parser.features.interfaces.Feature; +import it.cavallium.warppi.util.Error; public class BlockDivision extends Block { diff --git a/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/BlockLogarithm.java b/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/BlockLogarithm.java index 45b56e15..d96d9b36 100644 --- a/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/BlockLogarithm.java +++ b/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/BlockLogarithm.java @@ -1,6 +1,5 @@ package it.cavallium.warppi.gui.expression.blocks; -import it.cavallium.warppi.Error; import it.cavallium.warppi.gui.expression.Caret; import it.cavallium.warppi.gui.graphicengine.GraphicEngine; import it.cavallium.warppi.gui.graphicengine.Renderer; @@ -8,6 +7,7 @@ import it.cavallium.warppi.math.Function; import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.math.parser.features.FeatureLogarithm; import it.cavallium.warppi.math.parser.features.interfaces.Feature; +import it.cavallium.warppi.util.Error; import it.unimi.dsi.fastutil.objects.ObjectArrayList; public class BlockLogarithm extends Block { diff --git a/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/BlockParenthesis.java b/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/BlockParenthesis.java index d7944c43..36b55f81 100644 --- a/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/BlockParenthesis.java +++ b/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/BlockParenthesis.java @@ -1,10 +1,10 @@ package it.cavallium.warppi.gui.expression.blocks; -import it.cavallium.warppi.Error; import it.cavallium.warppi.math.Function; import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.math.parser.features.FeatureParenthesis; import it.cavallium.warppi.math.parser.features.interfaces.Feature; +import it.cavallium.warppi.util.Error; import it.unimi.dsi.fastutil.objects.ObjectArrayList; public class BlockParenthesis extends BlockParenthesisAbstract { diff --git a/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/BlockParenthesisAbstract.java b/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/BlockParenthesisAbstract.java index 14c6fb37..da8b0821 100644 --- a/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/BlockParenthesisAbstract.java +++ b/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/BlockParenthesisAbstract.java @@ -1,11 +1,11 @@ package it.cavallium.warppi.gui.expression.blocks; -import it.cavallium.warppi.Error; import it.cavallium.warppi.gui.expression.Caret; import it.cavallium.warppi.gui.graphicengine.GraphicEngine; import it.cavallium.warppi.gui.graphicengine.Renderer; import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.math.parser.features.interfaces.Feature; +import it.cavallium.warppi.util.Error; import it.unimi.dsi.fastutil.objects.ObjectArrayList; public abstract class BlockParenthesisAbstract extends Block { diff --git a/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/BlockPower.java b/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/BlockPower.java index 40aee0b9..fc4a9218 100644 --- a/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/BlockPower.java +++ b/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/BlockPower.java @@ -1,6 +1,5 @@ package it.cavallium.warppi.gui.expression.blocks; -import it.cavallium.warppi.Error; import it.cavallium.warppi.gui.expression.Caret; import it.cavallium.warppi.gui.graphicengine.GraphicEngine; import it.cavallium.warppi.gui.graphicengine.Renderer; @@ -8,6 +7,7 @@ import it.cavallium.warppi.math.Function; import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.math.parser.features.FeaturePowerChar; import it.cavallium.warppi.math.parser.features.interfaces.Feature; +import it.cavallium.warppi.util.Error; public class BlockPower extends Block { diff --git a/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/BlockPower2.java b/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/BlockPower2.java index 48448522..e89eac3a 100644 --- a/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/BlockPower2.java +++ b/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/BlockPower2.java @@ -1,6 +1,5 @@ package it.cavallium.warppi.gui.expression.blocks; -import it.cavallium.warppi.Error; import it.cavallium.warppi.gui.expression.Caret; import it.cavallium.warppi.gui.graphicengine.GraphicEngine; import it.cavallium.warppi.gui.graphicengine.Renderer; @@ -8,6 +7,7 @@ import it.cavallium.warppi.math.Function; import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.math.parser.features.FeaturePowerChar; import it.cavallium.warppi.math.parser.features.interfaces.Feature; +import it.cavallium.warppi.util.Error; public class BlockPower2 extends Block { diff --git a/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/BlockSine.java b/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/BlockSine.java index 0c958672..f403bc04 100644 --- a/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/BlockSine.java +++ b/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/BlockSine.java @@ -1,10 +1,10 @@ package it.cavallium.warppi.gui.expression.blocks; -import it.cavallium.warppi.Error; import it.cavallium.warppi.math.Function; import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.math.parser.features.FeatureSine; import it.cavallium.warppi.math.parser.features.interfaces.Feature; +import it.cavallium.warppi.util.Error; public class BlockSine extends BlockParenthesisAbstract { public BlockSine() { diff --git a/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/BlockSquareRoot.java b/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/BlockSquareRoot.java index d52098d6..3628c8d8 100644 --- a/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/BlockSquareRoot.java +++ b/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/BlockSquareRoot.java @@ -1,6 +1,5 @@ package it.cavallium.warppi.gui.expression.blocks; -import it.cavallium.warppi.Error; import it.cavallium.warppi.gui.expression.Caret; import it.cavallium.warppi.gui.graphicengine.GraphicEngine; import it.cavallium.warppi.gui.graphicengine.Renderer; @@ -8,6 +7,7 @@ import it.cavallium.warppi.math.Function; import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.math.parser.features.FeatureSquareRoot; import it.cavallium.warppi.math.parser.features.interfaces.Feature; +import it.cavallium.warppi.util.Error; public class BlockSquareRoot extends Block { diff --git a/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/BlockVariable.java b/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/BlockVariable.java index 5f76242b..2ff29b00 100644 --- a/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/BlockVariable.java +++ b/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/BlockVariable.java @@ -1,8 +1,6 @@ package it.cavallium.warppi.gui.expression.blocks; import it.cavallium.warppi.Engine; -import it.cavallium.warppi.Error; -import it.cavallium.warppi.device.HardwareDevice; import it.cavallium.warppi.event.KeyPressedEvent; import it.cavallium.warppi.event.KeyReleasedEvent; import it.cavallium.warppi.gui.expression.Caret; @@ -15,6 +13,7 @@ import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.math.functions.Variable.V_TYPE; import it.cavallium.warppi.math.parser.features.FeatureVariable; import it.cavallium.warppi.math.parser.features.interfaces.Feature; +import it.cavallium.warppi.util.Error; public class BlockVariable extends Block { diff --git a/core/src/main/java/it/cavallium/warppi/gui/expression/containers/InputContainer.java b/core/src/main/java/it/cavallium/warppi/gui/expression/containers/InputContainer.java index 2dade2ad..010ca3f5 100644 --- a/core/src/main/java/it/cavallium/warppi/gui/expression/containers/InputContainer.java +++ b/core/src/main/java/it/cavallium/warppi/gui/expression/containers/InputContainer.java @@ -2,7 +2,6 @@ package it.cavallium.warppi.gui.expression.containers; import java.io.Serializable; -import it.cavallium.warppi.Error; import it.cavallium.warppi.event.KeyboardEventListener; import it.cavallium.warppi.gui.GraphicalElement; import it.cavallium.warppi.gui.expression.Caret; @@ -17,6 +16,7 @@ import it.cavallium.warppi.gui.graphicengine.GraphicEngine; import it.cavallium.warppi.gui.graphicengine.Renderer; import it.cavallium.warppi.math.Function; import it.cavallium.warppi.math.MathContext; +import it.cavallium.warppi.util.Error; import it.unimi.dsi.fastutil.objects.ObjectArrayList; public abstract class InputContainer implements GraphicalElement, InputLayout, Serializable { diff --git a/core/src/main/java/it/cavallium/warppi/gui/graphicengine/common/PngSkin.java b/core/src/main/java/it/cavallium/warppi/gui/graphicengine/common/PngSkin.java index 6ea05608..4dfc3604 100644 --- a/core/src/main/java/it/cavallium/warppi/gui/graphicengine/common/PngSkin.java +++ b/core/src/main/java/it/cavallium/warppi/gui/graphicengine/common/PngSkin.java @@ -8,7 +8,7 @@ import java.net.URISyntaxException; import javax.imageio.ImageIO; import it.cavallium.warppi.Engine; -import it.cavallium.warppi.deps.Platform.PngUtils.PngReader; +import it.cavallium.warppi.Platform.PngUtils.PngReader; import it.cavallium.warppi.gui.graphicengine.GraphicEngine; import it.cavallium.warppi.gui.graphicengine.Skin; diff --git a/core/src/main/java/it/cavallium/warppi/gui/graphicengine/common/RFTFont.java b/core/src/main/java/it/cavallium/warppi/gui/graphicengine/common/RFTFont.java index cac53c5d..01b07b54 100644 --- a/core/src/main/java/it/cavallium/warppi/gui/graphicengine/common/RFTFont.java +++ b/core/src/main/java/it/cavallium/warppi/gui/graphicengine/common/RFTFont.java @@ -13,10 +13,10 @@ import java.util.logging.Logger; import javax.imageio.ImageIO; import it.cavallium.warppi.Engine; -import it.cavallium.warppi.Utils; -import it.cavallium.warppi.deps.Platform.ConsoleUtils; +import it.cavallium.warppi.Platform.ConsoleUtils; import it.cavallium.warppi.gui.graphicengine.BinaryFont; import it.cavallium.warppi.gui.graphicengine.GraphicEngine; +import it.cavallium.warppi.util.Utils; public abstract class RFTFont implements BinaryFont { diff --git a/core/src/main/java/it/cavallium/warppi/gui/graphicengine/nogui/NoGuiEngine.java b/core/src/main/java/it/cavallium/warppi/gui/graphicengine/nogui/NoGuiEngine.java index 6c93d9dd..76f68bb4 100644 --- a/core/src/main/java/it/cavallium/warppi/gui/graphicengine/nogui/NoGuiEngine.java +++ b/core/src/main/java/it/cavallium/warppi/gui/graphicengine/nogui/NoGuiEngine.java @@ -3,7 +3,7 @@ package it.cavallium.warppi.gui.graphicengine.nogui; import java.io.IOException; import it.cavallium.warppi.Engine; -import it.cavallium.warppi.deps.Platform.Semaphore; +import it.cavallium.warppi.Platform.Semaphore; import it.cavallium.warppi.flow.Observable; import it.cavallium.warppi.gui.graphicengine.BinaryFont; import it.cavallium.warppi.gui.graphicengine.GraphicEngine; diff --git a/core/src/main/java/it/cavallium/warppi/gui/screens/ChooseVariableValueScreen.java b/core/src/main/java/it/cavallium/warppi/gui/screens/ChooseVariableValueScreen.java index 021e5f23..43108f04 100644 --- a/core/src/main/java/it/cavallium/warppi/gui/screens/ChooseVariableValueScreen.java +++ b/core/src/main/java/it/cavallium/warppi/gui/screens/ChooseVariableValueScreen.java @@ -2,11 +2,10 @@ package it.cavallium.warppi.gui.screens; import it.cavallium.warppi.Engine; import it.cavallium.warppi.StaticVars; -import it.cavallium.warppi.Utils; -import it.cavallium.warppi.device.HardwareDevice; import it.cavallium.warppi.event.KeyPressedEvent; import it.cavallium.warppi.math.Function; import it.cavallium.warppi.math.functions.Variable.VariableValue; +import it.cavallium.warppi.util.Utils; public class ChooseVariableValueScreen extends Screen { diff --git a/core/src/main/java/it/cavallium/warppi/gui/screens/KeyboardDebugScreen.java b/core/src/main/java/it/cavallium/warppi/gui/screens/KeyboardDebugScreen.java index 00b1ae73..3154a5a8 100644 --- a/core/src/main/java/it/cavallium/warppi/gui/screens/KeyboardDebugScreen.java +++ b/core/src/main/java/it/cavallium/warppi/gui/screens/KeyboardDebugScreen.java @@ -2,7 +2,6 @@ package it.cavallium.warppi.gui.screens; import it.cavallium.warppi.Engine; import it.cavallium.warppi.StaticVars; -import it.cavallium.warppi.device.HardwareDevice; import it.cavallium.warppi.event.KeyPressedEvent; import it.cavallium.warppi.event.KeyReleasedEvent; import it.cavallium.warppi.gui.graphicengine.Renderer; diff --git a/core/src/main/java/it/cavallium/warppi/gui/screens/LoadingScreen.java b/core/src/main/java/it/cavallium/warppi/gui/screens/LoadingScreen.java index fefef9da..4e96f183 100644 --- a/core/src/main/java/it/cavallium/warppi/gui/screens/LoadingScreen.java +++ b/core/src/main/java/it/cavallium/warppi/gui/screens/LoadingScreen.java @@ -2,7 +2,6 @@ package it.cavallium.warppi.gui.screens; import it.cavallium.warppi.Engine; import it.cavallium.warppi.StaticVars; -import it.cavallium.warppi.device.HardwareDevice; import it.cavallium.warppi.gui.GraphicUtils; public class LoadingScreen extends Screen { @@ -37,7 +36,7 @@ public class LoadingScreen extends Screen { loadingTextTranslation = GraphicUtils.sinDeg(endLoading * 90f) * 10f; endLoading += dt; - if (loaded && (StaticVars.debugOn || endLoading >= 3.5f)) { + if (loaded && (Engine.getPlatform().getSettings().isDebugEnabled() || endLoading >= 3.5f)) { StaticVars.windowZoom.onNext(previousZoomValue); Engine.INSTANCE.getHardwareDevice().getDisplayManager().setScreen(new MathInputScreen()); } diff --git a/core/src/main/java/it/cavallium/warppi/gui/screens/MarioScreen.java b/core/src/main/java/it/cavallium/warppi/gui/screens/MarioScreen.java index 5f31e82c..95f693cb 100644 --- a/core/src/main/java/it/cavallium/warppi/gui/screens/MarioScreen.java +++ b/core/src/main/java/it/cavallium/warppi/gui/screens/MarioScreen.java @@ -4,7 +4,6 @@ import java.io.IOException; import it.cavallium.warppi.Engine; import it.cavallium.warppi.StaticVars; -import it.cavallium.warppi.device.HardwareDevice; import it.cavallium.warppi.device.Keyboard; import it.cavallium.warppi.extra.mario.MarioGame; import it.cavallium.warppi.extra.mario.MarioWorld; diff --git a/core/src/main/java/it/cavallium/warppi/gui/screens/MathInputScreen.java b/core/src/main/java/it/cavallium/warppi/gui/screens/MathInputScreen.java index 96195e0d..dcfd2f73 100644 --- a/core/src/main/java/it/cavallium/warppi/gui/screens/MathInputScreen.java +++ b/core/src/main/java/it/cavallium/warppi/gui/screens/MathInputScreen.java @@ -3,12 +3,7 @@ package it.cavallium.warppi.gui.screens; import java.io.IOException; import it.cavallium.warppi.Engine; -import it.cavallium.warppi.Error; -import it.cavallium.warppi.Errors; -import it.cavallium.warppi.StaticVars; -import it.cavallium.warppi.Utils; -import it.cavallium.warppi.deps.Platform.ConsoleUtils; -import it.cavallium.warppi.device.HardwareDevice; +import it.cavallium.warppi.Platform.ConsoleUtils; import it.cavallium.warppi.device.Keyboard; import it.cavallium.warppi.event.Key; import it.cavallium.warppi.event.KeyPressedEvent; @@ -35,6 +30,9 @@ import it.cavallium.warppi.math.functions.Variable; import it.cavallium.warppi.math.functions.Variable.VariableValue; import it.cavallium.warppi.math.parser.MathParser; import it.cavallium.warppi.math.solver.MathSolver; +import it.cavallium.warppi.util.Error; +import it.cavallium.warppi.util.Errors; +import it.cavallium.warppi.util.Utils; import it.unimi.dsi.fastutil.objects.ObjectArrayList; public class MathInputScreen extends Screen { @@ -241,7 +239,7 @@ public class MathInputScreen extends Screen { } catch (final InterruptedException ex) { Engine.getPlatform().getConsoleUtils().out().println(ConsoleUtils.OUTPUTLEVEL_DEBUG_MIN, "Computing thread stopped."); } catch (final Exception ex) { - if (StaticVars.debugOn) { + if (Engine.getPlatform().getSettings().isDebugEnabled()) { ex.printStackTrace(); } throw new Error(Errors.SYNTAX_ERROR); diff --git a/core/src/main/java/it/cavallium/warppi/gui/screens/SolveForXScreen.java b/core/src/main/java/it/cavallium/warppi/gui/screens/SolveForXScreen.java index 54bbcfcc..07a66f28 100644 --- a/core/src/main/java/it/cavallium/warppi/gui/screens/SolveForXScreen.java +++ b/core/src/main/java/it/cavallium/warppi/gui/screens/SolveForXScreen.java @@ -2,7 +2,6 @@ package it.cavallium.warppi.gui.screens; import it.cavallium.warppi.Engine; import it.cavallium.warppi.StaticVars; -import it.cavallium.warppi.device.HardwareDevice; import it.cavallium.warppi.event.KeyPressedEvent; public class SolveForXScreen extends Screen { diff --git a/core/src/main/java/it/cavallium/warppi/math/Function.java b/core/src/main/java/it/cavallium/warppi/math/Function.java index 0ec094e5..84b66786 100644 --- a/core/src/main/java/it/cavallium/warppi/math/Function.java +++ b/core/src/main/java/it/cavallium/warppi/math/Function.java @@ -1,8 +1,8 @@ package it.cavallium.warppi.math; -import it.cavallium.warppi.Error; import it.cavallium.warppi.gui.expression.blocks.Block; import it.cavallium.warppi.math.rules.Rule; +import it.cavallium.warppi.util.Error; import it.unimi.dsi.fastutil.objects.ObjectArrayList; public interface Function { diff --git a/core/src/main/java/it/cavallium/warppi/math/FunctionDynamic.java b/core/src/main/java/it/cavallium/warppi/math/FunctionDynamic.java index 86e72467..df64571a 100644 --- a/core/src/main/java/it/cavallium/warppi/math/FunctionDynamic.java +++ b/core/src/main/java/it/cavallium/warppi/math/FunctionDynamic.java @@ -3,9 +3,9 @@ package it.cavallium.warppi.math; import java.util.Arrays; import java.util.List; -import it.cavallium.warppi.Error; -import it.cavallium.warppi.Utils; import it.cavallium.warppi.math.rules.Rule; +import it.cavallium.warppi.util.Error; +import it.cavallium.warppi.util.Utils; import it.unimi.dsi.fastutil.objects.ObjectArrayList; public abstract class FunctionDynamic implements Function { diff --git a/core/src/main/java/it/cavallium/warppi/math/FunctionOperator.java b/core/src/main/java/it/cavallium/warppi/math/FunctionOperator.java index e3b21bea..54b3a54f 100644 --- a/core/src/main/java/it/cavallium/warppi/math/FunctionOperator.java +++ b/core/src/main/java/it/cavallium/warppi/math/FunctionOperator.java @@ -1,9 +1,9 @@ package it.cavallium.warppi.math; -import it.cavallium.warppi.Error; -import it.cavallium.warppi.Errors; -import it.cavallium.warppi.Utils; import it.cavallium.warppi.math.rules.Rule; +import it.cavallium.warppi.util.Error; +import it.cavallium.warppi.util.Errors; +import it.cavallium.warppi.util.Utils; import it.unimi.dsi.fastutil.objects.ObjectArrayList; public abstract class FunctionOperator implements Function { diff --git a/core/src/main/java/it/cavallium/warppi/math/FunctionSingle.java b/core/src/main/java/it/cavallium/warppi/math/FunctionSingle.java index 7280e479..0a6f0810 100644 --- a/core/src/main/java/it/cavallium/warppi/math/FunctionSingle.java +++ b/core/src/main/java/it/cavallium/warppi/math/FunctionSingle.java @@ -1,7 +1,7 @@ package it.cavallium.warppi.math; -import it.cavallium.warppi.Error; import it.cavallium.warppi.math.rules.Rule; +import it.cavallium.warppi.util.Error; import it.unimi.dsi.fastutil.objects.ObjectArrayList; public abstract class FunctionSingle implements Function { diff --git a/core/src/main/java/it/cavallium/warppi/math/MathContext.java b/core/src/main/java/it/cavallium/warppi/math/MathContext.java index ad53f45d..46dce5cc 100644 --- a/core/src/main/java/it/cavallium/warppi/math/MathContext.java +++ b/core/src/main/java/it/cavallium/warppi/math/MathContext.java @@ -1,10 +1,10 @@ package it.cavallium.warppi.math; -import it.cavallium.warppi.Error; import it.cavallium.warppi.math.functions.Variable.VariableValue; import it.cavallium.warppi.math.rules.Rule; import it.cavallium.warppi.math.rules.RuleType; import it.cavallium.warppi.math.rules.RulesManager; +import it.cavallium.warppi.util.Error; import it.unimi.dsi.fastutil.objects.ObjectArrayList; public class MathContext { diff --git a/core/src/main/java/it/cavallium/warppi/math/MathematicalSymbols.java b/core/src/main/java/it/cavallium/warppi/math/MathematicalSymbols.java index 53e0bdb0..ce9fecce 100644 --- a/core/src/main/java/it/cavallium/warppi/math/MathematicalSymbols.java +++ b/core/src/main/java/it/cavallium/warppi/math/MathematicalSymbols.java @@ -1,8 +1,8 @@ package it.cavallium.warppi.math; -import static it.cavallium.warppi.Utils.concat; +import static it.cavallium.warppi.util.Utils.concat; -import it.cavallium.warppi.Utils; +import it.cavallium.warppi.util.Utils; public class MathematicalSymbols { public static final char SUM = '+'; diff --git a/core/src/main/java/it/cavallium/warppi/math/functions/Division.java b/core/src/main/java/it/cavallium/warppi/math/functions/Division.java index c95088fe..3dd4a4bb 100644 --- a/core/src/main/java/it/cavallium/warppi/math/functions/Division.java +++ b/core/src/main/java/it/cavallium/warppi/math/functions/Division.java @@ -1,12 +1,12 @@ package it.cavallium.warppi.math.functions; -import it.cavallium.warppi.Error; import it.cavallium.warppi.gui.expression.blocks.Block; import it.cavallium.warppi.gui.expression.blocks.BlockContainer; import it.cavallium.warppi.gui.expression.blocks.BlockDivision; import it.cavallium.warppi.math.Function; import it.cavallium.warppi.math.FunctionOperator; import it.cavallium.warppi.math.MathContext; +import it.cavallium.warppi.util.Error; import it.unimi.dsi.fastutil.objects.ObjectArrayList; public class Division extends FunctionOperator { diff --git a/core/src/main/java/it/cavallium/warppi/math/functions/EmptyNumber.java b/core/src/main/java/it/cavallium/warppi/math/functions/EmptyNumber.java index e682e839..b4cb287d 100644 --- a/core/src/main/java/it/cavallium/warppi/math/functions/EmptyNumber.java +++ b/core/src/main/java/it/cavallium/warppi/math/functions/EmptyNumber.java @@ -1,10 +1,10 @@ package it.cavallium.warppi.math.functions; -import it.cavallium.warppi.Error; import it.cavallium.warppi.gui.expression.blocks.Block; import it.cavallium.warppi.math.Function; import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.math.rules.Rule; +import it.cavallium.warppi.util.Error; import it.unimi.dsi.fastutil.objects.ObjectArrayList; public class EmptyNumber implements Function { diff --git a/core/src/main/java/it/cavallium/warppi/math/functions/Expression.java b/core/src/main/java/it/cavallium/warppi/math/functions/Expression.java index 97c21a73..3f207eb7 100644 --- a/core/src/main/java/it/cavallium/warppi/math/functions/Expression.java +++ b/core/src/main/java/it/cavallium/warppi/math/functions/Expression.java @@ -1,6 +1,5 @@ package it.cavallium.warppi.math.functions; -import it.cavallium.warppi.Error; import it.cavallium.warppi.gui.expression.blocks.Block; import it.cavallium.warppi.gui.expression.blocks.BlockContainer; import it.cavallium.warppi.gui.expression.blocks.BlockParenthesis; @@ -13,6 +12,7 @@ import it.cavallium.warppi.math.functions.trigonometry.ArcTangent; import it.cavallium.warppi.math.functions.trigonometry.Cosine; import it.cavallium.warppi.math.functions.trigonometry.Sine; import it.cavallium.warppi.math.functions.trigonometry.Tangent; +import it.cavallium.warppi.util.Error; import it.unimi.dsi.fastutil.objects.ObjectArrayList; public class Expression extends FunctionSingle { diff --git a/core/src/main/java/it/cavallium/warppi/math/functions/Joke.java b/core/src/main/java/it/cavallium/warppi/math/functions/Joke.java index af1ceaf3..0c9902fb 100644 --- a/core/src/main/java/it/cavallium/warppi/math/functions/Joke.java +++ b/core/src/main/java/it/cavallium/warppi/math/functions/Joke.java @@ -1,11 +1,11 @@ package it.cavallium.warppi.math.functions; -import it.cavallium.warppi.Error; -import it.cavallium.warppi.Errors; import it.cavallium.warppi.gui.expression.blocks.Block; import it.cavallium.warppi.math.Function; import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.math.rules.Rule; +import it.cavallium.warppi.util.Error; +import it.cavallium.warppi.util.Errors; import it.unimi.dsi.fastutil.objects.ObjectArrayList; public class Joke implements Function { diff --git a/core/src/main/java/it/cavallium/warppi/math/functions/Logarithm.java b/core/src/main/java/it/cavallium/warppi/math/functions/Logarithm.java index d0d46d08..4fa7ad78 100644 --- a/core/src/main/java/it/cavallium/warppi/math/functions/Logarithm.java +++ b/core/src/main/java/it/cavallium/warppi/math/functions/Logarithm.java @@ -1,12 +1,12 @@ package it.cavallium.warppi.math.functions; -import it.cavallium.warppi.Error; import it.cavallium.warppi.gui.expression.blocks.Block; import it.cavallium.warppi.gui.expression.blocks.BlockContainer; import it.cavallium.warppi.gui.expression.blocks.BlockLogarithm; import it.cavallium.warppi.math.Function; import it.cavallium.warppi.math.FunctionOperator; import it.cavallium.warppi.math.MathContext; +import it.cavallium.warppi.util.Error; import it.unimi.dsi.fastutil.objects.ObjectArrayList; public class Logarithm extends FunctionOperator { diff --git a/core/src/main/java/it/cavallium/warppi/math/functions/Multiplication.java b/core/src/main/java/it/cavallium/warppi/math/functions/Multiplication.java index 8901ecbd..06b4f61c 100644 --- a/core/src/main/java/it/cavallium/warppi/math/functions/Multiplication.java +++ b/core/src/main/java/it/cavallium/warppi/math/functions/Multiplication.java @@ -1,6 +1,5 @@ package it.cavallium.warppi.math.functions; -import it.cavallium.warppi.Error; import it.cavallium.warppi.gui.expression.blocks.Block; import it.cavallium.warppi.gui.expression.blocks.BlockChar; import it.cavallium.warppi.gui.expression.blocks.BlockParenthesis; @@ -8,6 +7,7 @@ import it.cavallium.warppi.math.Function; import it.cavallium.warppi.math.FunctionOperator; import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.math.MathematicalSymbols; +import it.cavallium.warppi.util.Error; import it.unimi.dsi.fastutil.objects.ObjectArrayList; public class Multiplication extends FunctionOperator { diff --git a/core/src/main/java/it/cavallium/warppi/math/functions/Negative.java b/core/src/main/java/it/cavallium/warppi/math/functions/Negative.java index 625128c6..82d6bbee 100644 --- a/core/src/main/java/it/cavallium/warppi/math/functions/Negative.java +++ b/core/src/main/java/it/cavallium/warppi/math/functions/Negative.java @@ -1,6 +1,5 @@ package it.cavallium.warppi.math.functions; -import it.cavallium.warppi.Error; import it.cavallium.warppi.gui.expression.blocks.Block; import it.cavallium.warppi.gui.expression.blocks.BlockChar; import it.cavallium.warppi.gui.expression.blocks.BlockParenthesis; @@ -8,6 +7,7 @@ import it.cavallium.warppi.math.Function; import it.cavallium.warppi.math.FunctionSingle; import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.math.MathematicalSymbols; +import it.cavallium.warppi.util.Error; import it.unimi.dsi.fastutil.objects.ObjectArrayList; public class Negative extends FunctionSingle { diff --git a/core/src/main/java/it/cavallium/warppi/math/functions/Number.java b/core/src/main/java/it/cavallium/warppi/math/functions/Number.java index 8dced949..3ee915e1 100644 --- a/core/src/main/java/it/cavallium/warppi/math/functions/Number.java +++ b/core/src/main/java/it/cavallium/warppi/math/functions/Number.java @@ -6,8 +6,6 @@ import java.util.LinkedList; import org.nevec.rjm.BigDecimalMath; -import it.cavallium.warppi.Error; -import it.cavallium.warppi.Utils; import it.cavallium.warppi.gui.expression.blocks.Block; import it.cavallium.warppi.gui.expression.blocks.BlockChar; import it.cavallium.warppi.gui.expression.blocks.BlockContainer; @@ -16,6 +14,8 @@ import it.cavallium.warppi.gui.expression.blocks.BlockPower; import it.cavallium.warppi.math.Function; import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.math.rules.Rule; +import it.cavallium.warppi.util.Error; +import it.cavallium.warppi.util.Utils; import it.unimi.dsi.fastutil.objects.ObjectArrayList; public class Number implements Function { diff --git a/core/src/main/java/it/cavallium/warppi/math/functions/Power.java b/core/src/main/java/it/cavallium/warppi/math/functions/Power.java index 36dc9254..44d93f26 100644 --- a/core/src/main/java/it/cavallium/warppi/math/functions/Power.java +++ b/core/src/main/java/it/cavallium/warppi/math/functions/Power.java @@ -1,12 +1,12 @@ package it.cavallium.warppi.math.functions; -import it.cavallium.warppi.Error; import it.cavallium.warppi.gui.expression.blocks.Block; import it.cavallium.warppi.gui.expression.blocks.BlockContainer; import it.cavallium.warppi.gui.expression.blocks.BlockPower; import it.cavallium.warppi.math.Function; import it.cavallium.warppi.math.FunctionOperator; import it.cavallium.warppi.math.MathContext; +import it.cavallium.warppi.util.Error; import it.unimi.dsi.fastutil.objects.ObjectArrayList; public class Power extends FunctionOperator { diff --git a/core/src/main/java/it/cavallium/warppi/math/functions/Root.java b/core/src/main/java/it/cavallium/warppi/math/functions/Root.java index 5dd85a0c..57eb48a1 100644 --- a/core/src/main/java/it/cavallium/warppi/math/functions/Root.java +++ b/core/src/main/java/it/cavallium/warppi/math/functions/Root.java @@ -1,11 +1,11 @@ package it.cavallium.warppi.math.functions; -import it.cavallium.warppi.Error; -import it.cavallium.warppi.Errors; import it.cavallium.warppi.gui.expression.blocks.Block; import it.cavallium.warppi.math.Function; import it.cavallium.warppi.math.FunctionOperator; import it.cavallium.warppi.math.MathContext; +import it.cavallium.warppi.util.Error; +import it.cavallium.warppi.util.Errors; import it.unimi.dsi.fastutil.objects.ObjectArrayList; public class Root extends FunctionOperator { diff --git a/core/src/main/java/it/cavallium/warppi/math/functions/RootSquare.java b/core/src/main/java/it/cavallium/warppi/math/functions/RootSquare.java index a66a4ef0..278c0370 100644 --- a/core/src/main/java/it/cavallium/warppi/math/functions/RootSquare.java +++ b/core/src/main/java/it/cavallium/warppi/math/functions/RootSquare.java @@ -1,12 +1,12 @@ package it.cavallium.warppi.math.functions; -import it.cavallium.warppi.Error; import it.cavallium.warppi.gui.expression.blocks.Block; import it.cavallium.warppi.gui.expression.blocks.BlockContainer; import it.cavallium.warppi.gui.expression.blocks.BlockSquareRoot; import it.cavallium.warppi.math.Function; import it.cavallium.warppi.math.FunctionOperator; import it.cavallium.warppi.math.MathContext; +import it.cavallium.warppi.util.Error; import it.unimi.dsi.fastutil.objects.ObjectArrayList; public class RootSquare extends FunctionOperator { diff --git a/core/src/main/java/it/cavallium/warppi/math/functions/Subtraction.java b/core/src/main/java/it/cavallium/warppi/math/functions/Subtraction.java index 18b884a4..5717eb2b 100644 --- a/core/src/main/java/it/cavallium/warppi/math/functions/Subtraction.java +++ b/core/src/main/java/it/cavallium/warppi/math/functions/Subtraction.java @@ -1,12 +1,12 @@ package it.cavallium.warppi.math.functions; -import it.cavallium.warppi.Error; import it.cavallium.warppi.gui.expression.blocks.Block; import it.cavallium.warppi.gui.expression.blocks.BlockChar; import it.cavallium.warppi.math.Function; import it.cavallium.warppi.math.FunctionOperator; import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.math.MathematicalSymbols; +import it.cavallium.warppi.util.Error; import it.unimi.dsi.fastutil.objects.ObjectArrayList; public class Subtraction extends FunctionOperator { diff --git a/core/src/main/java/it/cavallium/warppi/math/functions/Sum.java b/core/src/main/java/it/cavallium/warppi/math/functions/Sum.java index 034e63f6..ab3d020d 100644 --- a/core/src/main/java/it/cavallium/warppi/math/functions/Sum.java +++ b/core/src/main/java/it/cavallium/warppi/math/functions/Sum.java @@ -1,12 +1,12 @@ package it.cavallium.warppi.math.functions; -import it.cavallium.warppi.Error; import it.cavallium.warppi.gui.expression.blocks.Block; import it.cavallium.warppi.gui.expression.blocks.BlockChar; import it.cavallium.warppi.math.Function; import it.cavallium.warppi.math.FunctionOperator; import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.math.MathematicalSymbols; +import it.cavallium.warppi.util.Error; import it.unimi.dsi.fastutil.objects.ObjectArrayList; public class Sum extends FunctionOperator { diff --git a/core/src/main/java/it/cavallium/warppi/math/functions/SumSubtraction.java b/core/src/main/java/it/cavallium/warppi/math/functions/SumSubtraction.java index 58b3d008..d25418b5 100644 --- a/core/src/main/java/it/cavallium/warppi/math/functions/SumSubtraction.java +++ b/core/src/main/java/it/cavallium/warppi/math/functions/SumSubtraction.java @@ -1,12 +1,12 @@ package it.cavallium.warppi.math.functions; -import it.cavallium.warppi.Error; import it.cavallium.warppi.gui.expression.blocks.Block; import it.cavallium.warppi.gui.expression.blocks.BlockChar; import it.cavallium.warppi.math.Function; import it.cavallium.warppi.math.FunctionOperator; import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.math.MathematicalSymbols; +import it.cavallium.warppi.util.Error; import it.unimi.dsi.fastutil.objects.ObjectArrayList; public class SumSubtraction extends FunctionOperator { diff --git a/core/src/main/java/it/cavallium/warppi/math/functions/Undefined.java b/core/src/main/java/it/cavallium/warppi/math/functions/Undefined.java index 0a2f533b..6286db18 100644 --- a/core/src/main/java/it/cavallium/warppi/math/functions/Undefined.java +++ b/core/src/main/java/it/cavallium/warppi/math/functions/Undefined.java @@ -1,11 +1,11 @@ package it.cavallium.warppi.math.functions; -import it.cavallium.warppi.Error; import it.cavallium.warppi.gui.expression.blocks.Block; import it.cavallium.warppi.gui.expression.blocks.BlockUndefined; import it.cavallium.warppi.math.Function; import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.math.rules.Rule; +import it.cavallium.warppi.util.Error; import it.unimi.dsi.fastutil.objects.ObjectArrayList; public class Undefined implements Function { diff --git a/core/src/main/java/it/cavallium/warppi/math/functions/Variable.java b/core/src/main/java/it/cavallium/warppi/math/functions/Variable.java index 59d7ea9c..4e8fe1b9 100644 --- a/core/src/main/java/it/cavallium/warppi/math/functions/Variable.java +++ b/core/src/main/java/it/cavallium/warppi/math/functions/Variable.java @@ -1,11 +1,11 @@ package it.cavallium.warppi.math.functions; -import it.cavallium.warppi.Error; import it.cavallium.warppi.gui.expression.blocks.Block; import it.cavallium.warppi.gui.expression.blocks.BlockChar; import it.cavallium.warppi.math.Function; import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.math.rules.Rule; +import it.cavallium.warppi.util.Error; import it.unimi.dsi.fastutil.objects.ObjectArrayList; public class Variable implements Function { diff --git a/core/src/main/java/it/cavallium/warppi/math/functions/equations/Equation.java b/core/src/main/java/it/cavallium/warppi/math/functions/equations/Equation.java index 4c33060c..df6ce4da 100644 --- a/core/src/main/java/it/cavallium/warppi/math/functions/equations/Equation.java +++ b/core/src/main/java/it/cavallium/warppi/math/functions/equations/Equation.java @@ -4,12 +4,12 @@ import java.util.HashSet; import java.util.List; import java.util.Set; -import it.cavallium.warppi.Error; import it.cavallium.warppi.gui.expression.blocks.Block; import it.cavallium.warppi.math.Function; import it.cavallium.warppi.math.FunctionOperator; import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.math.solver.SolveMethod; +import it.cavallium.warppi.util.Error; import it.unimi.dsi.fastutil.objects.ObjectArrayList; public class Equation extends FunctionOperator { diff --git a/core/src/main/java/it/cavallium/warppi/math/functions/equations/EquationsSystem.java b/core/src/main/java/it/cavallium/warppi/math/functions/equations/EquationsSystem.java index 02e8dd03..d1447c9a 100644 --- a/core/src/main/java/it/cavallium/warppi/math/functions/equations/EquationsSystem.java +++ b/core/src/main/java/it/cavallium/warppi/math/functions/equations/EquationsSystem.java @@ -1,10 +1,10 @@ package it.cavallium.warppi.math.functions.equations; -import it.cavallium.warppi.Error; import it.cavallium.warppi.gui.expression.blocks.Block; import it.cavallium.warppi.math.Function; import it.cavallium.warppi.math.FunctionDynamic; import it.cavallium.warppi.math.MathContext; +import it.cavallium.warppi.util.Error; import it.unimi.dsi.fastutil.objects.ObjectArrayList; public class EquationsSystem extends FunctionDynamic { diff --git a/core/src/main/java/it/cavallium/warppi/math/functions/equations/EquationsSystemPart.java b/core/src/main/java/it/cavallium/warppi/math/functions/equations/EquationsSystemPart.java index ad3e6d40..01eed2e9 100644 --- a/core/src/main/java/it/cavallium/warppi/math/functions/equations/EquationsSystemPart.java +++ b/core/src/main/java/it/cavallium/warppi/math/functions/equations/EquationsSystemPart.java @@ -1,9 +1,9 @@ package it.cavallium.warppi.math.functions.equations; -import it.cavallium.warppi.Error; import it.cavallium.warppi.gui.expression.blocks.Block; import it.cavallium.warppi.math.FunctionSingle; import it.cavallium.warppi.math.MathContext; +import it.cavallium.warppi.util.Error; import it.unimi.dsi.fastutil.objects.ObjectArrayList; public class EquationsSystemPart extends FunctionSingle { diff --git a/core/src/main/java/it/cavallium/warppi/math/functions/trigonometry/ArcCosine.java b/core/src/main/java/it/cavallium/warppi/math/functions/trigonometry/ArcCosine.java index 5ec6a636..82e993aa 100644 --- a/core/src/main/java/it/cavallium/warppi/math/functions/trigonometry/ArcCosine.java +++ b/core/src/main/java/it/cavallium/warppi/math/functions/trigonometry/ArcCosine.java @@ -1,11 +1,11 @@ package it.cavallium.warppi.math.functions.trigonometry; -import it.cavallium.warppi.Error; -import it.cavallium.warppi.Errors; import it.cavallium.warppi.gui.expression.blocks.Block; import it.cavallium.warppi.math.Function; import it.cavallium.warppi.math.FunctionSingle; import it.cavallium.warppi.math.MathContext; +import it.cavallium.warppi.util.Error; +import it.cavallium.warppi.util.Errors; import it.unimi.dsi.fastutil.objects.ObjectArrayList; public class ArcCosine extends FunctionSingle { diff --git a/core/src/main/java/it/cavallium/warppi/math/functions/trigonometry/ArcSine.java b/core/src/main/java/it/cavallium/warppi/math/functions/trigonometry/ArcSine.java index 05d38f57..438c5fb4 100644 --- a/core/src/main/java/it/cavallium/warppi/math/functions/trigonometry/ArcSine.java +++ b/core/src/main/java/it/cavallium/warppi/math/functions/trigonometry/ArcSine.java @@ -1,11 +1,11 @@ package it.cavallium.warppi.math.functions.trigonometry; -import it.cavallium.warppi.Error; -import it.cavallium.warppi.Errors; import it.cavallium.warppi.gui.expression.blocks.Block; import it.cavallium.warppi.math.Function; import it.cavallium.warppi.math.FunctionSingle; import it.cavallium.warppi.math.MathContext; +import it.cavallium.warppi.util.Error; +import it.cavallium.warppi.util.Errors; import it.unimi.dsi.fastutil.objects.ObjectArrayList; public class ArcSine extends FunctionSingle { diff --git a/core/src/main/java/it/cavallium/warppi/math/functions/trigonometry/ArcTangent.java b/core/src/main/java/it/cavallium/warppi/math/functions/trigonometry/ArcTangent.java index b76fb42f..bd722c85 100644 --- a/core/src/main/java/it/cavallium/warppi/math/functions/trigonometry/ArcTangent.java +++ b/core/src/main/java/it/cavallium/warppi/math/functions/trigonometry/ArcTangent.java @@ -1,11 +1,11 @@ package it.cavallium.warppi.math.functions.trigonometry; -import it.cavallium.warppi.Error; -import it.cavallium.warppi.Errors; import it.cavallium.warppi.gui.expression.blocks.Block; import it.cavallium.warppi.math.Function; import it.cavallium.warppi.math.FunctionSingle; import it.cavallium.warppi.math.MathContext; +import it.cavallium.warppi.util.Error; +import it.cavallium.warppi.util.Errors; import it.unimi.dsi.fastutil.objects.ObjectArrayList; public class ArcTangent extends FunctionSingle { diff --git a/core/src/main/java/it/cavallium/warppi/math/functions/trigonometry/Cosine.java b/core/src/main/java/it/cavallium/warppi/math/functions/trigonometry/Cosine.java index 0dc7761b..53efc680 100644 --- a/core/src/main/java/it/cavallium/warppi/math/functions/trigonometry/Cosine.java +++ b/core/src/main/java/it/cavallium/warppi/math/functions/trigonometry/Cosine.java @@ -1,11 +1,11 @@ package it.cavallium.warppi.math.functions.trigonometry; -import it.cavallium.warppi.Error; -import it.cavallium.warppi.Errors; import it.cavallium.warppi.gui.expression.blocks.Block; import it.cavallium.warppi.math.Function; import it.cavallium.warppi.math.FunctionSingle; import it.cavallium.warppi.math.MathContext; +import it.cavallium.warppi.util.Error; +import it.cavallium.warppi.util.Errors; import it.unimi.dsi.fastutil.objects.ObjectArrayList; public class Cosine extends FunctionSingle { diff --git a/core/src/main/java/it/cavallium/warppi/math/functions/trigonometry/Sine.java b/core/src/main/java/it/cavallium/warppi/math/functions/trigonometry/Sine.java index 203c2b95..65c1a4bf 100644 --- a/core/src/main/java/it/cavallium/warppi/math/functions/trigonometry/Sine.java +++ b/core/src/main/java/it/cavallium/warppi/math/functions/trigonometry/Sine.java @@ -1,12 +1,12 @@ package it.cavallium.warppi.math.functions.trigonometry; -import it.cavallium.warppi.Error; import it.cavallium.warppi.gui.expression.blocks.Block; import it.cavallium.warppi.gui.expression.blocks.BlockContainer; import it.cavallium.warppi.gui.expression.blocks.BlockSine; import it.cavallium.warppi.math.Function; import it.cavallium.warppi.math.FunctionSingle; import it.cavallium.warppi.math.MathContext; +import it.cavallium.warppi.util.Error; import it.unimi.dsi.fastutil.objects.ObjectArrayList; public class Sine extends FunctionSingle { diff --git a/core/src/main/java/it/cavallium/warppi/math/functions/trigonometry/Tangent.java b/core/src/main/java/it/cavallium/warppi/math/functions/trigonometry/Tangent.java index 125daf10..0693a2b7 100644 --- a/core/src/main/java/it/cavallium/warppi/math/functions/trigonometry/Tangent.java +++ b/core/src/main/java/it/cavallium/warppi/math/functions/trigonometry/Tangent.java @@ -1,10 +1,10 @@ package it.cavallium.warppi.math.functions.trigonometry; -import it.cavallium.warppi.Error; import it.cavallium.warppi.gui.expression.blocks.Block; import it.cavallium.warppi.math.Function; import it.cavallium.warppi.math.FunctionSingle; import it.cavallium.warppi.math.MathContext; +import it.cavallium.warppi.util.Error; import it.unimi.dsi.fastutil.objects.ObjectArrayList; public class Tangent extends FunctionSingle { diff --git a/core/src/main/java/it/cavallium/warppi/math/parser/MathParser.java b/core/src/main/java/it/cavallium/warppi/math/parser/MathParser.java index ab938543..43243704 100644 --- a/core/src/main/java/it/cavallium/warppi/math/parser/MathParser.java +++ b/core/src/main/java/it/cavallium/warppi/math/parser/MathParser.java @@ -1,11 +1,7 @@ package it.cavallium.warppi.math.parser; import it.cavallium.warppi.Engine; -import it.cavallium.warppi.Error; -import it.cavallium.warppi.Errors; -import it.cavallium.warppi.IntegerObj; -import it.cavallium.warppi.StaticVars; -import it.cavallium.warppi.deps.Platform.ConsoleUtils; +import it.cavallium.warppi.Platform.ConsoleUtils; import it.cavallium.warppi.gui.expression.blocks.Block; import it.cavallium.warppi.gui.expression.containers.InputContainer; import it.cavallium.warppi.math.Function; @@ -30,6 +26,9 @@ import it.cavallium.warppi.math.parser.steps.FixSingleFunctionArgs; import it.cavallium.warppi.math.parser.steps.FixSumsAndSubtractions; import it.cavallium.warppi.math.parser.steps.JoinNumberAndVariables; import it.cavallium.warppi.math.parser.steps.RemoveParentheses; +import it.cavallium.warppi.util.Error; +import it.cavallium.warppi.util.Errors; +import it.cavallium.warppi.util.IntWrapper; import it.unimi.dsi.fastutil.objects.ObjectArrayList; public class MathParser { @@ -84,7 +83,7 @@ public class MathParser { boolean lastLoopDidSomething; Function lastElement; - if (StaticVars.debugOn) { + if (Engine.getPlatform().getSettings().isDebugEnabled()) { Engine.getPlatform().getConsoleUtils().out().print(ConsoleUtils.OUTPUTLEVEL_DEBUG_VERBOSE, "\tStatus: "); for (final Function f : functionsList) { Engine.getPlatform().getConsoleUtils().out().print(ConsoleUtils.OUTPUTLEVEL_DEBUG_VERBOSE, f.toString()); @@ -93,7 +92,7 @@ public class MathParser { } for (final MathParserStep step : steps) { - if (StaticVars.debugOn) { + if (Engine.getPlatform().getSettings().isDebugEnabled()) { Engine.getPlatform().getConsoleUtils().out().println(2, "Stack fixing step \"" + step.getStepName() + "\""); } final int stepQty = step.requiresReversedIteration() ? -1 : 1, @@ -101,7 +100,7 @@ public class MathParser { do { lastLoopDidSomething = false; lastElement = null; - final IntegerObj curIndex = new IntegerObj(initialIndex); + final IntWrapper curIndex = new IntWrapper(initialIndex); while (curIndex.i >= 0 && curIndex.i < functionsList.size()) { final int i = curIndex.i; final Function f = functionsList.get(i); @@ -115,7 +114,7 @@ public class MathParser { } } while (lastLoopDidSomething); - if (StaticVars.debugOn) { + if (Engine.getPlatform().getSettings().isDebugEnabled()) { Engine.getPlatform().getConsoleUtils().out().print(ConsoleUtils.OUTPUTLEVEL_DEBUG_VERBOSE, "\tStatus: "); for (final Function f : functionsList) { Engine.getPlatform().getConsoleUtils().out().print(ConsoleUtils.OUTPUTLEVEL_DEBUG_VERBOSE, f.toString()); diff --git a/core/src/main/java/it/cavallium/warppi/math/parser/MathParserStep.java b/core/src/main/java/it/cavallium/warppi/math/parser/MathParserStep.java index f899bff4..a54eb649 100644 --- a/core/src/main/java/it/cavallium/warppi/math/parser/MathParserStep.java +++ b/core/src/main/java/it/cavallium/warppi/math/parser/MathParserStep.java @@ -1,8 +1,8 @@ package it.cavallium.warppi.math.parser; -import it.cavallium.warppi.Error; -import it.cavallium.warppi.IntegerObj; import it.cavallium.warppi.math.Function; +import it.cavallium.warppi.util.Error; +import it.cavallium.warppi.util.IntWrapper; import it.unimi.dsi.fastutil.objects.ObjectArrayList; /** @@ -19,7 +19,7 @@ public interface MathParserStep { * @param process * @return true if something changed */ - public boolean eval(IntegerObj curIndex, Function lastFunction, Function currentFunction, + public boolean eval(IntWrapper curIndex, Function lastFunction, Function currentFunction, ObjectArrayList functionsfunctionsList) throws Error; public boolean requiresReversedIteration(); diff --git a/core/src/main/java/it/cavallium/warppi/math/parser/features/FeatureLogarithm.java b/core/src/main/java/it/cavallium/warppi/math/parser/features/FeatureLogarithm.java index 529e1e0d..7493a23a 100644 --- a/core/src/main/java/it/cavallium/warppi/math/parser/features/FeatureLogarithm.java +++ b/core/src/main/java/it/cavallium/warppi/math/parser/features/FeatureLogarithm.java @@ -1,8 +1,8 @@ package it.cavallium.warppi.math.parser.features; -import it.cavallium.warppi.Error; import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.math.functions.Logarithm; +import it.cavallium.warppi.util.Error; public class FeatureLogarithm extends FeatureDoubleImpl { diff --git a/core/src/main/java/it/cavallium/warppi/math/parser/features/FeatureNumber.java b/core/src/main/java/it/cavallium/warppi/math/parser/features/FeatureNumber.java index 4048425e..ce4095df 100644 --- a/core/src/main/java/it/cavallium/warppi/math/parser/features/FeatureNumber.java +++ b/core/src/main/java/it/cavallium/warppi/math/parser/features/FeatureNumber.java @@ -1,10 +1,10 @@ package it.cavallium.warppi.math.parser.features; -import it.cavallium.warppi.Error; import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.math.MathematicalSymbols; import it.cavallium.warppi.math.functions.Number; import it.cavallium.warppi.math.parser.features.interfaces.FeatureBasic; +import it.cavallium.warppi.util.Error; public class FeatureNumber implements FeatureBasic { private String numberString; diff --git a/core/src/main/java/it/cavallium/warppi/math/parser/features/FeatureParenthesis.java b/core/src/main/java/it/cavallium/warppi/math/parser/features/FeatureParenthesis.java index dc30b365..6bc9b3d2 100644 --- a/core/src/main/java/it/cavallium/warppi/math/parser/features/FeatureParenthesis.java +++ b/core/src/main/java/it/cavallium/warppi/math/parser/features/FeatureParenthesis.java @@ -1,9 +1,9 @@ package it.cavallium.warppi.math.parser.features; -import it.cavallium.warppi.Error; import it.cavallium.warppi.math.Function; import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.math.functions.Expression; +import it.cavallium.warppi.util.Error; public class FeatureParenthesis extends FeatureSingleImpl { diff --git a/core/src/main/java/it/cavallium/warppi/math/parser/features/FeaturePower.java b/core/src/main/java/it/cavallium/warppi/math/parser/features/FeaturePower.java index 7490c132..67d5be7a 100644 --- a/core/src/main/java/it/cavallium/warppi/math/parser/features/FeaturePower.java +++ b/core/src/main/java/it/cavallium/warppi/math/parser/features/FeaturePower.java @@ -1,8 +1,8 @@ package it.cavallium.warppi.math.parser.features; -import it.cavallium.warppi.Error; import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.math.functions.Power; +import it.cavallium.warppi.util.Error; public class FeaturePower extends FeatureDoubleImpl { diff --git a/core/src/main/java/it/cavallium/warppi/math/parser/features/FeaturePowerChar.java b/core/src/main/java/it/cavallium/warppi/math/parser/features/FeaturePowerChar.java index ff64ef04..3f04ce63 100644 --- a/core/src/main/java/it/cavallium/warppi/math/parser/features/FeaturePowerChar.java +++ b/core/src/main/java/it/cavallium/warppi/math/parser/features/FeaturePowerChar.java @@ -1,8 +1,8 @@ package it.cavallium.warppi.math.parser.features; -import it.cavallium.warppi.Error; import it.cavallium.warppi.math.Function; import it.cavallium.warppi.math.MathContext; +import it.cavallium.warppi.util.Error; public class FeaturePowerChar extends FeatureSingleImpl { diff --git a/core/src/main/java/it/cavallium/warppi/math/parser/features/FeatureSine.java b/core/src/main/java/it/cavallium/warppi/math/parser/features/FeatureSine.java index ac9cb9b6..fb2281ce 100644 --- a/core/src/main/java/it/cavallium/warppi/math/parser/features/FeatureSine.java +++ b/core/src/main/java/it/cavallium/warppi/math/parser/features/FeatureSine.java @@ -1,9 +1,9 @@ package it.cavallium.warppi.math.parser.features; -import it.cavallium.warppi.Error; import it.cavallium.warppi.math.Function; import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.math.functions.trigonometry.Sine; +import it.cavallium.warppi.util.Error; public class FeatureSine extends FeatureSingleImpl { diff --git a/core/src/main/java/it/cavallium/warppi/math/parser/features/FeatureSquareRoot.java b/core/src/main/java/it/cavallium/warppi/math/parser/features/FeatureSquareRoot.java index 6960450d..04b6a86a 100644 --- a/core/src/main/java/it/cavallium/warppi/math/parser/features/FeatureSquareRoot.java +++ b/core/src/main/java/it/cavallium/warppi/math/parser/features/FeatureSquareRoot.java @@ -1,8 +1,8 @@ package it.cavallium.warppi.math.parser.features; -import it.cavallium.warppi.Error; import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.math.functions.RootSquare; +import it.cavallium.warppi.util.Error; public class FeatureSquareRoot extends FeatureSingleImpl { diff --git a/core/src/main/java/it/cavallium/warppi/math/parser/features/FeatureSubtraction.java b/core/src/main/java/it/cavallium/warppi/math/parser/features/FeatureSubtraction.java index 1fba8056..d07953db 100644 --- a/core/src/main/java/it/cavallium/warppi/math/parser/features/FeatureSubtraction.java +++ b/core/src/main/java/it/cavallium/warppi/math/parser/features/FeatureSubtraction.java @@ -1,9 +1,9 @@ package it.cavallium.warppi.math.parser.features; -import it.cavallium.warppi.Error; import it.cavallium.warppi.math.Function; import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.math.functions.Subtraction; +import it.cavallium.warppi.util.Error; public class FeatureSubtraction extends FeatureDoubleImpl { diff --git a/core/src/main/java/it/cavallium/warppi/math/parser/features/FeatureSum.java b/core/src/main/java/it/cavallium/warppi/math/parser/features/FeatureSum.java index 6edc8827..28ec5ae6 100644 --- a/core/src/main/java/it/cavallium/warppi/math/parser/features/FeatureSum.java +++ b/core/src/main/java/it/cavallium/warppi/math/parser/features/FeatureSum.java @@ -1,8 +1,8 @@ package it.cavallium.warppi.math.parser.features; -import it.cavallium.warppi.Error; import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.math.functions.Sum; +import it.cavallium.warppi.util.Error; public class FeatureSum extends FeatureDoubleImpl { diff --git a/core/src/main/java/it/cavallium/warppi/math/parser/features/FeatureSumSubtraction.java b/core/src/main/java/it/cavallium/warppi/math/parser/features/FeatureSumSubtraction.java index 11dd23d2..16c34f11 100644 --- a/core/src/main/java/it/cavallium/warppi/math/parser/features/FeatureSumSubtraction.java +++ b/core/src/main/java/it/cavallium/warppi/math/parser/features/FeatureSumSubtraction.java @@ -1,8 +1,8 @@ package it.cavallium.warppi.math.parser.features; -import it.cavallium.warppi.Error; import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.math.functions.SumSubtraction; +import it.cavallium.warppi.util.Error; public class FeatureSumSubtraction extends FeatureDoubleImpl { diff --git a/core/src/main/java/it/cavallium/warppi/math/parser/features/interfaces/Feature.java b/core/src/main/java/it/cavallium/warppi/math/parser/features/interfaces/Feature.java index 48fc92da..b4a1b1f4 100644 --- a/core/src/main/java/it/cavallium/warppi/math/parser/features/interfaces/Feature.java +++ b/core/src/main/java/it/cavallium/warppi/math/parser/features/interfaces/Feature.java @@ -1,8 +1,8 @@ package it.cavallium.warppi.math.parser.features.interfaces; -import it.cavallium.warppi.Error; import it.cavallium.warppi.math.Function; import it.cavallium.warppi.math.MathContext; +import it.cavallium.warppi.util.Error; public abstract interface Feature { diff --git a/core/src/main/java/it/cavallium/warppi/math/parser/steps/AddImplicitMultiplications.java b/core/src/main/java/it/cavallium/warppi/math/parser/steps/AddImplicitMultiplications.java index 6984a027..89d77218 100644 --- a/core/src/main/java/it/cavallium/warppi/math/parser/steps/AddImplicitMultiplications.java +++ b/core/src/main/java/it/cavallium/warppi/math/parser/steps/AddImplicitMultiplications.java @@ -1,10 +1,10 @@ package it.cavallium.warppi.math.parser.steps; -import it.cavallium.warppi.IntegerObj; import it.cavallium.warppi.math.Function; import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.math.functions.Multiplication; import it.cavallium.warppi.math.parser.MathParserStep; +import it.cavallium.warppi.util.IntWrapper; import it.unimi.dsi.fastutil.objects.ObjectArrayList; public class AddImplicitMultiplications implements MathParserStep { @@ -16,7 +16,7 @@ public class AddImplicitMultiplications implements MathParserStep { } @Override - public boolean eval(IntegerObj curIndex, Function lastFunction, Function currentFunction, + public boolean eval(IntWrapper curIndex, Function lastFunction, Function currentFunction, ObjectArrayList functionsList) { if (currentFunction instanceof Function) { if (lastFunction instanceof Function) { diff --git a/core/src/main/java/it/cavallium/warppi/math/parser/steps/FixMultiplicationsAndDivisions.java b/core/src/main/java/it/cavallium/warppi/math/parser/steps/FixMultiplicationsAndDivisions.java index f2ecfc7c..c2fbb7c6 100644 --- a/core/src/main/java/it/cavallium/warppi/math/parser/steps/FixMultiplicationsAndDivisions.java +++ b/core/src/main/java/it/cavallium/warppi/math/parser/steps/FixMultiplicationsAndDivisions.java @@ -1,18 +1,18 @@ package it.cavallium.warppi.math.parser.steps; -import it.cavallium.warppi.Error; -import it.cavallium.warppi.Errors; -import it.cavallium.warppi.IntegerObj; import it.cavallium.warppi.math.Function; import it.cavallium.warppi.math.functions.Division; import it.cavallium.warppi.math.functions.Multiplication; import it.cavallium.warppi.math.parser.MathParserStep; +import it.cavallium.warppi.util.Error; +import it.cavallium.warppi.util.Errors; +import it.cavallium.warppi.util.IntWrapper; import it.unimi.dsi.fastutil.objects.ObjectArrayList; public class FixMultiplicationsAndDivisions implements MathParserStep { @Override - public boolean eval(IntegerObj curIndex, Function lastFunction, Function currentFunction, + public boolean eval(IntWrapper curIndex, Function lastFunction, Function currentFunction, ObjectArrayList functionsList) throws Error { if (currentFunction instanceof Multiplication || currentFunction instanceof Division) { if (currentFunction.getParameter(0) == null && currentFunction.getParameter(1) == null) { diff --git a/core/src/main/java/it/cavallium/warppi/math/parser/steps/FixSingleFunctionArgs.java b/core/src/main/java/it/cavallium/warppi/math/parser/steps/FixSingleFunctionArgs.java index 900ddf71..94128204 100644 --- a/core/src/main/java/it/cavallium/warppi/math/parser/steps/FixSingleFunctionArgs.java +++ b/core/src/main/java/it/cavallium/warppi/math/parser/steps/FixSingleFunctionArgs.java @@ -1,11 +1,11 @@ package it.cavallium.warppi.math.parser.steps; -import it.cavallium.warppi.Error; -import it.cavallium.warppi.Errors; -import it.cavallium.warppi.IntegerObj; import it.cavallium.warppi.math.Function; import it.cavallium.warppi.math.FunctionSingle; import it.cavallium.warppi.math.parser.MathParserStep; +import it.cavallium.warppi.util.Error; +import it.cavallium.warppi.util.Errors; +import it.cavallium.warppi.util.IntWrapper; import it.unimi.dsi.fastutil.objects.ObjectArrayList; /** @@ -17,7 +17,7 @@ import it.unimi.dsi.fastutil.objects.ObjectArrayList; public class FixSingleFunctionArgs implements MathParserStep { @Override - public boolean eval(IntegerObj curIndex, Function lastFunction, Function currentFunction, + public boolean eval(IntWrapper curIndex, Function lastFunction, Function currentFunction, ObjectArrayList functionsList) throws Error { if (currentFunction instanceof FunctionSingle) { if (((FunctionSingle) currentFunction).getParameter() == null) { diff --git a/core/src/main/java/it/cavallium/warppi/math/parser/steps/FixSumsAndSubtractions.java b/core/src/main/java/it/cavallium/warppi/math/parser/steps/FixSumsAndSubtractions.java index dd9cc736..8a6a6610 100644 --- a/core/src/main/java/it/cavallium/warppi/math/parser/steps/FixSumsAndSubtractions.java +++ b/core/src/main/java/it/cavallium/warppi/math/parser/steps/FixSumsAndSubtractions.java @@ -1,19 +1,19 @@ package it.cavallium.warppi.math.parser.steps; -import it.cavallium.warppi.Error; -import it.cavallium.warppi.Errors; -import it.cavallium.warppi.IntegerObj; import it.cavallium.warppi.math.Function; import it.cavallium.warppi.math.functions.Subtraction; import it.cavallium.warppi.math.functions.Sum; import it.cavallium.warppi.math.functions.SumSubtraction; import it.cavallium.warppi.math.parser.MathParserStep; +import it.cavallium.warppi.util.Error; +import it.cavallium.warppi.util.Errors; +import it.cavallium.warppi.util.IntWrapper; import it.unimi.dsi.fastutil.objects.ObjectArrayList; public class FixSumsAndSubtractions implements MathParserStep { @Override - public boolean eval(IntegerObj curIndex, Function lastFunction, Function currentFunction, + public boolean eval(IntWrapper curIndex, Function lastFunction, Function currentFunction, ObjectArrayList functionsList) throws Error { if (currentFunction instanceof Sum || currentFunction instanceof Subtraction || currentFunction instanceof SumSubtraction) { if (currentFunction.getParameter(0) == null && currentFunction.getParameter(1) == null) { diff --git a/core/src/main/java/it/cavallium/warppi/math/parser/steps/JoinNumberAndVariables.java b/core/src/main/java/it/cavallium/warppi/math/parser/steps/JoinNumberAndVariables.java index 76c53937..254f4ee3 100644 --- a/core/src/main/java/it/cavallium/warppi/math/parser/steps/JoinNumberAndVariables.java +++ b/core/src/main/java/it/cavallium/warppi/math/parser/steps/JoinNumberAndVariables.java @@ -1,6 +1,5 @@ package it.cavallium.warppi.math.parser.steps; -import it.cavallium.warppi.IntegerObj; import it.cavallium.warppi.math.Function; import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.math.functions.Division; @@ -8,6 +7,7 @@ import it.cavallium.warppi.math.functions.Multiplication; import it.cavallium.warppi.math.functions.Number; import it.cavallium.warppi.math.functions.Variable; import it.cavallium.warppi.math.parser.MathParserStep; +import it.cavallium.warppi.util.IntWrapper; import it.unimi.dsi.fastutil.objects.ObjectArrayList; public class JoinNumberAndVariables implements MathParserStep { @@ -19,7 +19,7 @@ public class JoinNumberAndVariables implements MathParserStep { } @Override - public boolean eval(IntegerObj curIndex, Function lastFunction, Function currentFunction, + public boolean eval(IntWrapper curIndex, Function lastFunction, Function currentFunction, ObjectArrayList functionsList) { if (currentFunction instanceof Number | currentFunction instanceof Variable | currentFunction instanceof Division) { if (lastFunction instanceof Variable | lastFunction instanceof Number | (lastFunction instanceof Multiplication && ((Multiplication) lastFunction).getParameter2() != null)) { diff --git a/core/src/main/java/it/cavallium/warppi/math/parser/steps/RemoveParentheses.java b/core/src/main/java/it/cavallium/warppi/math/parser/steps/RemoveParentheses.java index 4d8f829a..ae5ee319 100644 --- a/core/src/main/java/it/cavallium/warppi/math/parser/steps/RemoveParentheses.java +++ b/core/src/main/java/it/cavallium/warppi/math/parser/steps/RemoveParentheses.java @@ -1,10 +1,10 @@ package it.cavallium.warppi.math.parser.steps; -import it.cavallium.warppi.IntegerObj; import it.cavallium.warppi.math.Function; import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.math.functions.Expression; import it.cavallium.warppi.math.parser.MathParserStep; +import it.cavallium.warppi.util.IntWrapper; import it.unimi.dsi.fastutil.objects.ObjectArrayList; public class RemoveParentheses implements MathParserStep { @@ -17,7 +17,7 @@ public class RemoveParentheses implements MathParserStep { } @Override - public boolean eval(IntegerObj curIndex, Function lastFunction, Function currentFunction, + public boolean eval(IntWrapper curIndex, Function lastFunction, Function currentFunction, ObjectArrayList functionsList) { if (currentFunction instanceof Expression) { if (((Expression) currentFunction).getParameter() == null) { diff --git a/core/src/main/java/it/cavallium/warppi/math/rules/Rule.java b/core/src/main/java/it/cavallium/warppi/math/rules/Rule.java index 8a8ebd4d..a2d658a1 100644 --- a/core/src/main/java/it/cavallium/warppi/math/rules/Rule.java +++ b/core/src/main/java/it/cavallium/warppi/math/rules/Rule.java @@ -1,7 +1,7 @@ package it.cavallium.warppi.math.rules; -import it.cavallium.warppi.Error; import it.cavallium.warppi.math.Function; +import it.cavallium.warppi.util.Error; import it.unimi.dsi.fastutil.objects.ObjectArrayList; /** diff --git a/core/src/main/java/it/cavallium/warppi/math/rules/RulesManager.java b/core/src/main/java/it/cavallium/warppi/math/rules/RulesManager.java index 8c36b93b..a5f3ac86 100644 --- a/core/src/main/java/it/cavallium/warppi/math/rules/RulesManager.java +++ b/core/src/main/java/it/cavallium/warppi/math/rules/RulesManager.java @@ -10,19 +10,18 @@ import java.net.URISyntaxException; import java.net.URL; import java.util.ArrayList; import java.util.List; -import java.util.zip.ZipFile; import it.cavallium.warppi.Engine; -import it.cavallium.warppi.Error; +import it.cavallium.warppi.Platform.ConsoleUtils; +import it.cavallium.warppi.Platform.URLClassLoader; import it.cavallium.warppi.StaticVars; -import it.cavallium.warppi.deps.Platform.ConsoleUtils; -import it.cavallium.warppi.deps.Platform.URLClassLoader; import it.cavallium.warppi.math.Function; import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.math.functions.Expression; import it.cavallium.warppi.math.functions.Variable; import it.cavallium.warppi.math.functions.Variable.V_TYPE; import it.cavallium.warppi.math.solver.MathSolver; +import it.cavallium.warppi.util.Error; import it.unimi.dsi.fastutil.objects.ObjectArrayList; public class RulesManager { diff --git a/core/src/main/java/it/cavallium/warppi/math/rules/methods/DivisionRule1.java b/core/src/main/java/it/cavallium/warppi/math/rules/methods/DivisionRule1.java index 1784a3e6..0e89ea9e 100644 --- a/core/src/main/java/it/cavallium/warppi/math/rules/methods/DivisionRule1.java +++ b/core/src/main/java/it/cavallium/warppi/math/rules/methods/DivisionRule1.java @@ -1,11 +1,11 @@ package it.cavallium.warppi.math.rules.methods; -import it.cavallium.warppi.Error; import it.cavallium.warppi.math.Function; import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.math.functions.Division; import it.cavallium.warppi.math.functions.Multiplication; import it.cavallium.warppi.math.functions.Number; +import it.cavallium.warppi.util.Error; import it.unimi.dsi.fastutil.objects.ObjectArrayList; /** diff --git a/core/src/main/java/it/cavallium/warppi/math/rules/methods/MultiplicationMethod1.java b/core/src/main/java/it/cavallium/warppi/math/rules/methods/MultiplicationMethod1.java index f4c319b6..9d5fe263 100644 --- a/core/src/main/java/it/cavallium/warppi/math/rules/methods/MultiplicationMethod1.java +++ b/core/src/main/java/it/cavallium/warppi/math/rules/methods/MultiplicationMethod1.java @@ -1,9 +1,9 @@ package it.cavallium.warppi.math.rules.methods; -import it.cavallium.warppi.Error; import it.cavallium.warppi.math.Function; import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.math.functions.Multiplication; +import it.cavallium.warppi.util.Error; import it.unimi.dsi.fastutil.objects.ObjectArrayList; /** diff --git a/core/src/main/java/it/cavallium/warppi/math/rules/methods/SumMethod1.java b/core/src/main/java/it/cavallium/warppi/math/rules/methods/SumMethod1.java index b450dc00..f3b421ea 100644 --- a/core/src/main/java/it/cavallium/warppi/math/rules/methods/SumMethod1.java +++ b/core/src/main/java/it/cavallium/warppi/math/rules/methods/SumMethod1.java @@ -2,7 +2,6 @@ package it.cavallium.warppi.math.rules.methods; import java.math.BigDecimal; -import it.cavallium.warppi.Error; import it.cavallium.warppi.math.Function; import it.cavallium.warppi.math.FunctionOperator; import it.cavallium.warppi.math.MathContext; @@ -10,6 +9,7 @@ import it.cavallium.warppi.math.functions.Negative; import it.cavallium.warppi.math.functions.Number; import it.cavallium.warppi.math.functions.Subtraction; import it.cavallium.warppi.math.functions.Sum; +import it.cavallium.warppi.util.Error; import it.unimi.dsi.fastutil.objects.ObjectArrayList; /** diff --git a/core/src/main/java/it/cavallium/warppi/math/solver/MathSolver.java b/core/src/main/java/it/cavallium/warppi/math/solver/MathSolver.java index fcd91c0e..8a98967c 100644 --- a/core/src/main/java/it/cavallium/warppi/math/solver/MathSolver.java +++ b/core/src/main/java/it/cavallium/warppi/math/solver/MathSolver.java @@ -4,12 +4,11 @@ import java.util.List; import java.util.concurrent.atomic.AtomicInteger; import it.cavallium.warppi.Engine; -import it.cavallium.warppi.Error; -import it.cavallium.warppi.StaticVars; -import it.cavallium.warppi.deps.Platform.ConsoleUtils; +import it.cavallium.warppi.Platform.ConsoleUtils; import it.cavallium.warppi.math.Function; import it.cavallium.warppi.math.rules.Rule; import it.cavallium.warppi.math.rules.RuleType; +import it.cavallium.warppi.util.Error; import it.unimi.dsi.fastutil.objects.ObjectArrayList; public class MathSolver { @@ -76,10 +75,10 @@ public class MathSolver { Engine.getPlatform().getConsoleUtils().out().println(ConsoleUtils.OUTPUTLEVEL_DEBUG_VERBOSE, "Math Solver", stepName, "Step result: " + stepResult); Engine.getPlatform().getConsoleUtils().out().println(ConsoleUtils.OUTPUTLEVEL_DEBUG_VERBOSE, "Math Solver", stepName, "Step result details: Consecutive steps that did nothing: " + consecutiveNullSteps + ", this step did " + stepStateRepetitions + " simplifications."); Engine.getPlatform().getConsoleUtils().out().println(ConsoleUtils.OUTPUTLEVEL_DEBUG_VERBOSE, "Math Solver", stepName, "Next step state: " + stepStates[endStepState]); - if (StaticVars.debugOn) { + if (Engine.getPlatform().getSettings().isDebugEnabled()) { Engine.getPlatform().getConsoleUtils().out().println(ConsoleUtils.OUTPUTLEVEL_DEBUG_VERBOSE, "Math Solver", stepName, currFnc + " is " + (checkEquals(currFnc, lastFunctions[0][endStepState]) ? "" : "not ") + "equals to [0]:" + lastFunctions[0][endStepState]); } - if (StaticVars.debugOn) { + if (Engine.getPlatform().getSettings().isDebugEnabled()) { Engine.getPlatform().getConsoleUtils().out().println(ConsoleUtils.OUTPUTLEVEL_DEBUG_VERBOSE, "Math Solver", stepName, currFnc + " is " + (checkEquals(currFnc, lastFunctions[1][endStepState]) ? "" : "not ") + "equals to [1]:" + lastFunctions[1][endStepState]); } } while (consecutiveNullSteps < stepStates.length && !checkEquals(currFnc, lastFunctions[0][endStepState]) && !checkEquals(currFnc, lastFunctions[1][endStepState])); diff --git a/core/src/main/java/it/cavallium/warppi/CacheUtils.java b/core/src/main/java/it/cavallium/warppi/util/CacheUtils.java similarity index 93% rename from core/src/main/java/it/cavallium/warppi/CacheUtils.java rename to core/src/main/java/it/cavallium/warppi/util/CacheUtils.java index 812dac31..9628004c 100644 --- a/core/src/main/java/it/cavallium/warppi/CacheUtils.java +++ b/core/src/main/java/it/cavallium/warppi/util/CacheUtils.java @@ -1,4 +1,4 @@ -package it.cavallium.warppi; +package it.cavallium.warppi.util; import java.util.Collections; import java.util.HashMap; diff --git a/core/src/main/java/it/cavallium/warppi/ClassUtils.java b/core/src/main/java/it/cavallium/warppi/util/ClassUtils.java similarity index 94% rename from core/src/main/java/it/cavallium/warppi/ClassUtils.java rename to core/src/main/java/it/cavallium/warppi/util/ClassUtils.java index 4051113d..6a98cdd8 100644 --- a/core/src/main/java/it/cavallium/warppi/ClassUtils.java +++ b/core/src/main/java/it/cavallium/warppi/util/ClassUtils.java @@ -1,8 +1,4 @@ -package it.cavallium.warppi; - -import java.lang.reflect.Array; -import java.lang.reflect.InvocationTargetException; -import java.util.Arrays; +package it.cavallium.warppi.util; public class ClassUtils { diff --git a/core/src/main/java/it/cavallium/warppi/Error.java b/core/src/main/java/it/cavallium/warppi/util/Error.java similarity index 87% rename from core/src/main/java/it/cavallium/warppi/Error.java rename to core/src/main/java/it/cavallium/warppi/util/Error.java index d25f11ca..764e62fb 100644 --- a/core/src/main/java/it/cavallium/warppi/Error.java +++ b/core/src/main/java/it/cavallium/warppi/util/Error.java @@ -1,4 +1,4 @@ -package it.cavallium.warppi; +package it.cavallium.warppi.util; public class Error extends java.lang.Throwable { diff --git a/core/src/main/java/it/cavallium/warppi/Errors.java b/core/src/main/java/it/cavallium/warppi/util/Errors.java similarity index 84% rename from core/src/main/java/it/cavallium/warppi/Errors.java rename to core/src/main/java/it/cavallium/warppi/util/Errors.java index 85c66415..a61e06ca 100644 --- a/core/src/main/java/it/cavallium/warppi/Errors.java +++ b/core/src/main/java/it/cavallium/warppi/util/Errors.java @@ -1,4 +1,4 @@ -package it.cavallium.warppi; +package it.cavallium.warppi.util; public enum Errors { ERROR, DIVISION_BY_ZERO, UNBALANCED_STACK, NOT_IMPLEMENTED, NEGATIVE_PARAMETER, NUMBER_TOO_LARGE, NUMBER_TOO_SMALL, CONVERSION_ERROR, SYNTAX_ERROR, NOT_AN_EQUATION, TIMEOUT, MISSING_ARGUMENTS diff --git a/core/src/main/java/it/cavallium/warppi/util/IntWrapper.java b/core/src/main/java/it/cavallium/warppi/util/IntWrapper.java new file mode 100644 index 00000000..c8b183c7 --- /dev/null +++ b/core/src/main/java/it/cavallium/warppi/util/IntWrapper.java @@ -0,0 +1,9 @@ +package it.cavallium.warppi.util; + +public class IntWrapper { + public int i; + + public IntWrapper(int i) { + this.i = i; + } +} diff --git a/core/src/main/java/it/cavallium/warppi/ScriptUtils.java b/core/src/main/java/it/cavallium/warppi/util/ScriptUtils.java similarity index 92% rename from core/src/main/java/it/cavallium/warppi/ScriptUtils.java rename to core/src/main/java/it/cavallium/warppi/util/ScriptUtils.java index 8fc0beda..0006ab9e 100644 --- a/core/src/main/java/it/cavallium/warppi/ScriptUtils.java +++ b/core/src/main/java/it/cavallium/warppi/util/ScriptUtils.java @@ -1,4 +1,4 @@ -package it.cavallium.warppi; +package it.cavallium.warppi.util; import java.math.BigInteger; import java.util.Iterator; diff --git a/core/src/main/java/it/cavallium/warppi/Utils.java b/core/src/main/java/it/cavallium/warppi/util/Utils.java similarity index 95% rename from core/src/main/java/it/cavallium/warppi/Utils.java rename to core/src/main/java/it/cavallium/warppi/util/Utils.java index e9429b6b..075e2b9d 100644 --- a/core/src/main/java/it/cavallium/warppi/Utils.java +++ b/core/src/main/java/it/cavallium/warppi/util/Utils.java @@ -1,4 +1,4 @@ -package it.cavallium.warppi; +package it.cavallium.warppi.util; import java.io.ByteArrayOutputStream; import java.io.File; @@ -12,19 +12,17 @@ import java.math.BigDecimal; import java.math.BigInteger; import java.math.RoundingMode; import java.net.URISyntaxException; -import java.nio.file.Files; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Map; -import org.apache.commons.io.FileUtils; import org.nevec.rjm.BigDecimalMath; import org.nevec.rjm.Rational; -import it.cavallium.warppi.device.HardwareDevice; +import it.cavallium.warppi.Engine; +import it.cavallium.warppi.StaticVars; import it.cavallium.warppi.gui.graphicengine.BinaryFont; -import it.cavallium.warppi.gui.graphicengine.GraphicEngine; import it.cavallium.warppi.math.Function; import it.cavallium.warppi.math.FunctionOperator; import it.cavallium.warppi.math.FunctionSingle; diff --git a/core/src/main/java/org/nevec/rjm/Bernoulli.java b/core/src/main/java/org/nevec/rjm/Bernoulli.java index fe4acca0..a313b36f 100644 --- a/core/src/main/java/org/nevec/rjm/Bernoulli.java +++ b/core/src/main/java/org/nevec/rjm/Bernoulli.java @@ -3,7 +3,7 @@ package org.nevec.rjm; import java.math.BigInteger; import java.util.Vector; -import it.cavallium.warppi.Error; +import it.cavallium.warppi.util.Error; /** * Bernoulli numbers. diff --git a/core/src/main/java/org/nevec/rjm/BigDecimalMath.java b/core/src/main/java/org/nevec/rjm/BigDecimalMath.java index 8fa928c9..8bb91449 100644 --- a/core/src/main/java/org/nevec/rjm/BigDecimalMath.java +++ b/core/src/main/java/org/nevec/rjm/BigDecimalMath.java @@ -5,7 +5,7 @@ import java.math.BigInteger; import java.math.MathContext; import java.security.ProviderException; -import it.cavallium.warppi.Error; +import it.cavallium.warppi.util.Error; /** * BigDecimal special functions. diff --git a/core/src/main/java/org/nevec/rjm/BigIntegerMath.java b/core/src/main/java/org/nevec/rjm/BigIntegerMath.java index 0872422b..1c750453 100644 --- a/core/src/main/java/org/nevec/rjm/BigIntegerMath.java +++ b/core/src/main/java/org/nevec/rjm/BigIntegerMath.java @@ -3,7 +3,7 @@ package org.nevec.rjm; import java.math.BigInteger; import java.util.Vector; -import it.cavallium.warppi.Error; +import it.cavallium.warppi.util.Error; /** * BigInteger special functions and Number theory. diff --git a/core/src/main/java/org/nevec/rjm/BigIntegerPoly.java b/core/src/main/java/org/nevec/rjm/BigIntegerPoly.java index 8a06fe0f..f82cc0f0 100644 --- a/core/src/main/java/org/nevec/rjm/BigIntegerPoly.java +++ b/core/src/main/java/org/nevec/rjm/BigIntegerPoly.java @@ -5,7 +5,7 @@ import java.math.BigInteger; import java.util.Scanner; import java.util.Vector; -import it.cavallium.warppi.Error; +import it.cavallium.warppi.util.Error; /** * Polynomial with integer coefficients. diff --git a/core/src/main/java/org/nevec/rjm/BigSurd.java b/core/src/main/java/org/nevec/rjm/BigSurd.java index cdfa585d..3bb6d761 100644 --- a/core/src/main/java/org/nevec/rjm/BigSurd.java +++ b/core/src/main/java/org/nevec/rjm/BigSurd.java @@ -5,8 +5,8 @@ import java.math.BigInteger; import java.math.MathContext; import java.security.ProviderException; -import it.cavallium.warppi.Error; -import it.cavallium.warppi.Utils; +import it.cavallium.warppi.util.Error; +import it.cavallium.warppi.util.Utils; /** * Square roots on the real line. diff --git a/core/src/main/java/org/nevec/rjm/BigSurdVec.java b/core/src/main/java/org/nevec/rjm/BigSurdVec.java index 310c9cc1..dc75afbb 100644 --- a/core/src/main/java/org/nevec/rjm/BigSurdVec.java +++ b/core/src/main/java/org/nevec/rjm/BigSurdVec.java @@ -5,8 +5,8 @@ import java.math.BigInteger; import java.math.MathContext; import java.util.Vector; -import it.cavallium.warppi.Error; -import it.cavallium.warppi.Utils; +import it.cavallium.warppi.util.Error; +import it.cavallium.warppi.util.Utils; /** * A BigSurdVec represents an algebraic sum or differences of values which each diff --git a/core/src/main/java/org/nevec/rjm/Ifactor.java b/core/src/main/java/org/nevec/rjm/Ifactor.java index 8955a3f8..8b30ff32 100644 --- a/core/src/main/java/org/nevec/rjm/Ifactor.java +++ b/core/src/main/java/org/nevec/rjm/Ifactor.java @@ -4,7 +4,7 @@ import java.math.BigInteger; import java.util.Collections; import java.util.Vector; -import it.cavallium.warppi.Error; +import it.cavallium.warppi.util.Error; /** * Factored integers. diff --git a/core/src/main/java/org/nevec/rjm/RatPoly.java b/core/src/main/java/org/nevec/rjm/RatPoly.java index 53d7db5a..4f9392b5 100644 --- a/core/src/main/java/org/nevec/rjm/RatPoly.java +++ b/core/src/main/java/org/nevec/rjm/RatPoly.java @@ -7,7 +7,7 @@ import java.util.Random; import java.util.Scanner; import java.util.Vector; -import it.cavallium.warppi.Error; +import it.cavallium.warppi.util.Error; /** * A one-parameter polynomial with rational coefficients. diff --git a/core/src/main/java/org/nevec/rjm/Rational.java b/core/src/main/java/org/nevec/rjm/Rational.java index f1017574..962345fa 100644 --- a/core/src/main/java/org/nevec/rjm/Rational.java +++ b/core/src/main/java/org/nevec/rjm/Rational.java @@ -5,8 +5,8 @@ import java.math.BigInteger; import java.math.MathContext; import java.math.RoundingMode; -import it.cavallium.warppi.Error; -import it.cavallium.warppi.Errors; +import it.cavallium.warppi.util.Error; +import it.cavallium.warppi.util.Errors; /** * Fractions (rational numbers). They are divisions of two BigInteger numbers, diff --git a/core/src/main/java/org/nevec/rjm/SafeMathContext.java b/core/src/main/java/org/nevec/rjm/SafeMathContext.java index 408da332..36cc24f7 100644 --- a/core/src/main/java/org/nevec/rjm/SafeMathContext.java +++ b/core/src/main/java/org/nevec/rjm/SafeMathContext.java @@ -4,7 +4,7 @@ import java.math.MathContext; import java.math.RoundingMode; import it.cavallium.warppi.Engine; -import it.cavallium.warppi.deps.Platform.ConsoleUtils; +import it.cavallium.warppi.Platform.ConsoleUtils; public final class SafeMathContext { diff --git a/core/src/main/java/org/nevec/rjm/Wigner3j.java b/core/src/main/java/org/nevec/rjm/Wigner3j.java index dbe27404..d781195b 100644 --- a/core/src/main/java/org/nevec/rjm/Wigner3j.java +++ b/core/src/main/java/org/nevec/rjm/Wigner3j.java @@ -3,7 +3,7 @@ package org.nevec.rjm; import java.math.BigInteger; import java.util.Scanner; -import it.cavallium.warppi.Error; +import it.cavallium.warppi.util.Error; /** * Exact representations of Wigner 3jm and 3nj values of half-integer arguments. diff --git a/core/src/main/java/org/nevec/rjm/Wigner3jGUI.java b/core/src/main/java/org/nevec/rjm/Wigner3jGUI.java index d712dd2a..60188b07 100644 --- a/core/src/main/java/org/nevec/rjm/Wigner3jGUI.java +++ b/core/src/main/java/org/nevec/rjm/Wigner3jGUI.java @@ -16,7 +16,7 @@ import javax.swing.JList; import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; -import it.cavallium.warppi.Error; +import it.cavallium.warppi.util.Error; /** * An interactive interface to the Wigner3j class. The GUI allows to preselect diff --git a/core/src/test/java/it/cavallium/warppi/AppTest.java b/core/src/test/java/it/cavallium/warppi/AppTest.java new file mode 100644 index 00000000..ae73d314 --- /dev/null +++ b/core/src/test/java/it/cavallium/warppi/AppTest.java @@ -0,0 +1,38 @@ +package it.cavallium.warppi; + +import junit.framework.Test; +import junit.framework.TestCase; +import junit.framework.TestSuite; + +/** + * Unit test for simple App. + */ +public class AppTest + extends TestCase +{ + /** + * Create the test case + * + * @param testName name of the test case + */ + public AppTest( String testName ) + { + super( testName ); + } + + /** + * @return the suite of tests being tested + */ + public static Test suite() + { + return new TestSuite( AppTest.class ); + } + + /** + * Rigourous Test :-) + */ + public void testApp() + { + assertTrue( true ); + } +} \ No newline at end of file diff --git a/desktop/math-rules-cache.zip b/desktop/math-rules-cache.zip index 90ab1e6773729ff3534cfd660c7b1f75b521833e..e6c2c06a05e804db9569c5930f980169bcfc1a8e 100644 GIT binary patch delta 11133 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 delta 48170 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 diff --git a/desktop/src/main/java/it/cavallium/warppi/desktop/DesktopConsoleUtils.java b/desktop/src/main/java/it/cavallium/warppi/desktop/DesktopConsoleUtils.java index 163e0b7f..1377c9c3 100644 --- a/desktop/src/main/java/it/cavallium/warppi/desktop/DesktopConsoleUtils.java +++ b/desktop/src/main/java/it/cavallium/warppi/desktop/DesktopConsoleUtils.java @@ -7,7 +7,7 @@ import java.time.format.DateTimeFormatter; import it.cavallium.warppi.StaticVars; import it.cavallium.warppi.math.MathematicalSymbols; -public class DesktopConsoleUtils implements it.cavallium.warppi.deps.Platform.ConsoleUtils { +public class DesktopConsoleUtils implements it.cavallium.warppi.Platform.ConsoleUtils { private AdvancedOutputStream os; diff --git a/desktop/src/main/java/it/cavallium/warppi/desktop/DesktopGpio.java b/desktop/src/main/java/it/cavallium/warppi/desktop/DesktopGpio.java index 28304673..9de6c896 100644 --- a/desktop/src/main/java/it/cavallium/warppi/desktop/DesktopGpio.java +++ b/desktop/src/main/java/it/cavallium/warppi/desktop/DesktopGpio.java @@ -1,8 +1,6 @@ package it.cavallium.warppi.desktop; -import it.cavallium.warppi.ClassUtils; - -public class DesktopGpio implements it.cavallium.warppi.deps.Platform.Gpio { +public class DesktopGpio implements it.cavallium.warppi.Platform.Gpio { @Override public int valueOutput() { diff --git a/desktop/src/main/java/it/cavallium/warppi/desktop/DesktopPlatform.java b/desktop/src/main/java/it/cavallium/warppi/desktop/DesktopPlatform.java index 6e966f9d..9fbdd633 100644 --- a/desktop/src/main/java/it/cavallium/warppi/desktop/DesktopPlatform.java +++ b/desktop/src/main/java/it/cavallium/warppi/desktop/DesktopPlatform.java @@ -10,17 +10,16 @@ import java.util.Map; import org.apache.commons.io.FileUtils; -import it.cavallium.warppi.CacheUtils; import it.cavallium.warppi.Engine; -import it.cavallium.warppi.Error; -import it.cavallium.warppi.deps.Platform; -import it.cavallium.warppi.gui.DisplayManager; +import it.cavallium.warppi.Platform; import it.cavallium.warppi.gui.graphicengine.GraphicEngine; import it.cavallium.warppi.gui.graphicengine.cpu.CPUEngine; import it.cavallium.warppi.gui.graphicengine.gpu.GPUEngine; import it.cavallium.warppi.gui.graphicengine.headless24bit.Headless24bitEngine; import it.cavallium.warppi.gui.graphicengine.headless256.Headless256Engine; import it.cavallium.warppi.gui.graphicengine.headless8.Headless8Engine; +import it.cavallium.warppi.util.CacheUtils; +import it.cavallium.warppi.util.Error; import net.lingala.zip4j.core.ZipFile; import net.lingala.zip4j.model.ZipParameters; import net.lingala.zip4j.util.Zip4jConstants; @@ -33,6 +32,7 @@ public class DesktopPlatform implements Platform { private final PngUtils pu; private final String on; private final Map el; + private final DesktopSettings settings; public DesktopPlatform() { cu = new DesktopConsoleUtils(); @@ -46,6 +46,7 @@ public class DesktopPlatform implements Platform { el.put("headless 24 bit engine", new Headless24bitEngine()); el.put("headless 256 colors engine", new Headless256Engine()); el.put("headless 8 colors engine", new Headless8Engine()); + settings = new DesktopSettings(); } @Override @@ -68,6 +69,11 @@ public class DesktopPlatform implements Platform { return pu; } + @Override + public DesktopSettings getSettings() { + return settings; + } + @Override public void setThreadName(Thread t, String name) { t.setName(name); diff --git a/desktop/src/main/java/it/cavallium/warppi/desktop/DesktopPngReader.java b/desktop/src/main/java/it/cavallium/warppi/desktop/DesktopPngReader.java index 5b9609d6..66e316cc 100644 --- a/desktop/src/main/java/it/cavallium/warppi/desktop/DesktopPngReader.java +++ b/desktop/src/main/java/it/cavallium/warppi/desktop/DesktopPngReader.java @@ -3,7 +3,7 @@ package it.cavallium.warppi.desktop; import java.io.InputStream; import ar.com.hjg.pngj.ImageLineInt; -import it.cavallium.warppi.deps.Platform.PngUtils.PngReader; +import it.cavallium.warppi.Platform.PngUtils.PngReader; public class DesktopPngReader implements PngReader { diff --git a/desktop/src/main/java/it/cavallium/warppi/desktop/DesktopPngUtils.java b/desktop/src/main/java/it/cavallium/warppi/desktop/DesktopPngUtils.java index 6aac1564..7b3dbc75 100644 --- a/desktop/src/main/java/it/cavallium/warppi/desktop/DesktopPngUtils.java +++ b/desktop/src/main/java/it/cavallium/warppi/desktop/DesktopPngUtils.java @@ -2,7 +2,7 @@ package it.cavallium.warppi.desktop; import java.io.InputStream; -import it.cavallium.warppi.deps.Platform.PngUtils; +import it.cavallium.warppi.Platform.PngUtils; public class DesktopPngUtils implements PngUtils { diff --git a/desktop/src/main/java/it/cavallium/warppi/desktop/DesktopSemaphore.java b/desktop/src/main/java/it/cavallium/warppi/desktop/DesktopSemaphore.java index 1c7a206e..6bdceceb 100644 --- a/desktop/src/main/java/it/cavallium/warppi/desktop/DesktopSemaphore.java +++ b/desktop/src/main/java/it/cavallium/warppi/desktop/DesktopSemaphore.java @@ -2,7 +2,7 @@ package it.cavallium.warppi.desktop; import java.util.concurrent.Semaphore; -public class DesktopSemaphore extends Semaphore implements it.cavallium.warppi.deps.Platform.Semaphore { +public class DesktopSemaphore extends Semaphore implements it.cavallium.warppi.Platform.Semaphore { private static final long serialVersionUID = -2362314723921013871L; diff --git a/desktop/src/main/java/it/cavallium/warppi/desktop/DesktopSettings.java b/desktop/src/main/java/it/cavallium/warppi/desktop/DesktopSettings.java new file mode 100644 index 00000000..5cb200fe --- /dev/null +++ b/desktop/src/main/java/it/cavallium/warppi/desktop/DesktopSettings.java @@ -0,0 +1,23 @@ +package it.cavallium.warppi.desktop; + +import it.cavallium.warppi.Platform.Settings; + +public class DesktopSettings implements Settings { + + private boolean debug; + + public DesktopSettings() { + this.debug = true; + } + + @Override + public boolean isDebugEnabled() { + return debug; + } + + @Override + public void setDebugEnabled(boolean debug) { + this.debug = debug; + } + +} diff --git a/desktop/src/main/java/it/cavallium/warppi/desktop/DesktopStorageUtils.java b/desktop/src/main/java/it/cavallium/warppi/desktop/DesktopStorageUtils.java index 56e5ac90..b73cfb49 100644 --- a/desktop/src/main/java/it/cavallium/warppi/desktop/DesktopStorageUtils.java +++ b/desktop/src/main/java/it/cavallium/warppi/desktop/DesktopStorageUtils.java @@ -26,8 +26,8 @@ import java.util.stream.Stream; import org.apache.commons.io.IOUtils; -import it.cavallium.warppi.ClassUtils; -import it.cavallium.warppi.deps.Platform.StorageUtils; +import it.cavallium.warppi.Platform.StorageUtils; +import it.cavallium.warppi.util.ClassUtils; public class DesktopStorageUtils implements StorageUtils { public boolean exists(File f) { diff --git a/desktop/src/main/java/it/cavallium/warppi/desktop/DesktopURLClassLoader.java b/desktop/src/main/java/it/cavallium/warppi/desktop/DesktopURLClassLoader.java index d236ba3c..c716e504 100644 --- a/desktop/src/main/java/it/cavallium/warppi/desktop/DesktopURLClassLoader.java +++ b/desktop/src/main/java/it/cavallium/warppi/desktop/DesktopURLClassLoader.java @@ -2,7 +2,7 @@ package it.cavallium.warppi.desktop; import java.net.URL; -import it.cavallium.warppi.deps.Platform.URLClassLoader; +import it.cavallium.warppi.Platform.URLClassLoader; public class DesktopURLClassLoader extends java.net.URLClassLoader implements URLClassLoader { diff --git a/desktop/src/main/java/it/cavallium/warppi/gui/graphicengine/cpu/CPUEngine.java b/desktop/src/main/java/it/cavallium/warppi/gui/graphicengine/cpu/CPUEngine.java index 222cb547..ecf35eb4 100644 --- a/desktop/src/main/java/it/cavallium/warppi/gui/graphicengine/cpu/CPUEngine.java +++ b/desktop/src/main/java/it/cavallium/warppi/gui/graphicengine/cpu/CPUEngine.java @@ -7,8 +7,6 @@ import java.util.concurrent.Semaphore; import it.cavallium.warppi.Engine; import it.cavallium.warppi.StaticVars; -import it.cavallium.warppi.Utils; -import it.cavallium.warppi.device.HardwareDevice; import it.cavallium.warppi.flow.Observable; import it.cavallium.warppi.gui.graphicengine.BinaryFont; import it.cavallium.warppi.gui.graphicengine.GraphicEngine; @@ -56,7 +54,7 @@ public class CPUEngine implements GraphicEngine { initialized = false; exitSemaphore = new Semaphore(0); INSTANCE = new SwingWindow(this); - setResizable(StaticVars.debugOn); + setResizable(Engine.getPlatform().getSettings().isDebugEnabled()); setDisplayMode(StaticVars.screenSize[0], StaticVars.screenSize[1]); INSTANCE.setVisible(true); initialized = true; diff --git a/desktop/src/main/java/it/cavallium/warppi/gui/graphicengine/cpu/JAdvancedButton.java b/desktop/src/main/java/it/cavallium/warppi/gui/graphicengine/cpu/JAdvancedButton.java index d50de771..c3bff915 100644 --- a/desktop/src/main/java/it/cavallium/warppi/gui/graphicengine/cpu/JAdvancedButton.java +++ b/desktop/src/main/java/it/cavallium/warppi/gui/graphicengine/cpu/JAdvancedButton.java @@ -5,10 +5,10 @@ package it.cavallium.warppi.gui.graphicengine.cpu; import java.awt.AlphaComposite; +import java.awt.Dimension; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Image; -import java.awt.Dimension; import java.awt.RenderingHints; import java.awt.event.ActionEvent; import java.awt.image.BufferedImage; diff --git a/desktop/src/main/java/it/cavallium/warppi/gui/graphicengine/cpu/SwingWindow.java b/desktop/src/main/java/it/cavallium/warppi/gui/graphicengine/cpu/SwingWindow.java index c5f5e4c6..3f52b587 100644 --- a/desktop/src/main/java/it/cavallium/warppi/gui/graphicengine/cpu/SwingWindow.java +++ b/desktop/src/main/java/it/cavallium/warppi/gui/graphicengine/cpu/SwingWindow.java @@ -26,15 +26,11 @@ import java.io.IOException; import java.net.URISyntaxException; import javax.imageio.ImageIO; -import javax.swing.BoxLayout; import javax.swing.JFrame; import javax.swing.JPanel; import it.cavallium.warppi.Engine; import it.cavallium.warppi.StaticVars; -import it.cavallium.warppi.Utils; -import it.cavallium.warppi.deps.Platform.PngUtils.PngReader; -import it.cavallium.warppi.device.HardwareDevice; import it.cavallium.warppi.device.Keyboard; import it.cavallium.warppi.event.TouchEndEvent; import it.cavallium.warppi.event.TouchMoveEvent; @@ -42,9 +38,7 @@ import it.cavallium.warppi.event.TouchPoint; import it.cavallium.warppi.event.TouchStartEvent; import it.cavallium.warppi.flow.BehaviorSubject; import it.cavallium.warppi.flow.Observable; -import it.cavallium.warppi.gui.graphicengine.GraphicEngine; import it.cavallium.warppi.gui.graphicengine.RenderingLoop; -import it.cavallium.warppi.gui.graphicengine.common.PngSkin; import it.unimi.dsi.fastutil.objects.ObjectArrayList; public class SwingWindow extends JFrame { @@ -78,7 +72,7 @@ public class SwingWindow extends JFrame { mult = StaticVars.windowZoomFunction.apply(StaticVars.windowZoom.getLastValue()).intValue(); - if (!StaticVars.debugOn) { + if (!Engine.getPlatform().getSettings().isDebugEnabled()) { // Create a new blank cursor. final Cursor blankCursor = Toolkit.getDefaultToolkit().createCustomCursor(cursorImg, new Point(0, 0), "blank cursor"); @@ -119,7 +113,7 @@ public class SwingWindow extends JFrame { @Override public void componentShown(ComponentEvent e) { - if (StaticVars.debugOn) { + if (Engine.getPlatform().getSettings().isDebugEnabled()) { SwingWindow.this.centerWindow(); } } diff --git a/desktop/src/main/java/it/cavallium/warppi/gui/graphicengine/headless24bit/Headless24bitEngine.java b/desktop/src/main/java/it/cavallium/warppi/gui/graphicengine/headless24bit/Headless24bitEngine.java index 852db555..10810ddf 100644 --- a/desktop/src/main/java/it/cavallium/warppi/gui/graphicengine/headless24bit/Headless24bitEngine.java +++ b/desktop/src/main/java/it/cavallium/warppi/gui/graphicengine/headless24bit/Headless24bitEngine.java @@ -6,13 +6,14 @@ import java.util.logging.ConsoleHandler; import org.fusesource.jansi.AnsiConsole; import org.fusesource.jansi.internal.WindowsSupport; +import it.cavallium.warppi.Engine; import it.cavallium.warppi.StaticVars; -import it.cavallium.warppi.Utils; import it.cavallium.warppi.device.Keyboard; import it.cavallium.warppi.event.Key; import it.cavallium.warppi.flow.Observable; import it.cavallium.warppi.gui.graphicengine.Renderer; import it.cavallium.warppi.gui.graphicengine.RenderingLoop; +import it.cavallium.warppi.util.Utils; public class Headless24bitEngine implements it.cavallium.warppi.gui.graphicengine.GraphicEngine { @@ -23,10 +24,13 @@ public class Headless24bitEngine implements it.cavallium.warppi.gui.graphicengin public static final int C_MUL_Y = 8;//8; protected static int C_WIDTH; protected static int C_HEIGHT; - private String title = StaticVars.calculatorName; + private String title; private boolean win = false; private Key precKey = null; + public Headless24bitEngine() { + } + @Override public int[] getSize() { new ConsoleHandler(); @@ -65,6 +69,7 @@ public class Headless24bitEngine implements it.cavallium.warppi.gui.graphicengin @Override public void create(Runnable onInitialized) { + title = Engine.getPlatform().getSettings().getCalculatorName(); r = new Headless24bitRenderer(); C_WIDTH = StaticVars.screenSize[0] / C_MUL_X; C_HEIGHT = StaticVars.screenSize[1] / C_MUL_Y; diff --git a/desktop/src/main/java/it/cavallium/warppi/gui/graphicengine/headless256/Headless256Engine.java b/desktop/src/main/java/it/cavallium/warppi/gui/graphicengine/headless256/Headless256Engine.java index 8ebde160..2a861d64 100644 --- a/desktop/src/main/java/it/cavallium/warppi/gui/graphicengine/headless256/Headless256Engine.java +++ b/desktop/src/main/java/it/cavallium/warppi/gui/graphicengine/headless256/Headless256Engine.java @@ -6,14 +6,15 @@ import java.util.logging.ConsoleHandler; import org.fusesource.jansi.AnsiConsole; import org.fusesource.jansi.internal.WindowsSupport; +import it.cavallium.warppi.Engine; import it.cavallium.warppi.StaticVars; -import it.cavallium.warppi.Utils; import it.cavallium.warppi.device.Keyboard; import it.cavallium.warppi.event.Key; import it.cavallium.warppi.flow.Observable; import it.cavallium.warppi.gui.graphicengine.Renderer; import it.cavallium.warppi.gui.graphicengine.RenderingLoop; import it.cavallium.warppi.gui.graphicengine.headless24bit.Headless24bitRenderer; +import it.cavallium.warppi.util.Utils; public class Headless256Engine implements it.cavallium.warppi.gui.graphicengine.GraphicEngine { @@ -24,7 +25,7 @@ public class Headless256Engine implements it.cavallium.warppi.gui.graphicengine. public static final int C_MUL_Y = 8;//8; protected static int C_WIDTH; protected static int C_HEIGHT; - private String title = StaticVars.calculatorName; + private String title; private boolean win = false; private Key precKey = null; @@ -63,6 +64,7 @@ public class Headless256Engine implements it.cavallium.warppi.gui.graphicengine. @Override public void create(Runnable onInitialized) { + title = Engine.getPlatform().getSettings().getCalculatorName(); r = new Headless256Renderer(); C_WIDTH = StaticVars.screenSize[0] / C_MUL_X;//Main.screenSize[0]/2;//;60; C_HEIGHT = StaticVars.screenSize[1] / C_MUL_Y;//Main.screenSize[1]/3;//;40; diff --git a/desktop/src/main/java/it/cavallium/warppi/gui/graphicengine/headless8/Headless8Engine.java b/desktop/src/main/java/it/cavallium/warppi/gui/graphicengine/headless8/Headless8Engine.java index 51fa7ba1..e4ab1a01 100644 --- a/desktop/src/main/java/it/cavallium/warppi/gui/graphicengine/headless8/Headless8Engine.java +++ b/desktop/src/main/java/it/cavallium/warppi/gui/graphicengine/headless8/Headless8Engine.java @@ -6,14 +6,15 @@ import java.util.logging.ConsoleHandler; import org.fusesource.jansi.AnsiConsole; import org.fusesource.jansi.internal.WindowsSupport; +import it.cavallium.warppi.Engine; import it.cavallium.warppi.StaticVars; -import it.cavallium.warppi.Utils; import it.cavallium.warppi.device.Keyboard; import it.cavallium.warppi.event.Key; import it.cavallium.warppi.flow.Observable; import it.cavallium.warppi.gui.graphicengine.Renderer; import it.cavallium.warppi.gui.graphicengine.RenderingLoop; import it.cavallium.warppi.gui.graphicengine.headless24bit.Headless24bitRenderer; +import it.cavallium.warppi.util.Utils; public class Headless8Engine implements it.cavallium.warppi.gui.graphicengine.GraphicEngine { @@ -24,7 +25,7 @@ public class Headless8Engine implements it.cavallium.warppi.gui.graphicengine.Gr public static final int C_MUL_Y = 8;//8; protected static int C_WIDTH; protected static int C_HEIGHT; - private String title = StaticVars.calculatorName; + private String title; private boolean win = false; private Key precKey = null; @@ -63,6 +64,7 @@ public class Headless8Engine implements it.cavallium.warppi.gui.graphicengine.Gr @Override public void create(Runnable onInitialized) { + title = Engine.getPlatform().getSettings().getCalculatorName(); r = new Headless8Renderer(); C_WIDTH = StaticVars.screenSize[0] / C_MUL_X;//Main.screenSize[0]/2;//;60; C_HEIGHT = StaticVars.screenSize[1] / C_MUL_Y;//Main.screenSize[1]/3;//;40; diff --git a/engine-gpu/src/main/java/it/cavallium/warppi/gui/graphicengine/gpu/GPUEngine.java b/engine-gpu/src/main/java/it/cavallium/warppi/gui/graphicengine/gpu/GPUEngine.java index b907cd56..fbe1afb6 100644 --- a/engine-gpu/src/main/java/it/cavallium/warppi/gui/graphicengine/gpu/GPUEngine.java +++ b/engine-gpu/src/main/java/it/cavallium/warppi/gui/graphicengine/gpu/GPUEngine.java @@ -11,8 +11,8 @@ import java.util.concurrent.Semaphore; import com.jogamp.opengl.GLProfile; import com.jogamp.opengl.util.texture.Texture; +import it.cavallium.warppi.Engine; import it.cavallium.warppi.StaticVars; -import it.cavallium.warppi.Utils; import it.cavallium.warppi.flow.Observable; import it.cavallium.warppi.gui.graphicengine.BinaryFont; import it.cavallium.warppi.gui.graphicengine.GraphicEngine; @@ -80,7 +80,7 @@ public class GPUEngine implements GraphicEngine { wnd = new NEWTWindow(this); wnd.create(); setDisplayMode(StaticVars.screenSize[0], StaticVars.screenSize[1]); - setResizable(StaticVars.debugOn); + setResizable(Engine.getPlatform().getSettings().isDebugEnabled()); initialized = true; wnd.onInitialized = onInitialized; } diff --git a/engine-gpu/src/main/java/it/cavallium/warppi/gui/graphicengine/gpu/GPURenderer.java b/engine-gpu/src/main/java/it/cavallium/warppi/gui/graphicengine/gpu/GPURenderer.java index 85c08061..36251f2b 100644 --- a/engine-gpu/src/main/java/it/cavallium/warppi/gui/graphicengine/gpu/GPURenderer.java +++ b/engine-gpu/src/main/java/it/cavallium/warppi/gui/graphicengine/gpu/GPURenderer.java @@ -4,7 +4,6 @@ import java.awt.image.BufferedImage; import java.io.File; import java.io.FileInputStream; import java.io.IOException; -import java.nio.Buffer; import java.nio.FloatBuffer; import java.nio.file.Files; @@ -19,7 +18,6 @@ import com.jogamp.opengl.util.texture.TextureData; import com.jogamp.opengl.util.texture.TextureIO; import it.cavallium.warppi.Engine; -import it.cavallium.warppi.StaticVars; import it.cavallium.warppi.gui.graphicengine.BinaryFont; import it.cavallium.warppi.gui.graphicengine.Renderer; @@ -27,7 +25,7 @@ public class GPURenderer implements Renderer { public static GL2ES1 gl; - private static final int ELEMENTS_MAX_COUNT_PER_BUFFER = StaticVars.enableVBO ? 128 : 1; + private static final int ELEMENTS_MAX_COUNT_PER_BUFFER = 128; private static final int ELEMENT_VERTICES_COUNT = 6; private static final int vertSize = 3; @@ -306,7 +304,7 @@ public class GPURenderer implements Renderer { final Texture tex = TextureIO.newTexture(f, false); if (deleteOnExit && f.exists()) { try { - if (StaticVars.debugOn) { + if (Engine.getPlatform().getSettings().isDebugEnabled()) { throw new IOException("Delete on exit!"); } f.delete(); diff --git a/engine-gpu/src/main/java/it/cavallium/warppi/gui/graphicengine/gpu/NEWTWindow.java b/engine-gpu/src/main/java/it/cavallium/warppi/gui/graphicengine/gpu/NEWTWindow.java index d82c6e7e..d618ff50 100644 --- a/engine-gpu/src/main/java/it/cavallium/warppi/gui/graphicengine/gpu/NEWTWindow.java +++ b/engine-gpu/src/main/java/it/cavallium/warppi/gui/graphicengine/gpu/NEWTWindow.java @@ -52,7 +52,6 @@ import com.jogamp.opengl.util.texture.Texture; import it.cavallium.warppi.Engine; import it.cavallium.warppi.StaticVars; -import it.cavallium.warppi.device.HardwareDevice; import it.cavallium.warppi.device.Keyboard; import it.cavallium.warppi.event.Key; import it.cavallium.warppi.event.TouchEndEvent; @@ -134,7 +133,7 @@ class NEWTWindow implements GLEventListener { System.err.println("Le OpenGL non sono presenti su questo computer!"); return; } - if (StaticVars.debugOn) { + if (Engine.getPlatform().getSettings().isDebugEnabled()) { System.setProperty("jnlp.newt.window.icons", "res/icons/calculator-016.png res/icons/calculator-018.png res/icons/calculator-256.png"); } final GLCapabilities caps = new GLCapabilities(GLProfile.get(GLProfile.GL2ES1)); @@ -459,7 +458,7 @@ class NEWTWindow implements GLEventListener { final GL2ES1 gl = drawable.getGL().getGL2ES1(); onGLContext.onNext(gl); - if (StaticVars.debugOn) { + if (Engine.getPlatform().getSettings().isDebugEnabled()) { //Vsync gl.setSwapInterval(1); } else { diff --git a/core/src/main/java/cz/adamh/utils/NativeUtils.java b/hardware/src/main/java/cz/adamh/utils/NativeUtils.java similarity index 100% rename from core/src/main/java/cz/adamh/utils/NativeUtils.java rename to hardware/src/main/java/cz/adamh/utils/NativeUtils.java diff --git a/core/src/main/java/it/cavallium/warppi/MmapByteBuffer.java b/hardware/src/main/java/it/cavallium/warppi/MmapByteBuffer.java similarity index 100% rename from core/src/main/java/it/cavallium/warppi/MmapByteBuffer.java rename to hardware/src/main/java/it/cavallium/warppi/MmapByteBuffer.java diff --git a/core/src/main/java/it/cavallium/warppi/TestJNI.java b/hardware/src/main/java/it/cavallium/warppi/TestJNI.java similarity index 100% rename from core/src/main/java/it/cavallium/warppi/TestJNI.java rename to hardware/src/main/java/it/cavallium/warppi/TestJNI.java diff --git a/hardware/src/main/java/it/cavallium/warppi/gui/graphicengine/framebuffer/FBEngine.java b/hardware/src/main/java/it/cavallium/warppi/gui/graphicengine/framebuffer/FBEngine.java index e3046f3f..7544c8c5 100644 --- a/hardware/src/main/java/it/cavallium/warppi/gui/graphicengine/framebuffer/FBEngine.java +++ b/hardware/src/main/java/it/cavallium/warppi/gui/graphicengine/framebuffer/FBEngine.java @@ -11,13 +11,9 @@ import it.cavallium.warppi.StaticVars; import it.cavallium.warppi.TestJNI; import it.cavallium.warppi.flow.BehaviorSubject; import it.cavallium.warppi.flow.Observable; -import it.cavallium.warppi.gui.graphicengine.BinaryFont; import it.cavallium.warppi.gui.graphicengine.GraphicEngine; import it.cavallium.warppi.gui.graphicengine.Renderer; import it.cavallium.warppi.gui.graphicengine.RenderingLoop; -import it.cavallium.warppi.gui.graphicengine.Skin; -import it.cavallium.warppi.gui.graphicengine.common.PngSkin; -import it.cavallium.warppi.gui.graphicengine.common.RFTFont; public class FBEngine implements GraphicEngine { diff --git a/hardware/src/main/java/it/cavallium/warppi/hardware/HardwareConsoleUtils.java b/hardware/src/main/java/it/cavallium/warppi/hardware/HardwareConsoleUtils.java index ae54c09e..daacdfe0 100644 --- a/hardware/src/main/java/it/cavallium/warppi/hardware/HardwareConsoleUtils.java +++ b/hardware/src/main/java/it/cavallium/warppi/hardware/HardwareConsoleUtils.java @@ -7,7 +7,7 @@ import java.time.format.DateTimeFormatter; import it.cavallium.warppi.StaticVars; import it.cavallium.warppi.math.MathematicalSymbols; -public class HardwareConsoleUtils implements it.cavallium.warppi.deps.Platform.ConsoleUtils { +public class HardwareConsoleUtils implements it.cavallium.warppi.Platform.ConsoleUtils { private AdvancedOutputStream os; diff --git a/hardware/src/main/java/it/cavallium/warppi/hardware/HardwareGpio.java b/hardware/src/main/java/it/cavallium/warppi/hardware/HardwareGpio.java index 101add20..0e66268a 100644 --- a/hardware/src/main/java/it/cavallium/warppi/hardware/HardwareGpio.java +++ b/hardware/src/main/java/it/cavallium/warppi/hardware/HardwareGpio.java @@ -2,9 +2,7 @@ package it.cavallium.warppi.hardware; import java.io.IOException; -import it.cavallium.warppi.ClassUtils; - -public class HardwareGpio implements it.cavallium.warppi.deps.Platform.Gpio { +public class HardwareGpio implements it.cavallium.warppi.Platform.Gpio { @Override public int valueOutput() { diff --git a/hardware/src/main/java/it/cavallium/warppi/hardware/HardwarePlatform.java b/hardware/src/main/java/it/cavallium/warppi/hardware/HardwarePlatform.java index fb707b47..eeea3d23 100644 --- a/hardware/src/main/java/it/cavallium/warppi/hardware/HardwarePlatform.java +++ b/hardware/src/main/java/it/cavallium/warppi/hardware/HardwarePlatform.java @@ -1,22 +1,17 @@ package it.cavallium.warppi.hardware; import java.io.File; -import java.io.IOException; import java.io.PrintWriter; import java.io.StringWriter; import java.net.URL; import java.util.HashMap; import java.util.Map; -import org.apache.commons.io.FileUtils; - -import it.cavallium.warppi.CacheUtils; -import it.cavallium.warppi.Engine; -import it.cavallium.warppi.Error; -import it.cavallium.warppi.deps.Platform; +import it.cavallium.warppi.Platform; import it.cavallium.warppi.gui.graphicengine.GraphicEngine; import it.cavallium.warppi.gui.graphicengine.framebuffer.FBEngine; import it.cavallium.warppi.gui.graphicengine.gpu.GPUEngine; +import it.cavallium.warppi.util.Error; import net.lingala.zip4j.core.ZipFile; import net.lingala.zip4j.model.ZipParameters; import net.lingala.zip4j.util.Zip4jConstants; @@ -29,6 +24,7 @@ public class HardwarePlatform implements Platform { private final PngUtils pu; private final String on; private final Map el; + private final HardwareSettings settings; public HardwarePlatform() { cu = new HardwareConsoleUtils(); @@ -39,6 +35,7 @@ public class HardwarePlatform implements Platform { el = new HashMap<>(); el.put("GPU engine", new GPUEngine()); el.put("framebuffer engine", new FBEngine()); + settings = new HardwareSettings(); } @Override @@ -61,6 +58,11 @@ public class HardwarePlatform implements Platform { return pu; } + @Override + public HardwareSettings getSettings() { + return settings; + } + @Override public void setThreadName(Thread t, String name) { t.setName(name); diff --git a/hardware/src/main/java/it/cavallium/warppi/hardware/HardwarePngReader.java b/hardware/src/main/java/it/cavallium/warppi/hardware/HardwarePngReader.java index e7a55087..75209d03 100644 --- a/hardware/src/main/java/it/cavallium/warppi/hardware/HardwarePngReader.java +++ b/hardware/src/main/java/it/cavallium/warppi/hardware/HardwarePngReader.java @@ -3,7 +3,7 @@ package it.cavallium.warppi.hardware; import java.io.InputStream; import ar.com.hjg.pngj.ImageLineInt; -import it.cavallium.warppi.deps.Platform.PngUtils.PngReader; +import it.cavallium.warppi.Platform.PngUtils.PngReader; public class HardwarePngReader implements PngReader { diff --git a/hardware/src/main/java/it/cavallium/warppi/hardware/HardwarePngUtils.java b/hardware/src/main/java/it/cavallium/warppi/hardware/HardwarePngUtils.java index a12f5a58..b5dc341e 100644 --- a/hardware/src/main/java/it/cavallium/warppi/hardware/HardwarePngUtils.java +++ b/hardware/src/main/java/it/cavallium/warppi/hardware/HardwarePngUtils.java @@ -2,7 +2,7 @@ package it.cavallium.warppi.hardware; import java.io.InputStream; -import it.cavallium.warppi.deps.Platform.PngUtils; +import it.cavallium.warppi.Platform.PngUtils; public class HardwarePngUtils implements PngUtils { diff --git a/hardware/src/main/java/it/cavallium/warppi/hardware/HardwareSemaphore.java b/hardware/src/main/java/it/cavallium/warppi/hardware/HardwareSemaphore.java index a8b20159..209d7fd3 100644 --- a/hardware/src/main/java/it/cavallium/warppi/hardware/HardwareSemaphore.java +++ b/hardware/src/main/java/it/cavallium/warppi/hardware/HardwareSemaphore.java @@ -2,7 +2,7 @@ package it.cavallium.warppi.hardware; import java.util.concurrent.Semaphore; -public class HardwareSemaphore extends Semaphore implements it.cavallium.warppi.deps.Platform.Semaphore { +public class HardwareSemaphore extends Semaphore implements it.cavallium.warppi.Platform.Semaphore { private static final long serialVersionUID = -2362314723921013871L; diff --git a/hardware/src/main/java/it/cavallium/warppi/hardware/HardwareSettings.java b/hardware/src/main/java/it/cavallium/warppi/hardware/HardwareSettings.java new file mode 100644 index 00000000..7faffc3e --- /dev/null +++ b/hardware/src/main/java/it/cavallium/warppi/hardware/HardwareSettings.java @@ -0,0 +1,23 @@ +package it.cavallium.warppi.hardware; + +import it.cavallium.warppi.Platform.Settings; + +public class HardwareSettings implements Settings { + + private boolean debug; + + public HardwareSettings() { + this.debug = true; + } + + @Override + public boolean isDebugEnabled() { + return debug; + } + + @Override + public void setDebugEnabled(boolean debug) { + this.debug = debug; + } + +} diff --git a/hardware/src/main/java/it/cavallium/warppi/hardware/HardwareStorageUtils.java b/hardware/src/main/java/it/cavallium/warppi/hardware/HardwareStorageUtils.java index 6827eed5..724729c4 100644 --- a/hardware/src/main/java/it/cavallium/warppi/hardware/HardwareStorageUtils.java +++ b/hardware/src/main/java/it/cavallium/warppi/hardware/HardwareStorageUtils.java @@ -26,8 +26,8 @@ import java.util.stream.Stream; import org.apache.commons.io.IOUtils; -import it.cavallium.warppi.ClassUtils; -import it.cavallium.warppi.deps.Platform.StorageUtils; +import it.cavallium.warppi.Platform.StorageUtils; +import it.cavallium.warppi.util.ClassUtils; public class HardwareStorageUtils implements StorageUtils { public boolean exists(File f) { diff --git a/hardware/src/main/java/it/cavallium/warppi/hardware/HardwareURLClassLoader.java b/hardware/src/main/java/it/cavallium/warppi/hardware/HardwareURLClassLoader.java index a821e83b..81f04629 100644 --- a/hardware/src/main/java/it/cavallium/warppi/hardware/HardwareURLClassLoader.java +++ b/hardware/src/main/java/it/cavallium/warppi/hardware/HardwareURLClassLoader.java @@ -2,7 +2,7 @@ package it.cavallium.warppi.hardware; import java.net.URL; -import it.cavallium.warppi.deps.Platform.URLClassLoader; +import it.cavallium.warppi.Platform.URLClassLoader; public class HardwareURLClassLoader extends java.net.URLClassLoader implements URLClassLoader { diff --git a/core/src/main/jni/.gitignore b/hardware/src/main/jni/.gitignore similarity index 100% rename from core/src/main/jni/.gitignore rename to hardware/src/main/jni/.gitignore diff --git a/core/src/main/jni/CMakeLists.txt b/hardware/src/main/jni/CMakeLists.txt similarity index 100% rename from core/src/main/jni/CMakeLists.txt rename to hardware/src/main/jni/CMakeLists.txt diff --git a/core/src/main/jni/TestJNI.cpp b/hardware/src/main/jni/TestJNI.cpp similarity index 100% rename from core/src/main/jni/TestJNI.cpp rename to hardware/src/main/jni/TestJNI.cpp diff --git a/core/src/main/jni/TestJNI.h b/hardware/src/main/jni/TestJNI.h similarity index 100% rename from core/src/main/jni/TestJNI.h rename to hardware/src/main/jni/TestJNI.h diff --git a/core/src/main/jni/libpicalc.so b/hardware/src/main/jni/libpicalc.so similarity index 100% rename from core/src/main/jni/libpicalc.so rename to hardware/src/main/jni/libpicalc.so diff --git a/core/src/main/jni/makefileOLD b/hardware/src/main/jni/makefileOLD similarity index 100% rename from core/src/main/jni/makefileOLD rename to hardware/src/main/jni/makefileOLD diff --git a/pom.xml b/pom.xml index 51b68d84..bd6d2518 100755 --- a/pom.xml +++ b/pom.xml @@ -83,6 +83,12 @@ + + junit + junit + 3.8.1 + test + it.unimi.dsi fastutil diff --git a/rules/src/main/java/rules/ExpandRule1.java b/rules/src/main/java/rules/ExpandRule1.java index 16c0edb1..8c39bc5a 100644 --- a/rules/src/main/java/rules/ExpandRule1.java +++ b/rules/src/main/java/rules/ExpandRule1.java @@ -6,7 +6,6 @@ SETTINGS: (please don't move this part) -import it.cavallium.warppi.ScriptUtils; import it.cavallium.warppi.math.Function; import it.cavallium.warppi.math.FunctionOperator; import it.cavallium.warppi.math.MathContext; @@ -17,7 +16,6 @@ import it.cavallium.warppi.math.functions.Sum; import it.cavallium.warppi.math.functions.SumSubtraction; import it.cavallium.warppi.math.rules.Rule; import it.cavallium.warppi.math.rules.RuleType; -import it.cavallium.warppi.math.rules.RulesManager; import it.unimi.dsi.fastutil.objects.ObjectArrayList; /** diff --git a/rules/src/main/java/rules/ExpandRule2.java b/rules/src/main/java/rules/ExpandRule2.java index ee124d91..84e5cf80 100644 --- a/rules/src/main/java/rules/ExpandRule2.java +++ b/rules/src/main/java/rules/ExpandRule2.java @@ -4,18 +4,14 @@ SETTINGS: (please don't move this part) PATH=ExpandRule2 */ -import it.cavallium.warppi.Error; -import it.cavallium.warppi.Errors; import it.cavallium.warppi.math.Function; -import it.cavallium.warppi.math.FunctionOperator; import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.math.functions.Multiplication; -import it.cavallium.warppi.math.functions.Number; -import it.cavallium.warppi.math.functions.Subtraction; import it.cavallium.warppi.math.functions.Sum; -import it.cavallium.warppi.math.functions.SumSubtraction; import it.cavallium.warppi.math.rules.Rule; import it.cavallium.warppi.math.rules.RuleType; +import it.cavallium.warppi.util.Error; +import it.cavallium.warppi.util.Errors; import it.unimi.dsi.fastutil.objects.ObjectArrayList; /** diff --git a/rules/src/main/java/rules/ExpandRule5.java b/rules/src/main/java/rules/ExpandRule5.java index 743f796b..33c251ae 100644 --- a/rules/src/main/java/rules/ExpandRule5.java +++ b/rules/src/main/java/rules/ExpandRule5.java @@ -4,17 +4,12 @@ SETTINGS: (please don't move this part) PATH=ExpandRule5 */ -import it.cavallium.warppi.Error; import it.cavallium.warppi.math.Function; -import it.cavallium.warppi.math.FunctionDynamic; import it.cavallium.warppi.math.FunctionOperator; import it.cavallium.warppi.math.FunctionSingle; -import it.cavallium.warppi.math.MathContext; -import it.cavallium.warppi.math.functions.Expression; import it.cavallium.warppi.math.functions.Multiplication; import it.cavallium.warppi.math.functions.Negative; import it.cavallium.warppi.math.functions.Number; -import it.cavallium.warppi.math.functions.Subtraction; import it.cavallium.warppi.math.rules.Rule; import it.cavallium.warppi.math.rules.RuleType; import it.unimi.dsi.fastutil.objects.ObjectArrayList; diff --git a/rules/src/main/java/rules/ExponentRule1.java b/rules/src/main/java/rules/ExponentRule1.java index f184173a..bdad2314 100644 --- a/rules/src/main/java/rules/ExponentRule1.java +++ b/rules/src/main/java/rules/ExponentRule1.java @@ -4,11 +4,7 @@ SETTINGS: (please don't move this part) PATH=ExponentRule1 */ -import it.cavallium.warppi.Error; import it.cavallium.warppi.math.Function; -import it.cavallium.warppi.math.FunctionDynamic; -import it.cavallium.warppi.math.FunctionOperator; -import it.cavallium.warppi.math.FunctionSingle; import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.math.functions.Number; import it.cavallium.warppi.math.functions.Power; diff --git a/rules/src/main/java/rules/ExponentRule15.java b/rules/src/main/java/rules/ExponentRule15.java index 4685691b..88e6296e 100644 --- a/rules/src/main/java/rules/ExponentRule15.java +++ b/rules/src/main/java/rules/ExponentRule15.java @@ -4,11 +4,8 @@ SETTINGS: (please don't move this part) PATH=ExponentRule15 */ -import it.cavallium.warppi.Error; import it.cavallium.warppi.math.Function; -import it.cavallium.warppi.math.FunctionDynamic; import it.cavallium.warppi.math.FunctionOperator; -import it.cavallium.warppi.math.FunctionSingle; import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.math.functions.Multiplication; import it.cavallium.warppi.math.functions.Number; diff --git a/rules/src/main/java/rules/ExponentRule16.java b/rules/src/main/java/rules/ExponentRule16.java index d70f9d82..ecababa6 100644 --- a/rules/src/main/java/rules/ExponentRule16.java +++ b/rules/src/main/java/rules/ExponentRule16.java @@ -4,11 +4,8 @@ SETTINGS: (please don't move this part) PATH=ExponentRule16 */ -import it.cavallium.warppi.Error; import it.cavallium.warppi.math.Function; -import it.cavallium.warppi.math.FunctionDynamic; import it.cavallium.warppi.math.FunctionOperator; -import it.cavallium.warppi.math.FunctionSingle; import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.math.functions.Multiplication; import it.cavallium.warppi.math.functions.Number; diff --git a/rules/src/main/java/rules/ExponentRule17.java b/rules/src/main/java/rules/ExponentRule17.java index 46c0cb8a..8770bc47 100644 --- a/rules/src/main/java/rules/ExponentRule17.java +++ b/rules/src/main/java/rules/ExponentRule17.java @@ -4,13 +4,9 @@ SETTINGS: (please don't move this part) PATH=ExponentRule17 */ -import it.cavallium.warppi.Error; import it.cavallium.warppi.math.Function; -import it.cavallium.warppi.math.FunctionDynamic; import it.cavallium.warppi.math.FunctionOperator; -import it.cavallium.warppi.math.FunctionSingle; import it.cavallium.warppi.math.MathContext; -import it.cavallium.warppi.math.functions.Multiplication; import it.cavallium.warppi.math.functions.Number; import it.cavallium.warppi.math.functions.Power; import it.cavallium.warppi.math.functions.Root; diff --git a/rules/src/main/java/rules/ExponentRule2.java b/rules/src/main/java/rules/ExponentRule2.java index 414b37d9..392ba636 100644 --- a/rules/src/main/java/rules/ExponentRule2.java +++ b/rules/src/main/java/rules/ExponentRule2.java @@ -4,12 +4,8 @@ SETTINGS: (please don't move this part) PATH=ExponentRule2 */ -import it.cavallium.warppi.Error; import it.cavallium.warppi.math.Function; -import it.cavallium.warppi.math.FunctionDynamic; import it.cavallium.warppi.math.FunctionOperator; -import it.cavallium.warppi.math.FunctionSingle; -import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.math.functions.Number; import it.cavallium.warppi.math.functions.Power; import it.cavallium.warppi.math.rules.Rule; diff --git a/rules/src/main/java/rules/ExponentRule3.java b/rules/src/main/java/rules/ExponentRule3.java index 0102e8b5..7bbbc96f 100644 --- a/rules/src/main/java/rules/ExponentRule3.java +++ b/rules/src/main/java/rules/ExponentRule3.java @@ -4,12 +4,8 @@ SETTINGS: (please don't move this part) PATH=ExponentRule3 */ -import it.cavallium.warppi.Error; import it.cavallium.warppi.math.Function; -import it.cavallium.warppi.math.FunctionDynamic; import it.cavallium.warppi.math.FunctionOperator; -import it.cavallium.warppi.math.FunctionSingle; -import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.math.functions.Number; import it.cavallium.warppi.math.functions.Power; import it.cavallium.warppi.math.rules.Rule; diff --git a/rules/src/main/java/rules/ExponentRule4.java b/rules/src/main/java/rules/ExponentRule4.java index c10062c8..2341ed2b 100644 --- a/rules/src/main/java/rules/ExponentRule4.java +++ b/rules/src/main/java/rules/ExponentRule4.java @@ -4,13 +4,9 @@ SETTINGS: (please don't move this part) PATH=ExponentRule4 */ -import it.cavallium.warppi.Error; import it.cavallium.warppi.math.Function; -import it.cavallium.warppi.math.FunctionDynamic; import it.cavallium.warppi.math.FunctionOperator; -import it.cavallium.warppi.math.FunctionSingle; import it.cavallium.warppi.math.MathContext; -import it.cavallium.warppi.math.functions.Expression; import it.cavallium.warppi.math.functions.Multiplication; import it.cavallium.warppi.math.functions.Number; import it.cavallium.warppi.math.functions.Power; diff --git a/rules/src/main/java/rules/ExponentRule8.java b/rules/src/main/java/rules/ExponentRule8.java index 7d2b0bbc..6af301da 100644 --- a/rules/src/main/java/rules/ExponentRule8.java +++ b/rules/src/main/java/rules/ExponentRule8.java @@ -4,11 +4,8 @@ SETTINGS: (please don't move this part) PATH=ExponentRule8 */ -import it.cavallium.warppi.Error; import it.cavallium.warppi.math.Function; -import it.cavallium.warppi.math.FunctionDynamic; import it.cavallium.warppi.math.FunctionOperator; -import it.cavallium.warppi.math.FunctionSingle; import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.math.functions.Multiplication; import it.cavallium.warppi.math.functions.Power; diff --git a/rules/src/main/java/rules/ExponentRule9.java b/rules/src/main/java/rules/ExponentRule9.java index da285326..00add140 100644 --- a/rules/src/main/java/rules/ExponentRule9.java +++ b/rules/src/main/java/rules/ExponentRule9.java @@ -4,11 +4,8 @@ SETTINGS: (please don't move this part) PATH=ExponentRule9 */ -import it.cavallium.warppi.Error; import it.cavallium.warppi.math.Function; -import it.cavallium.warppi.math.FunctionDynamic; import it.cavallium.warppi.math.FunctionOperator; -import it.cavallium.warppi.math.FunctionSingle; import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.math.functions.Multiplication; import it.cavallium.warppi.math.functions.Power; diff --git a/rules/src/main/java/rules/FractionsRule10.java b/rules/src/main/java/rules/FractionsRule10.java index c6c31e89..af19b42f 100644 --- a/rules/src/main/java/rules/FractionsRule10.java +++ b/rules/src/main/java/rules/FractionsRule10.java @@ -4,18 +4,10 @@ SETTINGS: (please don't move this part) PATH=FractionsRule10 */ -import java.math.BigDecimal; - -import it.cavallium.warppi.Error; import it.cavallium.warppi.math.Function; -import it.cavallium.warppi.math.FunctionDynamic; -import it.cavallium.warppi.math.FunctionOperator; -import it.cavallium.warppi.math.FunctionSingle; import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.math.functions.Division; import it.cavallium.warppi.math.functions.Multiplication; -import it.cavallium.warppi.math.functions.Number; -import it.cavallium.warppi.math.functions.Power; import it.cavallium.warppi.math.rules.Rule; import it.cavallium.warppi.math.rules.RuleType; import it.unimi.dsi.fastutil.objects.ObjectArrayList; diff --git a/rules/src/main/java/rules/FractionsRule11.java b/rules/src/main/java/rules/FractionsRule11.java index c2a55c0d..0ff7fcf0 100644 --- a/rules/src/main/java/rules/FractionsRule11.java +++ b/rules/src/main/java/rules/FractionsRule11.java @@ -4,12 +4,8 @@ SETTINGS: (please don't move this part) PATH=FractionsRule11 */ -import it.cavallium.warppi.Error; import it.cavallium.warppi.math.Function; -import it.cavallium.warppi.math.FunctionDynamic; import it.cavallium.warppi.math.FunctionOperator; -import it.cavallium.warppi.math.FunctionSingle; -import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.math.functions.Division; import it.cavallium.warppi.math.functions.Multiplication; import it.cavallium.warppi.math.rules.Rule; diff --git a/rules/src/main/java/rules/FractionsRule12.java b/rules/src/main/java/rules/FractionsRule12.java index d8966dc7..1b4f46ee 100644 --- a/rules/src/main/java/rules/FractionsRule12.java +++ b/rules/src/main/java/rules/FractionsRule12.java @@ -4,12 +4,8 @@ SETTINGS: (please don't move this part) PATH=FractionsRule12 */ -import it.cavallium.warppi.Error; import it.cavallium.warppi.math.Function; -import it.cavallium.warppi.math.FunctionDynamic; import it.cavallium.warppi.math.FunctionOperator; -import it.cavallium.warppi.math.FunctionSingle; -import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.math.functions.Division; import it.cavallium.warppi.math.functions.Multiplication; import it.cavallium.warppi.math.rules.Rule; diff --git a/rules/src/main/java/rules/FractionsRule14.java b/rules/src/main/java/rules/FractionsRule14.java index 58f439bb..f9110be0 100644 --- a/rules/src/main/java/rules/FractionsRule14.java +++ b/rules/src/main/java/rules/FractionsRule14.java @@ -4,12 +4,8 @@ SETTINGS: (please don't move this part) PATH=FractionsRule14 */ -import it.cavallium.warppi.Error; import it.cavallium.warppi.math.Function; -import it.cavallium.warppi.math.FunctionDynamic; import it.cavallium.warppi.math.FunctionOperator; -import it.cavallium.warppi.math.FunctionSingle; -import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.math.functions.Division; import it.cavallium.warppi.math.functions.Multiplication; import it.cavallium.warppi.math.rules.Rule; diff --git a/rules/src/main/java/rules/FractionsRule2.java b/rules/src/main/java/rules/FractionsRule2.java index ab0d2a0d..17be54df 100644 --- a/rules/src/main/java/rules/FractionsRule2.java +++ b/rules/src/main/java/rules/FractionsRule2.java @@ -4,7 +4,6 @@ SETTINGS: (please don't move this part) PATH=FractionsRule2 */ -import it.cavallium.warppi.Error; import it.cavallium.warppi.math.Function; import it.cavallium.warppi.math.functions.Division; import it.cavallium.warppi.math.functions.Number; diff --git a/rules/src/main/java/rules/FractionsRule3.java b/rules/src/main/java/rules/FractionsRule3.java index 0bcf6075..81de1799 100644 --- a/rules/src/main/java/rules/FractionsRule3.java +++ b/rules/src/main/java/rules/FractionsRule3.java @@ -4,12 +4,8 @@ SETTINGS: (please don't move this part) PATH=FractionsRule3 */ -import it.cavallium.warppi.Error; import it.cavallium.warppi.math.Function; -import it.cavallium.warppi.math.FunctionDynamic; import it.cavallium.warppi.math.FunctionOperator; -import it.cavallium.warppi.math.FunctionSingle; -import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.math.functions.Division; import it.cavallium.warppi.math.functions.Number; import it.cavallium.warppi.math.rules.Rule; diff --git a/rules/src/main/java/rules/FractionsRule4.java b/rules/src/main/java/rules/FractionsRule4.java index 3b473419..b60c76d3 100644 --- a/rules/src/main/java/rules/FractionsRule4.java +++ b/rules/src/main/java/rules/FractionsRule4.java @@ -4,12 +4,8 @@ SETTINGS: (please don't move this part) PATH=FractionsRule4 */ -import it.cavallium.warppi.Error; import it.cavallium.warppi.math.Function; -import it.cavallium.warppi.math.FunctionDynamic; import it.cavallium.warppi.math.FunctionOperator; -import it.cavallium.warppi.math.FunctionSingle; -import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.math.functions.Division; import it.cavallium.warppi.math.functions.Number; import it.cavallium.warppi.math.functions.Power; diff --git a/rules/src/main/java/rules/FractionsRule5.java b/rules/src/main/java/rules/FractionsRule5.java index ecf943a8..6fca1e67 100644 --- a/rules/src/main/java/rules/FractionsRule5.java +++ b/rules/src/main/java/rules/FractionsRule5.java @@ -6,11 +6,8 @@ SETTINGS: (please don't move this part) import java.math.BigDecimal; -import it.cavallium.warppi.Error; import it.cavallium.warppi.math.Function; -import it.cavallium.warppi.math.FunctionDynamic; import it.cavallium.warppi.math.FunctionOperator; -import it.cavallium.warppi.math.FunctionSingle; import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.math.functions.Division; import it.cavallium.warppi.math.functions.Multiplication; @@ -18,6 +15,7 @@ import it.cavallium.warppi.math.functions.Number; import it.cavallium.warppi.math.functions.Power; import it.cavallium.warppi.math.rules.Rule; import it.cavallium.warppi.math.rules.RuleType; +import it.cavallium.warppi.util.Error; import it.unimi.dsi.fastutil.objects.ObjectArrayList; /** diff --git a/rules/src/main/java/rules/FractionsRule6.java b/rules/src/main/java/rules/FractionsRule6.java index 8ffba685..f40da47c 100644 --- a/rules/src/main/java/rules/FractionsRule6.java +++ b/rules/src/main/java/rules/FractionsRule6.java @@ -4,14 +4,9 @@ SETTINGS: (please don't move this part) PATH=FractionsRule6 */ -import it.cavallium.warppi.Error; import it.cavallium.warppi.math.Function; -import it.cavallium.warppi.math.FunctionDynamic; -import it.cavallium.warppi.math.FunctionOperator; -import it.cavallium.warppi.math.FunctionSingle; import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.math.functions.Division; -import it.cavallium.warppi.math.functions.Multiplication; import it.cavallium.warppi.math.functions.Number; import it.cavallium.warppi.math.functions.Power; import it.cavallium.warppi.math.rules.Rule; diff --git a/rules/src/main/java/rules/FractionsRule7.java b/rules/src/main/java/rules/FractionsRule7.java index 7f738fa9..789c78ab 100644 --- a/rules/src/main/java/rules/FractionsRule7.java +++ b/rules/src/main/java/rules/FractionsRule7.java @@ -6,11 +6,7 @@ SETTINGS: (please don't move this part) import java.math.BigDecimal; -import it.cavallium.warppi.Error; import it.cavallium.warppi.math.Function; -import it.cavallium.warppi.math.FunctionDynamic; -import it.cavallium.warppi.math.FunctionOperator; -import it.cavallium.warppi.math.FunctionSingle; import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.math.functions.Division; import it.cavallium.warppi.math.functions.Multiplication; diff --git a/rules/src/main/java/rules/FractionsRule8.java b/rules/src/main/java/rules/FractionsRule8.java index 98469080..636e38e9 100644 --- a/rules/src/main/java/rules/FractionsRule8.java +++ b/rules/src/main/java/rules/FractionsRule8.java @@ -4,18 +4,10 @@ SETTINGS: (please don't move this part) PATH=FractionsRule8 */ -import java.math.BigDecimal; - -import it.cavallium.warppi.Error; import it.cavallium.warppi.math.Function; -import it.cavallium.warppi.math.FunctionDynamic; -import it.cavallium.warppi.math.FunctionOperator; -import it.cavallium.warppi.math.FunctionSingle; import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.math.functions.Division; import it.cavallium.warppi.math.functions.Multiplication; -import it.cavallium.warppi.math.functions.Number; -import it.cavallium.warppi.math.functions.Power; import it.cavallium.warppi.math.rules.Rule; import it.cavallium.warppi.math.rules.RuleType; import it.unimi.dsi.fastutil.objects.ObjectArrayList; diff --git a/rules/src/main/java/rules/FractionsRule9.java b/rules/src/main/java/rules/FractionsRule9.java index 8311bcb9..263d77c8 100644 --- a/rules/src/main/java/rules/FractionsRule9.java +++ b/rules/src/main/java/rules/FractionsRule9.java @@ -4,18 +4,10 @@ SETTINGS: (please don't move this part) PATH=FractionsRule9 */ -import java.math.BigDecimal; - -import it.cavallium.warppi.Error; import it.cavallium.warppi.math.Function; -import it.cavallium.warppi.math.FunctionDynamic; -import it.cavallium.warppi.math.FunctionOperator; -import it.cavallium.warppi.math.FunctionSingle; import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.math.functions.Division; import it.cavallium.warppi.math.functions.Multiplication; -import it.cavallium.warppi.math.functions.Number; -import it.cavallium.warppi.math.functions.Power; import it.cavallium.warppi.math.rules.Rule; import it.cavallium.warppi.math.rules.RuleType; import it.unimi.dsi.fastutil.objects.ObjectArrayList; diff --git a/rules/src/main/java/rules/NumberRule1.java b/rules/src/main/java/rules/NumberRule1.java index 0c1a1b44..346f20fd 100644 --- a/rules/src/main/java/rules/NumberRule1.java +++ b/rules/src/main/java/rules/NumberRule1.java @@ -4,11 +4,8 @@ SETTINGS: (please don't move this part) PATH=NumberRule1 */ -import it.cavallium.warppi.Error; import it.cavallium.warppi.math.Function; -import it.cavallium.warppi.math.FunctionDynamic; import it.cavallium.warppi.math.FunctionOperator; -import it.cavallium.warppi.math.FunctionSingle; import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.math.functions.Multiplication; import it.cavallium.warppi.math.functions.Number; diff --git a/rules/src/main/java/rules/NumberRule2.java b/rules/src/main/java/rules/NumberRule2.java index ae6d053d..357de0d9 100644 --- a/rules/src/main/java/rules/NumberRule2.java +++ b/rules/src/main/java/rules/NumberRule2.java @@ -4,11 +4,7 @@ SETTINGS: (please don't move this part) PATH=NumberRule2 */ -import it.cavallium.warppi.Error; import it.cavallium.warppi.math.Function; -import it.cavallium.warppi.math.FunctionDynamic; -import it.cavallium.warppi.math.FunctionOperator; -import it.cavallium.warppi.math.FunctionSingle; import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.math.functions.Multiplication; import it.cavallium.warppi.math.functions.Number; diff --git a/rules/src/main/java/rules/NumberRule3.java b/rules/src/main/java/rules/NumberRule3.java index b07413fc..c665e88e 100644 --- a/rules/src/main/java/rules/NumberRule3.java +++ b/rules/src/main/java/rules/NumberRule3.java @@ -4,14 +4,10 @@ SETTINGS: (please don't move this part) PATH=NumberRule3 */ -import it.cavallium.warppi.Error; import it.cavallium.warppi.math.Function; -import it.cavallium.warppi.math.FunctionDynamic; import it.cavallium.warppi.math.FunctionOperator; -import it.cavallium.warppi.math.FunctionSingle; import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.math.functions.Multiplication; -import it.cavallium.warppi.math.functions.Negative; import it.cavallium.warppi.math.functions.Number; import it.cavallium.warppi.math.functions.Subtraction; import it.cavallium.warppi.math.functions.Sum; diff --git a/rules/src/main/java/rules/NumberRule4.java b/rules/src/main/java/rules/NumberRule4.java index 96bdb5ff..e297f867 100644 --- a/rules/src/main/java/rules/NumberRule4.java +++ b/rules/src/main/java/rules/NumberRule4.java @@ -4,11 +4,8 @@ SETTINGS: (please don't move this part) PATH=NumberRule4 */ -import it.cavallium.warppi.Error; import it.cavallium.warppi.math.Function; -import it.cavallium.warppi.math.FunctionDynamic; import it.cavallium.warppi.math.FunctionOperator; -import it.cavallium.warppi.math.FunctionSingle; import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.math.functions.Subtraction; import it.cavallium.warppi.math.functions.Sum; diff --git a/rules/src/main/java/rules/NumberRule5.java b/rules/src/main/java/rules/NumberRule5.java index 1fbfc208..71ea8b5f 100644 --- a/rules/src/main/java/rules/NumberRule5.java +++ b/rules/src/main/java/rules/NumberRule5.java @@ -4,11 +4,8 @@ SETTINGS: (please don't move this part) PATH=NumberRule5 */ -import it.cavallium.warppi.Error; import it.cavallium.warppi.math.Function; -import it.cavallium.warppi.math.FunctionDynamic; import it.cavallium.warppi.math.FunctionOperator; -import it.cavallium.warppi.math.FunctionSingle; import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.math.functions.Multiplication; import it.cavallium.warppi.math.functions.Number; diff --git a/rules/src/main/java/rules/NumberRule7.java b/rules/src/main/java/rules/NumberRule7.java index ed1030ed..fbd8a00a 100644 --- a/rules/src/main/java/rules/NumberRule7.java +++ b/rules/src/main/java/rules/NumberRule7.java @@ -4,11 +4,8 @@ SETTINGS: (please don't move this part) PATH=NumberRule7 */ -import it.cavallium.warppi.Error; import it.cavallium.warppi.math.Function; -import it.cavallium.warppi.math.FunctionDynamic; import it.cavallium.warppi.math.FunctionOperator; -import it.cavallium.warppi.math.FunctionSingle; import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.math.functions.Multiplication; import it.cavallium.warppi.math.functions.Number; diff --git a/rules/src/main/java/rules/UndefinedRule1.java b/rules/src/main/java/rules/UndefinedRule1.java index 0961ab7b..49242209 100644 --- a/rules/src/main/java/rules/UndefinedRule1.java +++ b/rules/src/main/java/rules/UndefinedRule1.java @@ -4,11 +4,8 @@ SETTINGS: (please don't move this part) PATH=UndefinedRule1 */ -import it.cavallium.warppi.Error; import it.cavallium.warppi.math.Function; -import it.cavallium.warppi.math.FunctionDynamic; import it.cavallium.warppi.math.FunctionOperator; -import it.cavallium.warppi.math.FunctionSingle; import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.math.functions.Number; import it.cavallium.warppi.math.functions.Power; diff --git a/rules/src/main/java/rules/UndefinedRule2.java b/rules/src/main/java/rules/UndefinedRule2.java index 4e8d2983..d399c8d4 100644 --- a/rules/src/main/java/rules/UndefinedRule2.java +++ b/rules/src/main/java/rules/UndefinedRule2.java @@ -4,11 +4,8 @@ SETTINGS: (please don't move this part) PATH=UndefinedRule2 */ -import it.cavallium.warppi.Error; import it.cavallium.warppi.math.Function; -import it.cavallium.warppi.math.FunctionDynamic; import it.cavallium.warppi.math.FunctionOperator; -import it.cavallium.warppi.math.FunctionSingle; import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.math.functions.Division; import it.cavallium.warppi.math.functions.Number; diff --git a/rules/src/main/java/rules/VariableRule1.java b/rules/src/main/java/rules/VariableRule1.java index 5873254b..621b23e2 100644 --- a/rules/src/main/java/rules/VariableRule1.java +++ b/rules/src/main/java/rules/VariableRule1.java @@ -4,11 +4,8 @@ SETTINGS: (please don't move this part) PATH=VariableRule1 */ -import it.cavallium.warppi.Error; import it.cavallium.warppi.math.Function; -import it.cavallium.warppi.math.FunctionDynamic; import it.cavallium.warppi.math.FunctionOperator; -import it.cavallium.warppi.math.FunctionSingle; import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.math.functions.Multiplication; import it.cavallium.warppi.math.functions.Subtraction; diff --git a/rules/src/main/java/rules/VariableRule2.java b/rules/src/main/java/rules/VariableRule2.java index d0027eb9..422b1e7c 100644 --- a/rules/src/main/java/rules/VariableRule2.java +++ b/rules/src/main/java/rules/VariableRule2.java @@ -4,11 +4,8 @@ SETTINGS: (please don't move this part) PATH=VariableRule2 */ -import it.cavallium.warppi.Error; import it.cavallium.warppi.math.Function; -import it.cavallium.warppi.math.FunctionDynamic; import it.cavallium.warppi.math.FunctionOperator; -import it.cavallium.warppi.math.FunctionSingle; import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.math.functions.Multiplication; import it.cavallium.warppi.math.functions.Number; diff --git a/rules/src/main/java/rules/VariableRule3.java b/rules/src/main/java/rules/VariableRule3.java index 0626380a..723dabe1 100644 --- a/rules/src/main/java/rules/VariableRule3.java +++ b/rules/src/main/java/rules/VariableRule3.java @@ -4,11 +4,8 @@ SETTINGS: (please don't move this part) PATH=VariableRule3 */ -import it.cavallium.warppi.Error; import it.cavallium.warppi.math.Function; -import it.cavallium.warppi.math.FunctionDynamic; import it.cavallium.warppi.math.FunctionOperator; -import it.cavallium.warppi.math.FunctionSingle; import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.math.functions.Multiplication; import it.cavallium.warppi.math.functions.Number; diff --git a/rules/src/main/java/rules/functions/DivisionRule.java b/rules/src/main/java/rules/functions/DivisionRule.java index 8ab59cc3..5ef9b6d3 100644 --- a/rules/src/main/java/rules/functions/DivisionRule.java +++ b/rules/src/main/java/rules/functions/DivisionRule.java @@ -4,27 +4,20 @@ SETTINGS: (please don't move this part) PATH=functions.DivisionRule */ -import it.cavallium.warppi.Error; -import it.cavallium.warppi.ScriptUtils; -import it.cavallium.warppi.math.Function; -import it.cavallium.warppi.math.FunctionDynamic; -import it.cavallium.warppi.math.FunctionOperator; -import it.cavallium.warppi.math.FunctionSingle; -import it.cavallium.warppi.math.MathContext; -import it.cavallium.warppi.math.functions.Division; -import it.cavallium.warppi.math.functions.Multiplication; -import it.cavallium.warppi.math.functions.Number; -import it.cavallium.warppi.math.functions.Subtraction; -import it.cavallium.warppi.math.functions.Sum; -import it.cavallium.warppi.math.functions.SumSubtraction; -import it.cavallium.warppi.math.rules.Rule; -import it.cavallium.warppi.math.rules.RuleType; -import it.cavallium.warppi.math.rules.RulesManager; -import it.unimi.dsi.fastutil.objects.ObjectArrayList; - import java.math.BigInteger; import java.util.LinkedList; +import it.cavallium.warppi.math.Function; +import it.cavallium.warppi.math.FunctionOperator; +import it.cavallium.warppi.math.MathContext; +import it.cavallium.warppi.math.functions.Division; +import it.cavallium.warppi.math.functions.Number; +import it.cavallium.warppi.math.rules.Rule; +import it.cavallium.warppi.math.rules.RuleType; +import it.cavallium.warppi.util.Error; +import it.cavallium.warppi.util.ScriptUtils; +import it.unimi.dsi.fastutil.objects.ObjectArrayList; + /** * Division * a/b = c diff --git a/rules/src/main/java/rules/functions/EmptyNumberRule.java b/rules/src/main/java/rules/functions/EmptyNumberRule.java index 01b2ce4b..bee37cfd 100644 --- a/rules/src/main/java/rules/functions/EmptyNumberRule.java +++ b/rules/src/main/java/rules/functions/EmptyNumberRule.java @@ -4,15 +4,9 @@ SETTINGS: (please don't move this part) PATH=functions.EmptyNumberRule */ -import it.cavallium.warppi.ScriptUtils; import it.cavallium.warppi.math.Function; -import it.cavallium.warppi.math.FunctionDynamic; -import it.cavallium.warppi.math.FunctionOperator; -import it.cavallium.warppi.math.FunctionSingle; -import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.math.rules.Rule; import it.cavallium.warppi.math.rules.RuleType; -import it.cavallium.warppi.math.rules.RulesManager; import it.unimi.dsi.fastutil.objects.ObjectArrayList; /** diff --git a/rules/src/main/java/rules/functions/ExpressionRule.java b/rules/src/main/java/rules/functions/ExpressionRule.java index 6f52e7c8..680b8847 100644 --- a/rules/src/main/java/rules/functions/ExpressionRule.java +++ b/rules/src/main/java/rules/functions/ExpressionRule.java @@ -4,21 +4,10 @@ SETTINGS: (please don't move this part) PATH=functions.ExpressionRule */ -import it.cavallium.warppi.ScriptUtils; import it.cavallium.warppi.math.Function; -import it.cavallium.warppi.math.FunctionDynamic; -import it.cavallium.warppi.math.FunctionOperator; -import it.cavallium.warppi.math.FunctionSingle; -import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.math.functions.Expression; -import it.cavallium.warppi.math.functions.Multiplication; -import it.cavallium.warppi.math.functions.Number; -import it.cavallium.warppi.math.functions.Subtraction; -import it.cavallium.warppi.math.functions.Sum; -import it.cavallium.warppi.math.functions.SumSubtraction; import it.cavallium.warppi.math.rules.Rule; import it.cavallium.warppi.math.rules.RuleType; -import it.cavallium.warppi.math.rules.RulesManager; import it.unimi.dsi.fastutil.objects.ObjectArrayList; /** diff --git a/rules/src/main/java/rules/functions/JokeRule.java b/rules/src/main/java/rules/functions/JokeRule.java index 97220c14..2afe7a9a 100644 --- a/rules/src/main/java/rules/functions/JokeRule.java +++ b/rules/src/main/java/rules/functions/JokeRule.java @@ -4,15 +4,9 @@ SETTINGS: (please don't move this part) PATH=functions.JokeRule */ -import it.cavallium.warppi.ScriptUtils; import it.cavallium.warppi.math.Function; -import it.cavallium.warppi.math.FunctionDynamic; -import it.cavallium.warppi.math.FunctionOperator; -import it.cavallium.warppi.math.FunctionSingle; -import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.math.rules.Rule; import it.cavallium.warppi.math.rules.RuleType; -import it.cavallium.warppi.math.rules.RulesManager; import it.unimi.dsi.fastutil.objects.ObjectArrayList; /** diff --git a/rules/src/main/java/rules/functions/MultiplicationRule.java b/rules/src/main/java/rules/functions/MultiplicationRule.java index 7e262500..93df1fb7 100644 --- a/rules/src/main/java/rules/functions/MultiplicationRule.java +++ b/rules/src/main/java/rules/functions/MultiplicationRule.java @@ -4,21 +4,12 @@ SETTINGS: (please don't move this part) PATH=functions.MultiplicationRule */ -import it.cavallium.warppi.ScriptUtils; import it.cavallium.warppi.math.Function; -import it.cavallium.warppi.math.FunctionDynamic; -import it.cavallium.warppi.math.FunctionOperator; -import it.cavallium.warppi.math.FunctionSingle; import it.cavallium.warppi.math.MathContext; -import it.cavallium.warppi.math.functions.Division; import it.cavallium.warppi.math.functions.Multiplication; import it.cavallium.warppi.math.functions.Number; -import it.cavallium.warppi.math.functions.Subtraction; -import it.cavallium.warppi.math.functions.Sum; -import it.cavallium.warppi.math.functions.SumSubtraction; import it.cavallium.warppi.math.rules.Rule; import it.cavallium.warppi.math.rules.RuleType; -import it.cavallium.warppi.math.rules.RulesManager; import it.unimi.dsi.fastutil.objects.ObjectArrayList; /** diff --git a/rules/src/main/java/rules/functions/NegativeRule.java b/rules/src/main/java/rules/functions/NegativeRule.java index 5bc304f1..b9057740 100644 --- a/rules/src/main/java/rules/functions/NegativeRule.java +++ b/rules/src/main/java/rules/functions/NegativeRule.java @@ -4,25 +4,16 @@ SETTINGS: (please don't move this part) PATH=functions.NegativeRule */ -import it.cavallium.warppi.Error; -import it.cavallium.warppi.Errors; -import it.cavallium.warppi.ScriptUtils; import it.cavallium.warppi.math.Function; -import it.cavallium.warppi.math.FunctionDynamic; -import it.cavallium.warppi.math.FunctionOperator; -import it.cavallium.warppi.math.FunctionSingle; import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.math.functions.Negative; import it.cavallium.warppi.math.functions.Number; import it.cavallium.warppi.math.rules.Rule; import it.cavallium.warppi.math.rules.RuleType; -import it.cavallium.warppi.math.rules.RulesManager; +import it.cavallium.warppi.util.Error; +import it.cavallium.warppi.util.Errors; import it.unimi.dsi.fastutil.objects.ObjectArrayList; -import java.lang.NullPointerException; -import java.lang.NumberFormatException; -import java.lang.ArithmeticException; - /** * Negative * -a = b diff --git a/rules/src/main/java/rules/functions/NumberRule.java b/rules/src/main/java/rules/functions/NumberRule.java index ebd9fcea..7d407891 100644 --- a/rules/src/main/java/rules/functions/NumberRule.java +++ b/rules/src/main/java/rules/functions/NumberRule.java @@ -4,21 +4,16 @@ SETTINGS: (please don't move this part) PATH=functions.NumberRule */ -import it.cavallium.warppi.ScriptUtils; +import java.math.BigInteger; + import it.cavallium.warppi.math.Function; -import it.cavallium.warppi.math.FunctionDynamic; -import it.cavallium.warppi.math.FunctionOperator; -import it.cavallium.warppi.math.FunctionSingle; import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.math.functions.Division; import it.cavallium.warppi.math.functions.Number; import it.cavallium.warppi.math.rules.Rule; import it.cavallium.warppi.math.rules.RuleType; -import it.cavallium.warppi.math.rules.RulesManager; import it.unimi.dsi.fastutil.objects.ObjectArrayList; -import java.math.BigInteger; - /** * Number * diff --git a/rules/src/main/java/rules/functions/PowerRule.java b/rules/src/main/java/rules/functions/PowerRule.java index 67fdbe1d..cfc46004 100644 --- a/rules/src/main/java/rules/functions/PowerRule.java +++ b/rules/src/main/java/rules/functions/PowerRule.java @@ -4,22 +4,13 @@ SETTINGS: (please don't move this part) PATH=functions.PowerRule */ -import it.cavallium.warppi.ScriptUtils; import it.cavallium.warppi.math.Function; -import it.cavallium.warppi.math.FunctionDynamic; import it.cavallium.warppi.math.FunctionOperator; -import it.cavallium.warppi.math.FunctionSingle; import it.cavallium.warppi.math.MathContext; -import it.cavallium.warppi.math.functions.Division; -import it.cavallium.warppi.math.functions.Multiplication; import it.cavallium.warppi.math.functions.Number; import it.cavallium.warppi.math.functions.Power; -import it.cavallium.warppi.math.functions.Subtraction; -import it.cavallium.warppi.math.functions.Sum; -import it.cavallium.warppi.math.functions.SumSubtraction; import it.cavallium.warppi.math.rules.Rule; import it.cavallium.warppi.math.rules.RuleType; -import it.cavallium.warppi.math.rules.RulesManager; import it.unimi.dsi.fastutil.objects.ObjectArrayList; /** @@ -48,7 +39,7 @@ public class PowerRule implements Rule { - An ObjectArrayList if it did something */ @Override - public ObjectArrayList execute(Function f) throws it.cavallium.warppi.Error, InterruptedException { + public ObjectArrayList execute(Function f) throws it.cavallium.warppi.util.Error, InterruptedException { if (f instanceof Power) { ObjectArrayList result = new ObjectArrayList<>(); Function variable1 = ((FunctionOperator) f).getParameter1(); diff --git a/rules/src/main/java/rules/functions/RootRule.java b/rules/src/main/java/rules/functions/RootRule.java index e704bceb..c5efc9de 100644 --- a/rules/src/main/java/rules/functions/RootRule.java +++ b/rules/src/main/java/rules/functions/RootRule.java @@ -4,30 +4,21 @@ SETTINGS: (please don't move this part) PATH=functions.RootRule */ -import it.cavallium.warppi.Error; -import it.cavallium.warppi.Errors; -import it.cavallium.warppi.ScriptUtils; +import java.math.BigDecimal; +import java.math.BigInteger; + import it.cavallium.warppi.math.Function; -import it.cavallium.warppi.math.FunctionDynamic; import it.cavallium.warppi.math.FunctionOperator; -import it.cavallium.warppi.math.FunctionSingle; import it.cavallium.warppi.math.MathContext; -import it.cavallium.warppi.math.functions.Division; -import it.cavallium.warppi.math.functions.Multiplication; import it.cavallium.warppi.math.functions.Number; import it.cavallium.warppi.math.functions.Root; import it.cavallium.warppi.math.functions.RootSquare; -import it.cavallium.warppi.math.functions.Subtraction; -import it.cavallium.warppi.math.functions.Sum; -import it.cavallium.warppi.math.functions.SumSubtraction; import it.cavallium.warppi.math.rules.Rule; import it.cavallium.warppi.math.rules.RuleType; -import it.cavallium.warppi.math.rules.RulesManager; +import it.cavallium.warppi.util.Error; +import it.cavallium.warppi.util.Errors; import it.unimi.dsi.fastutil.objects.ObjectArrayList; -import java.math.BigDecimal; -import java.math.BigInteger; - /** * Root * a√b = c diff --git a/rules/src/main/java/rules/functions/SubtractionRule.java b/rules/src/main/java/rules/functions/SubtractionRule.java index 24349a63..674c376d 100644 --- a/rules/src/main/java/rules/functions/SubtractionRule.java +++ b/rules/src/main/java/rules/functions/SubtractionRule.java @@ -4,21 +4,13 @@ SETTINGS: (please don't move this part) PATH=functions.SubtractionRule */ -import it.cavallium.warppi.ScriptUtils; import it.cavallium.warppi.math.Function; -import it.cavallium.warppi.math.FunctionDynamic; import it.cavallium.warppi.math.FunctionOperator; -import it.cavallium.warppi.math.FunctionSingle; import it.cavallium.warppi.math.MathContext; -import it.cavallium.warppi.math.functions.Division; -import it.cavallium.warppi.math.functions.Multiplication; import it.cavallium.warppi.math.functions.Number; import it.cavallium.warppi.math.functions.Subtraction; -import it.cavallium.warppi.math.functions.Sum; -import it.cavallium.warppi.math.functions.SumSubtraction; import it.cavallium.warppi.math.rules.Rule; import it.cavallium.warppi.math.rules.RuleType; -import it.cavallium.warppi.math.rules.RulesManager; import it.unimi.dsi.fastutil.objects.ObjectArrayList; /** diff --git a/rules/src/main/java/rules/functions/SumRule.java b/rules/src/main/java/rules/functions/SumRule.java index 750a78d6..429f4136 100644 --- a/rules/src/main/java/rules/functions/SumRule.java +++ b/rules/src/main/java/rules/functions/SumRule.java @@ -4,21 +4,13 @@ SETTINGS: (please don't move this part) PATH=functions.SumRule */ -import it.cavallium.warppi.ScriptUtils; import it.cavallium.warppi.math.Function; -import it.cavallium.warppi.math.FunctionDynamic; import it.cavallium.warppi.math.FunctionOperator; -import it.cavallium.warppi.math.FunctionSingle; import it.cavallium.warppi.math.MathContext; -import it.cavallium.warppi.math.functions.Division; -import it.cavallium.warppi.math.functions.Multiplication; import it.cavallium.warppi.math.functions.Number; -import it.cavallium.warppi.math.functions.Subtraction; import it.cavallium.warppi.math.functions.Sum; -import it.cavallium.warppi.math.functions.SumSubtraction; import it.cavallium.warppi.math.rules.Rule; import it.cavallium.warppi.math.rules.RuleType; -import it.cavallium.warppi.math.rules.RulesManager; import it.unimi.dsi.fastutil.objects.ObjectArrayList; /** diff --git a/rules/src/main/java/rules/functions/SumSubtractionRule.java b/rules/src/main/java/rules/functions/SumSubtractionRule.java index 066d7fee..b206c342 100644 --- a/rules/src/main/java/rules/functions/SumSubtractionRule.java +++ b/rules/src/main/java/rules/functions/SumSubtractionRule.java @@ -4,21 +4,13 @@ SETTINGS: (please don't move this part) PATH=functions.SumSubtractionRule */ -import it.cavallium.warppi.ScriptUtils; import it.cavallium.warppi.math.Function; -import it.cavallium.warppi.math.FunctionDynamic; import it.cavallium.warppi.math.FunctionOperator; -import it.cavallium.warppi.math.FunctionSingle; import it.cavallium.warppi.math.MathContext; -import it.cavallium.warppi.math.functions.Division; -import it.cavallium.warppi.math.functions.Multiplication; import it.cavallium.warppi.math.functions.Number; -import it.cavallium.warppi.math.functions.Subtraction; -import it.cavallium.warppi.math.functions.Sum; import it.cavallium.warppi.math.functions.SumSubtraction; import it.cavallium.warppi.math.rules.Rule; import it.cavallium.warppi.math.rules.RuleType; -import it.cavallium.warppi.math.rules.RulesManager; import it.unimi.dsi.fastutil.objects.ObjectArrayList; /** diff --git a/rules/src/main/java/rules/functions/VariableRule.java b/rules/src/main/java/rules/functions/VariableRule.java index 4cdc2d42..b102fc3a 100644 --- a/rules/src/main/java/rules/functions/VariableRule.java +++ b/rules/src/main/java/rules/functions/VariableRule.java @@ -4,26 +4,18 @@ SETTINGS: (please don't move this part) PATH=functions.VariableRule */ -import it.cavallium.warppi.Error; -import it.cavallium.warppi.ScriptUtils; -import it.cavallium.warppi.Utils; +import org.nevec.rjm.BigDecimalMath; + import it.cavallium.warppi.math.Function; -import it.cavallium.warppi.math.FunctionDynamic; -import it.cavallium.warppi.math.FunctionOperator; -import it.cavallium.warppi.math.FunctionSingle; import it.cavallium.warppi.math.MathContext; import it.cavallium.warppi.math.MathematicalSymbols; -import it.cavallium.warppi.math.functions.Multiplication; import it.cavallium.warppi.math.functions.Number; -import it.cavallium.warppi.math.functions.Subtraction; -import it.cavallium.warppi.math.functions.Sum; import it.cavallium.warppi.math.functions.Variable; -import it.cavallium.warppi.math.functions.Variable.V_TYPE; import it.cavallium.warppi.math.rules.Rule; import it.cavallium.warppi.math.rules.RuleType; -import it.cavallium.warppi.math.rules.RulesManager; +import it.cavallium.warppi.util.Error; +import it.cavallium.warppi.util.Utils; import it.unimi.dsi.fastutil.objects.ObjectArrayList; -import org.nevec.rjm.BigDecimalMath; /** * Variable diff --git a/teavm/src/main/java/it/cavallium/warppi/gui/graphicengine/html/HtmlEngine.java b/teavm/src/main/java/it/cavallium/warppi/gui/graphicengine/html/HtmlEngine.java index 23c53008..f3403657 100644 --- a/teavm/src/main/java/it/cavallium/warppi/gui/graphicengine/html/HtmlEngine.java +++ b/teavm/src/main/java/it/cavallium/warppi/gui/graphicengine/html/HtmlEngine.java @@ -3,12 +3,9 @@ package it.cavallium.warppi.gui.graphicengine.html; import java.io.IOException; import org.teavm.jso.JSBody; -import org.teavm.jso.JSObject; import org.teavm.jso.browser.Window; -import org.teavm.jso.canvas.CanvasGradient; import org.teavm.jso.canvas.CanvasRenderingContext2D; import org.teavm.jso.dom.events.Event; -import org.teavm.jso.dom.events.EventListener; import org.teavm.jso.dom.events.EventTarget; import org.teavm.jso.dom.events.KeyboardEvent; import org.teavm.jso.dom.html.HTMLButtonElement; @@ -17,19 +14,14 @@ import org.teavm.jso.dom.html.HTMLDocument; import org.teavm.jso.dom.html.HTMLElement; import org.teavm.jso.dom.html.HTMLInputElement; import org.teavm.jso.dom.xml.NodeList; -import org.teavm.jso.json.JSON; import it.cavallium.warppi.Engine; -import it.cavallium.warppi.Utils; -import it.cavallium.warppi.deps.Platform.Semaphore; +import it.cavallium.warppi.Platform.Semaphore; import it.cavallium.warppi.device.Keyboard; import it.cavallium.warppi.flow.BehaviorSubject; import it.cavallium.warppi.flow.Observable; -import it.cavallium.warppi.gui.graphicengine.BinaryFont; import it.cavallium.warppi.gui.graphicengine.GraphicEngine; -import it.cavallium.warppi.gui.graphicengine.Renderer; import it.cavallium.warppi.gui.graphicengine.RenderingLoop; -import it.cavallium.warppi.gui.graphicengine.Skin; public class HtmlEngine implements GraphicEngine { diff --git a/teavm/src/main/java/it/cavallium/warppi/gui/graphicengine/html/HtmlFont.java b/teavm/src/main/java/it/cavallium/warppi/gui/graphicengine/html/HtmlFont.java index 745c8b33..c150edcc 100644 --- a/teavm/src/main/java/it/cavallium/warppi/gui/graphicengine/html/HtmlFont.java +++ b/teavm/src/main/java/it/cavallium/warppi/gui/graphicengine/html/HtmlFont.java @@ -6,10 +6,7 @@ import org.teavm.jso.browser.Window; import org.teavm.jso.canvas.CanvasRenderingContext2D; import org.teavm.jso.dom.html.HTMLCanvasElement; import org.teavm.jso.dom.html.HTMLDocument; -import org.teavm.jso.dom.html.HTMLImageElement; -import org.teavm.jso.typedarrays.Uint8ClampedArray; -import it.cavallium.warppi.StaticVars; import it.cavallium.warppi.gui.graphicengine.GraphicEngine; import it.cavallium.warppi.gui.graphicengine.common.RFTFont; diff --git a/teavm/src/main/java/it/cavallium/warppi/gui/graphicengine/html/HtmlRenderer.java b/teavm/src/main/java/it/cavallium/warppi/gui/graphicengine/html/HtmlRenderer.java index 5739fc5d..fba87b3e 100644 --- a/teavm/src/main/java/it/cavallium/warppi/gui/graphicengine/html/HtmlRenderer.java +++ b/teavm/src/main/java/it/cavallium/warppi/gui/graphicengine/html/HtmlRenderer.java @@ -1,9 +1,6 @@ package it.cavallium.warppi.gui.graphicengine.html; -import org.teavm.jso.canvas.CanvasImageSource; import org.teavm.jso.canvas.CanvasRenderingContext2D; -import org.teavm.jso.dom.html.HTMLImageElement; -import org.teavm.jso.typedarrays.Uint8ClampedArray; import it.cavallium.warppi.StaticVars; import it.cavallium.warppi.gui.graphicengine.Renderer; diff --git a/teavm/src/main/java/it/cavallium/warppi/gui/graphicengine/html/HtmlSkin.java b/teavm/src/main/java/it/cavallium/warppi/gui/graphicengine/html/HtmlSkin.java index f1bad698..9e006c3f 100644 --- a/teavm/src/main/java/it/cavallium/warppi/gui/graphicengine/html/HtmlSkin.java +++ b/teavm/src/main/java/it/cavallium/warppi/gui/graphicengine/html/HtmlSkin.java @@ -4,7 +4,6 @@ import java.io.IOException; import java.io.InputStream; import java.net.URISyntaxException; -import org.teavm.jso.JSObject; import org.teavm.jso.browser.Window; import org.teavm.jso.dom.html.HTMLDocument; import org.teavm.jso.dom.html.HTMLImageElement; diff --git a/teavm/src/main/java/it/cavallium/warppi/teavm/TeaVMConsoleUtils.java b/teavm/src/main/java/it/cavallium/warppi/teavm/TeaVMConsoleUtils.java index f4fb25c2..d2f5f0d6 100644 --- a/teavm/src/main/java/it/cavallium/warppi/teavm/TeaVMConsoleUtils.java +++ b/teavm/src/main/java/it/cavallium/warppi/teavm/TeaVMConsoleUtils.java @@ -5,7 +5,7 @@ import java.io.PrintStream; import it.cavallium.warppi.StaticVars; import it.cavallium.warppi.math.MathematicalSymbols; -public class TeaVMConsoleUtils implements it.cavallium.warppi.deps.Platform.ConsoleUtils { +public class TeaVMConsoleUtils implements it.cavallium.warppi.Platform.ConsoleUtils { private AdvancedOutputStream os; diff --git a/teavm/src/main/java/it/cavallium/warppi/teavm/TeaVMGpio.java b/teavm/src/main/java/it/cavallium/warppi/teavm/TeaVMGpio.java index d735e6fc..181e05b1 100644 --- a/teavm/src/main/java/it/cavallium/warppi/teavm/TeaVMGpio.java +++ b/teavm/src/main/java/it/cavallium/warppi/teavm/TeaVMGpio.java @@ -1,8 +1,6 @@ package it.cavallium.warppi.teavm; -import it.cavallium.warppi.ClassUtils; - -public class TeaVMGpio implements it.cavallium.warppi.deps.Platform.Gpio { +public class TeaVMGpio implements it.cavallium.warppi.Platform.Gpio { @Override public int valueOutput() { diff --git a/teavm/src/main/java/it/cavallium/warppi/teavm/TeaVMPlatform.java b/teavm/src/main/java/it/cavallium/warppi/teavm/TeaVMPlatform.java index 6bd5cfee..9dc28faa 100644 --- a/teavm/src/main/java/it/cavallium/warppi/teavm/TeaVMPlatform.java +++ b/teavm/src/main/java/it/cavallium/warppi/teavm/TeaVMPlatform.java @@ -1,21 +1,18 @@ package it.cavallium.warppi.teavm; import java.io.PrintWriter; -import java.io.StringWriter; import java.net.URL; -import java.nio.charset.Charset; import java.util.HashMap; import java.util.Map; import org.teavm.jso.browser.Window; import org.teavm.jso.dom.html.HTMLDocument; -import ar.com.hjg.pngj.PngHelperInternal; -import it.cavallium.warppi.Error; -import it.cavallium.warppi.deps.Platform; +import it.cavallium.warppi.Platform; import it.cavallium.warppi.gui.graphicengine.GraphicEngine; import it.cavallium.warppi.gui.graphicengine.html.HtmlEngine; import it.cavallium.warppi.math.rules.RulesManager; +import it.cavallium.warppi.util.Error; public class TeaVMPlatform implements Platform { @@ -25,6 +22,7 @@ public class TeaVMPlatform implements Platform { private final String on; private final Map el; private final TeaVMPngUtils pu; + private final TeaVMSettings settings; public TeaVMPlatform() { cu = new TeaVMConsoleUtils(); @@ -34,6 +32,7 @@ public class TeaVMPlatform implements Platform { on = "JavaScript"; el = new HashMap<>(); el.put("HTML5 engine", new HtmlEngine()); + settings = new TeaVMSettings(); } @Override @@ -56,6 +55,11 @@ public class TeaVMPlatform implements Platform { return pu; } + @Override + public TeaVMSettings getSettings() { + return settings; + } + @Override public void setThreadName(Thread t, String name) { } diff --git a/teavm/src/main/java/it/cavallium/warppi/teavm/TeaVMPngReader.java b/teavm/src/main/java/it/cavallium/warppi/teavm/TeaVMPngReader.java index c9d4d4aa..e197e7a1 100644 --- a/teavm/src/main/java/it/cavallium/warppi/teavm/TeaVMPngReader.java +++ b/teavm/src/main/java/it/cavallium/warppi/teavm/TeaVMPngReader.java @@ -3,7 +3,7 @@ package it.cavallium.warppi.teavm; import java.io.InputStream; import ar.com.hjg.pngj.ImageLineInt; -import it.cavallium.warppi.deps.Platform.PngUtils.PngReader; +import it.cavallium.warppi.Platform.PngUtils.PngReader; public class TeaVMPngReader implements PngReader { diff --git a/teavm/src/main/java/it/cavallium/warppi/teavm/TeaVMPngUtils.java b/teavm/src/main/java/it/cavallium/warppi/teavm/TeaVMPngUtils.java index ddc2cde0..533bc1fc 100644 --- a/teavm/src/main/java/it/cavallium/warppi/teavm/TeaVMPngUtils.java +++ b/teavm/src/main/java/it/cavallium/warppi/teavm/TeaVMPngUtils.java @@ -2,7 +2,7 @@ package it.cavallium.warppi.teavm; import java.io.InputStream; -import it.cavallium.warppi.deps.Platform.PngUtils; +import it.cavallium.warppi.Platform.PngUtils; public class TeaVMPngUtils implements PngUtils { diff --git a/teavm/src/main/java/it/cavallium/warppi/teavm/TeaVMSemaphore.java b/teavm/src/main/java/it/cavallium/warppi/teavm/TeaVMSemaphore.java index 79fef229..0806cf87 100644 --- a/teavm/src/main/java/it/cavallium/warppi/teavm/TeaVMSemaphore.java +++ b/teavm/src/main/java/it/cavallium/warppi/teavm/TeaVMSemaphore.java @@ -2,9 +2,8 @@ package it.cavallium.warppi.teavm; import java.util.LinkedList; import java.util.Queue; -import java.util.concurrent.Semaphore; -public class TeaVMSemaphore implements it.cavallium.warppi.deps.Platform.Semaphore { +public class TeaVMSemaphore implements it.cavallium.warppi.Platform.Semaphore { private Queue q; diff --git a/teavm/src/main/java/it/cavallium/warppi/teavm/TeaVMSettings.java b/teavm/src/main/java/it/cavallium/warppi/teavm/TeaVMSettings.java new file mode 100644 index 00000000..6ffbf489 --- /dev/null +++ b/teavm/src/main/java/it/cavallium/warppi/teavm/TeaVMSettings.java @@ -0,0 +1,23 @@ +package it.cavallium.warppi.teavm; + +import it.cavallium.warppi.Platform.Settings; + +public class TeaVMSettings implements Settings { + + private boolean debug; + + public TeaVMSettings() { + this.debug = true; + } + + @Override + public boolean isDebugEnabled() { + return debug; + } + + @Override + public void setDebugEnabled(boolean debug) { + this.debug = debug; + } + +} diff --git a/teavm/src/main/java/it/cavallium/warppi/teavm/TeaVMStorageUtils.java b/teavm/src/main/java/it/cavallium/warppi/teavm/TeaVMStorageUtils.java index b04b21ce..d506a8fa 100644 --- a/teavm/src/main/java/it/cavallium/warppi/teavm/TeaVMStorageUtils.java +++ b/teavm/src/main/java/it/cavallium/warppi/teavm/TeaVMStorageUtils.java @@ -19,7 +19,7 @@ import java.util.Map; import org.apache.commons.io.IOUtils; import org.teavm.jso.browser.Window; -import it.cavallium.warppi.deps.Platform.StorageUtils; +import it.cavallium.warppi.Platform.StorageUtils; public class TeaVMStorageUtils implements StorageUtils { public boolean exists(File f) { diff --git a/teavm/src/main/java/it/cavallium/warppi/teavm/TeaVMURLClassLoader.java b/teavm/src/main/java/it/cavallium/warppi/teavm/TeaVMURLClassLoader.java index 547d0367..105c7058 100644 --- a/teavm/src/main/java/it/cavallium/warppi/teavm/TeaVMURLClassLoader.java +++ b/teavm/src/main/java/it/cavallium/warppi/teavm/TeaVMURLClassLoader.java @@ -3,7 +3,7 @@ package it.cavallium.warppi.teavm; import java.io.IOException; import java.net.URL; -import it.cavallium.warppi.deps.Platform.URLClassLoader; +import it.cavallium.warppi.Platform.URLClassLoader; public class TeaVMURLClassLoader implements URLClassLoader {