summaryrefslogtreecommitdiffstats
path: root/engine
diff options
context:
space:
mode:
Diffstat (limited to 'engine')
-rw-r--r--engine/.classpath18
-rw-r--r--engine/.project28
-rw-r--r--engine/src/main/java/market/guess/engine/GuessMarketEngine.java7
-rw-r--r--engine/src/main/java/market/guess/engine/LocalGuessMarketService.java18
-rw-r--r--engine/src/main/java/market/guess/engine/TradingMechanism.java15
-rw-r--r--engine/src/main/java/market/guess/engine/mechanism/LmsrTradingMechanism.java37
-rw-r--r--engine/src/main/java/market/guess/engine/mechanism/OrderBookMechanism.java37
-rw-r--r--engine/src/main/java/market/guess/engine/provider/GuessMarketContext.java17
-rw-r--r--engine/src/test/java/market/guess/engine/AppTest.java12
9 files changed, 189 insertions, 0 deletions
diff --git a/engine/.classpath b/engine/.classpath
new file mode 100644
index 0000000..df0a2ce
--- /dev/null
+++ b/engine/.classpath
@@ -0,0 +1,18 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<classpath>
3 <classpathentry kind="src" output="bin/classes" path="src/main/java"/>
4 <classpathentry kind="src" output="bin/test-classes" path="src/test/java">
5 <attributes>
6 <attribute name="test" value="true"/>
7 </attributes>
8 </classpathentry>
9 <classpathentry kind="src" path="/guess-market-api">
10 <attributes>
11 <attribute name="module" value="true"/>
12 </attributes>
13 </classpathentry>
14 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
15 <classpathentry kind="lib" path="../lib/junit/junit-platform-console-standalone-6.1.1.jar"/>
16 <classpathentry kind="output" path="bin"/>
17</classpath>
18
diff --git a/engine/.project b/engine/.project
new file mode 100644
index 0000000..943db42
--- /dev/null
+++ b/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/engine/src/main/java/market/guess/engine/GuessMarketEngine.java b/engine/src/main/java/market/guess/engine/GuessMarketEngine.java
new file mode 100644
index 0000000..aab3cf4
--- /dev/null
+++ b/engine/src/main/java/market/guess/engine/GuessMarketEngine.java
@@ -0,0 +1,7 @@
1package market.guess.engine;
2
3import market.guess.api.LoadResultDTO;
4
5public interface GuessMarketEngine {
6 LoadResultDTO loadEvents();
7}
diff --git a/engine/src/main/java/market/guess/engine/LocalGuessMarketService.java b/engine/src/main/java/market/guess/engine/LocalGuessMarketService.java
new file mode 100644
index 0000000..5a16750
--- /dev/null
+++ b/engine/src/main/java/market/guess/engine/LocalGuessMarketService.java
@@ -0,0 +1,18 @@
1package market.guess.engine;
2
3import market.guess.api.LoadResultDTO;
4import market.guess.engine.provider.GuessMarketContext;
5
6public class LocalGuessMarketService implements GuessMarketEngine {
7 private final GuessMarketContext context;
8
9 public LocalGuessMarketService(GuessMarketContext context) {
10 super();
11 this.context = context;
12 }
13
14 @Override
15 public LoadResultDTO loadEvents() {
16 return context.LoadAsync();
17 }
18}
diff --git a/engine/src/main/java/market/guess/engine/TradingMechanism.java b/engine/src/main/java/market/guess/engine/TradingMechanism.java
new file mode 100644
index 0000000..2f97a2f
--- /dev/null
+++ b/engine/src/main/java/market/guess/engine/TradingMechanism.java
@@ -0,0 +1,15 @@
1package market.guess.engine;
2
3import java.math.BigDecimal;
4
5public interface TradingMechanism {
6 BigDecimal initialCost();
7
8 void onOpen();
9
10 void submit();
11
12 void marketState();
13
14 void settle();
15}
diff --git a/engine/src/main/java/market/guess/engine/mechanism/LmsrTradingMechanism.java b/engine/src/main/java/market/guess/engine/mechanism/LmsrTradingMechanism.java
new file mode 100644
index 0000000..99a26ab
--- /dev/null
+++ b/engine/src/main/java/market/guess/engine/mechanism/LmsrTradingMechanism.java
@@ -0,0 +1,37 @@
1package market.guess.engine.mechanism;
2
3import java.math.BigDecimal;
4import market.guess.engine.TradingMechanism;
5
6public 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
14 @Override
15 public void onOpen() {
16 // TODO Auto-generated method stub
17 throw new UnsupportedOperationException("Unimplemented method 'onOpen'");
18 }
19
20 @Override
21 public void submit() {
22 // TODO Auto-generated method stub
23 throw new UnsupportedOperationException("Unimplemented method 'submit'");
24 }
25
26 @Override
27 public void marketState() {
28 // TODO Auto-generated method stub
29 throw new UnsupportedOperationException("Unimplemented method 'marketState'");
30 }
31
32 @Override
33 public void settle() {
34 // TODO Auto-generated method stub
35 throw new UnsupportedOperationException("Unimplemented method 'settle'");
36 }
37}
diff --git a/engine/src/main/java/market/guess/engine/mechanism/OrderBookMechanism.java b/engine/src/main/java/market/guess/engine/mechanism/OrderBookMechanism.java
new file mode 100644
index 0000000..be675ba
--- /dev/null
+++ b/engine/src/main/java/market/guess/engine/mechanism/OrderBookMechanism.java
@@ -0,0 +1,37 @@
1package market.guess.engine.mechanism;
2
3import java.math.BigDecimal;
4import market.guess.engine.TradingMechanism;
5
6public 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
14 @Override
15 public void onOpen() {
16 // TODO Auto-generated method stub
17 throw new UnsupportedOperationException("Unimplemented method 'onOpen'");
18 }
19
20 @Override
21 public void submit() {
22 // TODO Auto-generated method stub
23 throw new UnsupportedOperationException("Unimplemented method 'submit'");
24 }
25
26 @Override
27 public void marketState() {
28 // TODO Auto-generated method stub
29 throw new UnsupportedOperationException("Unimplemented method 'marketState'");
30 }
31
32 @Override
33 public void settle() {
34 // TODO Auto-generated method stub
35 throw new UnsupportedOperationException("Unimplemented method 'settle'");
36 }
37}
diff --git a/engine/src/main/java/market/guess/engine/provider/GuessMarketContext.java b/engine/src/main/java/market/guess/engine/provider/GuessMarketContext.java
new file mode 100644
index 0000000..2306c93
--- /dev/null
+++ b/engine/src/main/java/market/guess/engine/provider/GuessMarketContext.java
@@ -0,0 +1,17 @@
1package market.guess.engine.provider;
2
3import market.guess.api.LoadResultDTO;
4
5public interface GuessMarketContext {
6 LoadResultDTO LoadAsync();
7
8 void SaveChangesAsync();
9
10 void GetAllEventsAsync();
11
12 void GetEventInfoByIdAsync();
13
14 void CreateEventAsync();
15
16 void UpdateEventAsync();
17}
diff --git a/engine/src/test/java/market/guess/engine/AppTest.java b/engine/src/test/java/market/guess/engine/AppTest.java
new file mode 100644
index 0000000..0638bc1
--- /dev/null
+++ b/engine/src/test/java/market/guess/engine/AppTest.java
@@ -0,0 +1,12 @@
1package market.guess.engine;
2
3import static org.junit.jupiter.api.Assertions.assertTrue;
4
5import org.junit.jupiter.api.Test;
6
7public class AppTest {
8 @Test
9 void deterministicTest() {
10 assertTrue(true);
11 }
12}