diff options
33 files changed, 309 insertions, 25 deletions
| @@ -2,6 +2,7 @@ | |||
| 2 | bin/ | 2 | bin/ |
| 3 | stage/ | 3 | stage/ |
| 4 | dist/ | 4 | dist/ |
| 5 | test-data/ | ||
| 5 | *.class | 6 | *.class |
| 6 | 7 | ||
| 7 | # Ignore OS-specific files | 8 | # Ignore OS-specific files |
| @@ -1,28 +1,8 @@ | |||
| 1 | <?xml version="1.0" encoding="UTF-8"?> | 1 | <?xml version="1.0" encoding="UTF-8"?> |
| 2 | <projectDescription> | 2 | <projectDescription> |
| 3 | <name>App</name> | 3 | <name>guess-market</name> |
| 4 | <comment></comment> | 4 | <comment></comment> |
| 5 | <projects> | 5 | <projects></projects> |
| 6 | </projects> | 6 | <buildSpec></buildSpec> |
| 7 | <buildSpec> | 7 | <natures></natures> |
| 8 | <buildCommand> | ||
| 9 | <name>org.eclipse.jdt.core.javabuilder</name> | ||
| 10 | <arguments> | ||
| 11 | </arguments> | ||
| 12 | </buildCommand> | ||
| 13 | </buildSpec> | ||
| 14 | <natures> | ||
| 15 | <nature>org.eclipse.jdt.core.javanature</nature> | ||
| 16 | </natures> | ||
| 17 | <filteredResources> | ||
| 18 | <filter> | ||
| 19 | <id>1784965956299</id> | ||
| 20 | <name></name> | ||
| 21 | <type>30</type> | ||
| 22 | <matcher> | ||
| 23 | <id>org.eclipse.core.resources.regexFilterMatcher</id> | ||
| 24 | <arguments>node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__</arguments> | ||
| 25 | </matcher> | ||
| 26 | </filter> | ||
| 27 | </filteredResources> | ||
| 28 | </projectDescription> | 8 | </projectDescription> |
diff --git a/.classpath b/modules/api/.classpath index 7f8bc25..7f8bc25 100644 --- a/.classpath +++ b/modules/api/.classpath | |||
diff --git a/modules/api/.project b/modules/api/.project new file mode 100644 index 0000000..0dc50c5 --- /dev/null +++ b/modules/api/.project | |||
| @@ -0,0 +1,28 @@ | |||
| 1 | <?xml version="1.0" encoding="UTF-8"?> | ||
| 2 | <projectDescription> | ||
| 3 | <name>guess-market-api</name> | ||
| 4 | <comment></comment> | ||
| 5 | <projects> | ||
| 6 | </projects> | ||
| 7 | <buildSpec> | ||
| 8 | <buildCommand> | ||
| 9 | <name>org.eclipse.jdt.core.javabuilder</name> | ||
| 10 | <arguments> | ||
| 11 | </arguments> | ||
| 12 | </buildCommand> | ||
| 13 | </buildSpec> | ||
| 14 | <natures> | ||
| 15 | <nature>org.eclipse.jdt.core.javanature</nature> | ||
| 16 | </natures> | ||
| 17 | <filteredResources> | ||
| 18 | <filter> | ||
| 19 | <id>1786044291084</id> | ||
| 20 | <name></name> | ||
| 21 | <type>30</type> | ||
| 22 | <matcher> | ||
| 23 | <id>org.eclipse.core.resources.regexFilterMatcher</id> | ||
| 24 | <arguments>node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__</arguments> | ||
| 25 | </matcher> | ||
| 26 | </filter> | ||
| 27 | </filteredResources> | ||
| 28 | </projectDescription> | ||
diff --git a/modules/api/src/main/java/market/guess/api/Commission.java b/modules/api/src/main/java/market/guess/api/Commission.java new file mode 100644 index 0000000..96cab8a --- /dev/null +++ b/modules/api/src/main/java/market/guess/api/Commission.java | |||
| @@ -0,0 +1,3 @@ | |||
| 1 | package market.guess.api; | ||
| 2 | |||
| 3 | public record Commission(CommissionChargeType type, int percentage) {} | ||
diff --git a/modules/api/src/main/java/market/guess/api/CommissionChargeType.java b/modules/api/src/main/java/market/guess/api/CommissionChargeType.java new file mode 100644 index 0000000..75e409b --- /dev/null +++ b/modules/api/src/main/java/market/guess/api/CommissionChargeType.java | |||
| @@ -0,0 +1,6 @@ | |||
| 1 | package market.guess.api; | ||
| 2 | |||
| 3 | public enum CommissionChargeType { | ||
| 4 | ON_CLOSE, | ||
| 5 | ON_PURCHASE | ||
| 6 | } | ||
diff --git a/modules/api/src/main/java/market/guess/api/EventDTO.java b/modules/api/src/main/java/market/guess/api/EventDTO.java new file mode 100644 index 0000000..66b2312 --- /dev/null +++ b/modules/api/src/main/java/market/guess/api/EventDTO.java | |||
| @@ -0,0 +1 @@ | |||
| package market.guess.api; | |||
diff --git a/modules/api/src/main/java/market/guess/api/EventStatus.java b/modules/api/src/main/java/market/guess/api/EventStatus.java new file mode 100644 index 0000000..acd7542 --- /dev/null +++ b/modules/api/src/main/java/market/guess/api/EventStatus.java | |||
| @@ -0,0 +1,7 @@ | |||
| 1 | package market.guess.api; | ||
| 2 | |||
| 3 | public enum EventStatus { | ||
| 4 | NOT_STARTED, | ||
| 5 | ACTIVE, | ||
| 6 | CLOSED | ||
| 7 | } | ||
diff --git a/modules/api/src/main/java/market/guess/api/LoadResultDTO.java b/modules/api/src/main/java/market/guess/api/LoadResultDTO.java new file mode 100644 index 0000000..cf3630b --- /dev/null +++ b/modules/api/src/main/java/market/guess/api/LoadResultDTO.java | |||
| @@ -0,0 +1,3 @@ | |||
| 1 | package market.guess.api; | ||
| 2 | |||
| 3 | public record LoadResultDTO() {} | ||
diff --git a/src/test/java/com/example/AppTest.java b/modules/api/src/test/java/com/example/AppTest.java index 0b08c28..0b08c28 100644 --- a/src/test/java/com/example/AppTest.java +++ b/modules/api/src/test/java/com/example/AppTest.java | |||
diff --git a/modules/engine/.classpath b/modules/engine/.classpath new file mode 100644 index 0000000..27bd88b --- /dev/null +++ b/modules/engine/.classpath | |||
| @@ -0,0 +1,22 @@ | |||
| 1 | <?xml version="1.0" encoding="UTF-8"?> | ||
| 2 | <classpath> | ||
| 3 | <!-- Defines your source folder --> | ||
| 4 | <classpathentry kind="src" output="bin/classes" path="src/main/java"> | ||
| 5 | <attributes> | ||
| 6 | <attribute name="optional" value="true"/> | ||
| 7 | </attributes> | ||
| 8 | </classpathentry> | ||
| 9 | <classpathentry kind="src" output="bin/test-classes" path="src/test/java"> | ||
| 10 | <attributes> | ||
| 11 | <attribute name="optional" value="true"/> | ||
| 12 | <attribute name="test" value="true"/> | ||
| 13 | </attributes> | ||
| 14 | <classpathentry kind="prj" path="/guess-market-api"> | ||
| 15 | </classpathentry> | ||
| 16 | </classpathentry> | ||
| 17 | <!-- Defines the standard Java System Library --> | ||
| 18 | <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> | ||
| 19 | <!-- Defines where compiled .class files go --> | ||
| 20 | <classpathentry kind="output" path="bin"/> | ||
| 21 | </classpath> | ||
| 22 | |||
diff --git a/modules/engine/.project b/modules/engine/.project new file mode 100644 index 0000000..943db42 --- /dev/null +++ b/modules/engine/.project | |||
| @@ -0,0 +1,28 @@ | |||
| 1 | <?xml version="1.0" encoding="UTF-8"?> | ||
| 2 | <projectDescription> | ||
| 3 | <name>gauss-market-engine</name> | ||
| 4 | <comment></comment> | ||
| 5 | <projects> | ||
| 6 | <project>gauss-market-api</project> | ||
| 7 | </projects> | ||
| 8 | <buildSpec> | ||
| 9 | <buildCommand> | ||
| 10 | <name>org.eclipse.jdt.core.javabuilder</name> | ||
| 11 | <arguments></arguments> | ||
| 12 | </buildCommand> | ||
| 13 | </buildSpec> | ||
| 14 | <natures> | ||
| 15 | <nature>org.eclipse.jdt.core.javanature</nature> | ||
| 16 | </natures> | ||
| 17 | <filteredResources> | ||
| 18 | <filter> | ||
| 19 | <id>1784965956299</id> | ||
| 20 | <name></name> | ||
| 21 | <type>30</type> | ||
| 22 | <matcher> | ||
| 23 | <id>org.eclipse.core.resources.regexFilterMatcher</id> | ||
| 24 | <arguments>node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__</arguments> | ||
| 25 | </matcher> | ||
| 26 | </filter> | ||
| 27 | </filteredResources> | ||
| 28 | </projectDescription> | ||
diff --git a/modules/engine/src/main/java/market/guess/engine/GuessMarketEngine.java b/modules/engine/src/main/java/market/guess/engine/GuessMarketEngine.java new file mode 100644 index 0000000..aab3cf4 --- /dev/null +++ b/modules/engine/src/main/java/market/guess/engine/GuessMarketEngine.java | |||
| @@ -0,0 +1,7 @@ | |||
| 1 | package market.guess.engine; | ||
| 2 | |||
| 3 | import market.guess.api.LoadResultDTO; | ||
| 4 | |||
| 5 | public interface GuessMarketEngine { | ||
| 6 | LoadResultDTO loadEvents(); | ||
| 7 | } | ||
diff --git a/modules/engine/src/main/java/market/guess/engine/TradingMechanism.java b/modules/engine/src/main/java/market/guess/engine/TradingMechanism.java new file mode 100644 index 0000000..5a235ed --- /dev/null +++ b/modules/engine/src/main/java/market/guess/engine/TradingMechanism.java | |||
| @@ -0,0 +1,7 @@ | |||
| 1 | package market.guess.engine; | ||
| 2 | |||
| 3 | import java.math.BigDecimal; | ||
| 4 | |||
| 5 | public interface TradingMechanism { | ||
| 6 | BigDecimal initialCost(); | ||
| 7 | } | ||
diff --git a/modules/engine/src/main/java/market/guess/engine/mechanism/LmsrTradingMechanism.java b/modules/engine/src/main/java/market/guess/engine/mechanism/LmsrTradingMechanism.java new file mode 100644 index 0000000..93826b7 --- /dev/null +++ b/modules/engine/src/main/java/market/guess/engine/mechanism/LmsrTradingMechanism.java | |||
| @@ -0,0 +1,13 @@ | |||
| 1 | package market.guess.engine.mechanism; | ||
| 2 | |||
| 3 | import java.math.BigDecimal; | ||
| 4 | import market.guess.engine.TradingMechanism; | ||
| 5 | |||
| 6 | public class LmsrTradingMechanism implements TradingMechanism { | ||
| 7 | |||
| 8 | @Override | ||
| 9 | public BigDecimal initialCost() { | ||
| 10 | // TODO Auto-generated method stub | ||
| 11 | throw new UnsupportedOperationException("Unimplemented method 'initialCost'"); | ||
| 12 | } | ||
| 13 | } | ||
diff --git a/modules/engine/src/main/java/market/guess/engine/mechanism/OrderBookMechanism.java b/modules/engine/src/main/java/market/guess/engine/mechanism/OrderBookMechanism.java new file mode 100644 index 0000000..079b204 --- /dev/null +++ b/modules/engine/src/main/java/market/guess/engine/mechanism/OrderBookMechanism.java | |||
| @@ -0,0 +1,13 @@ | |||
| 1 | package market.guess.engine.mechanism; | ||
| 2 | |||
| 3 | import java.math.BigDecimal; | ||
| 4 | import market.guess.engine.TradingMechanism; | ||
| 5 | |||
| 6 | public class OrderBookMechanism implements TradingMechanism { | ||
| 7 | |||
| 8 | @Override | ||
| 9 | public BigDecimal initialCost() { | ||
| 10 | // TODO Auto-generated method stub | ||
| 11 | throw new UnsupportedOperationException("Unimplemented method 'initialCost'"); | ||
| 12 | } | ||
| 13 | } | ||
diff --git a/modules/engine/src/test/java/com/example/AppTest.java b/modules/engine/src/test/java/com/example/AppTest.java new file mode 100644 index 0000000..0b08c28 --- /dev/null +++ b/modules/engine/src/test/java/com/example/AppTest.java | |||
| @@ -0,0 +1,3 @@ | |||
| 1 | package com.example; | ||
| 2 | |||
| 3 | public class AppTest {} | ||
diff --git a/modules/exception/.classpath b/modules/exception/.classpath new file mode 100644 index 0000000..7f8bc25 --- /dev/null +++ b/modules/exception/.classpath | |||
| @@ -0,0 +1,20 @@ | |||
| 1 | <?xml version="1.0" encoding="UTF-8"?> | ||
| 2 | <classpath> | ||
| 3 | <!-- Defines your source folder --> | ||
| 4 | <classpathentry kind="src" output="bin/classes" path="src/main/java"> | ||
| 5 | <attributes> | ||
| 6 | <attribute name="optional" value="true"/> | ||
| 7 | </attributes> | ||
| 8 | </classpathentry> | ||
| 9 | <classpathentry kind="src" output="bin/test-classes" path="src/test/java"> | ||
| 10 | <attributes> | ||
| 11 | <attribute name="optional" value="true"/> | ||
| 12 | <attribute name="test" value="true"/> | ||
| 13 | </attributes> | ||
| 14 | </classpathentry> | ||
| 15 | <!-- Defines the standard Java System Library --> | ||
| 16 | <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> | ||
| 17 | <!-- Defines where compiled .class files go --> | ||
| 18 | <classpathentry kind="output" path="bin"/> | ||
| 19 | </classpath> | ||
| 20 | |||
diff --git a/modules/exception/.project b/modules/exception/.project new file mode 100644 index 0000000..5af632c --- /dev/null +++ b/modules/exception/.project | |||
| @@ -0,0 +1,28 @@ | |||
| 1 | <?xml version="1.0" encoding="UTF-8"?> | ||
| 2 | <projectDescription> | ||
| 3 | <name>guess-market-exception</name> | ||
| 4 | <comment></comment> | ||
| 5 | <projects> | ||
| 6 | </projects> | ||
| 7 | <buildSpec> | ||
| 8 | <buildCommand> | ||
| 9 | <name>org.eclipse.jdt.core.javabuilder</name> | ||
| 10 | <arguments> | ||
| 11 | </arguments> | ||
| 12 | </buildCommand> | ||
| 13 | </buildSpec> | ||
| 14 | <natures> | ||
| 15 | <nature>org.eclipse.jdt.core.javanature</nature> | ||
| 16 | </natures> | ||
| 17 | <filteredResources> | ||
| 18 | <filter> | ||
| 19 | <id>1784965956299</id> | ||
| 20 | <name></name> | ||
| 21 | <type>30</type> | ||
| 22 | <matcher> | ||
| 23 | <id>org.eclipse.core.resources.regexFilterMatcher</id> | ||
| 24 | <arguments>node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__</arguments> | ||
| 25 | </matcher> | ||
| 26 | </filter> | ||
| 27 | </filteredResources> | ||
| 28 | </projectDescription> | ||
diff --git a/src/confing.properties b/modules/exception/src/confing.properties index e69de29..e69de29 100644 --- a/src/confing.properties +++ b/modules/exception/src/confing.properties | |||
diff --git a/modules/exception/src/main/java/market/guess/exception/GuessMarketException.java b/modules/exception/src/main/java/market/guess/exception/GuessMarketException.java new file mode 100644 index 0000000..68a3053 --- /dev/null +++ b/modules/exception/src/main/java/market/guess/exception/GuessMarketException.java | |||
| @@ -0,0 +1,7 @@ | |||
| 1 | package market.guess.exception; | ||
| 2 | |||
| 3 | public class GuessMarketException extends Exception { | ||
| 4 | public GuessMarketException(String message) { | ||
| 5 | super(message); | ||
| 6 | } | ||
| 7 | } | ||
diff --git a/modules/exception/src/test/java/com/example/AppTest.java b/modules/exception/src/test/java/com/example/AppTest.java new file mode 100644 index 0000000..0b08c28 --- /dev/null +++ b/modules/exception/src/test/java/com/example/AppTest.java | |||
| @@ -0,0 +1,3 @@ | |||
| 1 | package com.example; | ||
| 2 | |||
| 3 | public class AppTest {} | ||
diff --git a/modules/ui-console/.classpath b/modules/ui-console/.classpath new file mode 100644 index 0000000..7f8bc25 --- /dev/null +++ b/modules/ui-console/.classpath | |||
| @@ -0,0 +1,20 @@ | |||
| 1 | <?xml version="1.0" encoding="UTF-8"?> | ||
| 2 | <classpath> | ||
| 3 | <!-- Defines your source folder --> | ||
| 4 | <classpathentry kind="src" output="bin/classes" path="src/main/java"> | ||
| 5 | <attributes> | ||
| 6 | <attribute name="optional" value="true"/> | ||
| 7 | </attributes> | ||
| 8 | </classpathentry> | ||
| 9 | <classpathentry kind="src" output="bin/test-classes" path="src/test/java"> | ||
| 10 | <attributes> | ||
| 11 | <attribute name="optional" value="true"/> | ||
| 12 | <attribute name="test" value="true"/> | ||
| 13 | </attributes> | ||
| 14 | </classpathentry> | ||
| 15 | <!-- Defines the standard Java System Library --> | ||
| 16 | <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> | ||
| 17 | <!-- Defines where compiled .class files go --> | ||
| 18 | <classpathentry kind="output" path="bin"/> | ||
| 19 | </classpath> | ||
| 20 | |||
diff --git a/modules/ui-console/.project b/modules/ui-console/.project new file mode 100644 index 0000000..9e047cb --- /dev/null +++ b/modules/ui-console/.project | |||
| @@ -0,0 +1,28 @@ | |||
| 1 | <?xml version="1.0" encoding="UTF-8"?> | ||
| 2 | <projectDescription> | ||
| 3 | <name>guess-market-ui-console</name> | ||
| 4 | <comment></comment> | ||
| 5 | <projects> | ||
| 6 | </projects> | ||
| 7 | <buildSpec> | ||
| 8 | <buildCommand> | ||
| 9 | <name>org.eclipse.jdt.core.javabuilder</name> | ||
| 10 | <arguments> | ||
| 11 | </arguments> | ||
| 12 | </buildCommand> | ||
| 13 | </buildSpec> | ||
| 14 | <natures> | ||
| 15 | <nature>org.eclipse.jdt.core.javanature</nature> | ||
| 16 | </natures> | ||
| 17 | <filteredResources> | ||
| 18 | <filter> | ||
| 19 | <id>1784965956299</id> | ||
| 20 | <name></name> | ||
| 21 | <type>30</type> | ||
| 22 | <matcher> | ||
| 23 | <id>org.eclipse.core.resources.regexFilterMatcher</id> | ||
| 24 | <arguments>node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__</arguments> | ||
| 25 | </matcher> | ||
| 26 | </filter> | ||
| 27 | </filteredResources> | ||
| 28 | </projectDescription> | ||
diff --git a/src/main/java/com/example/App.java b/modules/ui-console/src/main/java/market/guess/ui/console/App.java index 5777405..06be86d 100644 --- a/src/main/java/com/example/App.java +++ b/modules/ui-console/src/main/java/market/guess/ui/console/App.java | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | package com.example; | 1 | package market.guess.ui.console; |
| 2 | 2 | ||
| 3 | public class App { | 3 | public class App { |
| 4 | public static void main() { | 4 | public static void main() { |
diff --git a/modules/ui-console/src/test/java/com/example/AppTest.java b/modules/ui-console/src/test/java/com/example/AppTest.java new file mode 100644 index 0000000..0b08c28 --- /dev/null +++ b/modules/ui-console/src/test/java/com/example/AppTest.java | |||
| @@ -0,0 +1,3 @@ | |||
| 1 | package com.example; | ||
| 2 | |||
| 3 | public class AppTest {} | ||
diff --git a/modules/ui-desktop/.classpath b/modules/ui-desktop/.classpath new file mode 100644 index 0000000..7f8bc25 --- /dev/null +++ b/modules/ui-desktop/.classpath | |||
| @@ -0,0 +1,20 @@ | |||
| 1 | <?xml version="1.0" encoding="UTF-8"?> | ||
| 2 | <classpath> | ||
| 3 | <!-- Defines your source folder --> | ||
| 4 | <classpathentry kind="src" output="bin/classes" path="src/main/java"> | ||
| 5 | <attributes> | ||
| 6 | <attribute name="optional" value="true"/> | ||
| 7 | </attributes> | ||
| 8 | </classpathentry> | ||
| 9 | <classpathentry kind="src" output="bin/test-classes" path="src/test/java"> | ||
| 10 | <attributes> | ||
| 11 | <attribute name="optional" value="true"/> | ||
| 12 | <attribute name="test" value="true"/> | ||
| 13 | </attributes> | ||
| 14 | </classpathentry> | ||
| 15 | <!-- Defines the standard Java System Library --> | ||
| 16 | <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> | ||
| 17 | <!-- Defines where compiled .class files go --> | ||
| 18 | <classpathentry kind="output" path="bin"/> | ||
| 19 | </classpath> | ||
| 20 | |||
diff --git a/modules/ui-desktop/.project b/modules/ui-desktop/.project new file mode 100644 index 0000000..e421bbf --- /dev/null +++ b/modules/ui-desktop/.project | |||
| @@ -0,0 +1,28 @@ | |||
| 1 | <?xml version="1.0" encoding="UTF-8"?> | ||
| 2 | <projectDescription> | ||
| 3 | <name>guess-market-ui-desktop</name> | ||
| 4 | <comment></comment> | ||
| 5 | <projects> | ||
| 6 | </projects> | ||
| 7 | <buildSpec> | ||
| 8 | <buildCommand> | ||
| 9 | <name>org.eclipse.jdt.core.javabuilder</name> | ||
| 10 | <arguments> | ||
| 11 | </arguments> | ||
| 12 | </buildCommand> | ||
| 13 | </buildSpec> | ||
| 14 | <natures> | ||
| 15 | <nature>org.eclipse.jdt.core.javanature</nature> | ||
| 16 | </natures> | ||
| 17 | <filteredResources> | ||
| 18 | <filter> | ||
| 19 | <id>1786044291088</id> | ||
| 20 | <name></name> | ||
| 21 | <type>30</type> | ||
| 22 | <matcher> | ||
| 23 | <id>org.eclipse.core.resources.regexFilterMatcher</id> | ||
| 24 | <arguments>node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__</arguments> | ||
| 25 | </matcher> | ||
| 26 | </filter> | ||
| 27 | </filteredResources> | ||
| 28 | </projectDescription> | ||
diff --git a/modules/ui-desktop/src/main/java/market/guess/ui/desktop/App.java b/modules/ui-desktop/src/main/java/market/guess/ui/desktop/App.java new file mode 100644 index 0000000..70a7e7d --- /dev/null +++ b/modules/ui-desktop/src/main/java/market/guess/ui/desktop/App.java | |||
| @@ -0,0 +1,5 @@ | |||
| 1 | package market.guess.ui.desktop; | ||
| 2 | |||
| 3 | public class App { | ||
| 4 | public static void main(String[] args) {} | ||
| 5 | } | ||
diff --git a/build.bat b/tools/build.bat index eb6b460..eb6b460 100644 --- a/build.bat +++ b/tools/build.bat | |||
diff --git a/build.sh b/tools/build.sh index 6fdf7e1..6fdf7e1 100755 --- a/build.sh +++ b/tools/build.sh | |||