mirror of
https://github.com/klmp200/PQT_Gestionnaire_vente_stock.git
synced 2024-11-22 08:13:20 +00:00
Initial commit : ajout des fichiers existants
This commit is contained in:
parent
33cdbba13b
commit
e1dd5d0b61
BIN
Documentation/Diagrammes/diagrammes.asta
Normal file
BIN
Documentation/Diagrammes/diagrammes.asta
Normal file
Binary file not shown.
BIN
Documentation/Interactions_serveur-clients.ods
Normal file
BIN
Documentation/Interactions_serveur-clients.ods
Normal file
Binary file not shown.
BIN
Documentation/Interface/recherche_docu/12_labventory3.jpg
Normal file
BIN
Documentation/Interface/recherche_docu/12_labventory3.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 674 KiB |
BIN
Documentation/Interface/recherche_docu/Lightstock-screen.jpg
Normal file
BIN
Documentation/Interface/recherche_docu/Lightstock-screen.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 41 KiB |
BIN
Documentation/Interface/recherche_docu/VenteTactile.png
Normal file
BIN
Documentation/Interface/recherche_docu/VenteTactile.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 137 KiB |
BIN
Documentation/Interface/recherche_docu/caisse.jpg
Normal file
BIN
Documentation/Interface/recherche_docu/caisse.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 380 KiB |
BIN
Documentation/Interface/recherche_docu/flx42.jpg
Normal file
BIN
Documentation/Interface/recherche_docu/flx42.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 103 KiB |
1
Workspace/.idea/.name
Normal file
1
Workspace/.idea/.name
Normal file
@ -0,0 +1 @@
|
|||||||
|
Main
|
20
Workspace/.idea/compiler.xml
Normal file
20
Workspace/.idea/compiler.xml
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="CompilerConfiguration">
|
||||||
|
<annotationProcessing>
|
||||||
|
<profile name="Maven default annotation processors profile" enabled="true">
|
||||||
|
<sourceOutputDir name="target/generated-sources/annotations" />
|
||||||
|
<sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
|
||||||
|
<outputRelativeToContentRoot value="true" />
|
||||||
|
<module name="client" />
|
||||||
|
<module name="core" />
|
||||||
|
</profile>
|
||||||
|
</annotationProcessing>
|
||||||
|
<bytecodeTargetLevel>
|
||||||
|
<module name="client" target="1.8" />
|
||||||
|
<module name="core" target="1.8" />
|
||||||
|
<module name="server" target="1.5" />
|
||||||
|
<module name="Workspace" target="1.8" />
|
||||||
|
</bytecodeTargetLevel>
|
||||||
|
</component>
|
||||||
|
</project>
|
18
Workspace/.idea/misc.xml
Normal file
18
Workspace/.idea/misc.xml
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="MavenProjectsManager">
|
||||||
|
<option name="originalFiles">
|
||||||
|
<list>
|
||||||
|
<option value="$PROJECT_DIR$/pom.xml" />
|
||||||
|
</list>
|
||||||
|
</option>
|
||||||
|
<option name="ignoredFiles">
|
||||||
|
<set>
|
||||||
|
<option value="$PROJECT_DIR$/server/pom.xml" />
|
||||||
|
</set>
|
||||||
|
</option>
|
||||||
|
</component>
|
||||||
|
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="1.8" project-jdk-type="JavaSDK">
|
||||||
|
<output url="file://$PROJECT_DIR$/out" />
|
||||||
|
</component>
|
||||||
|
</project>
|
10
Workspace/.idea/modules.xml
Normal file
10
Workspace/.idea/modules.xml
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="ProjectModuleManager">
|
||||||
|
<modules>
|
||||||
|
<module fileurl="file://$PROJECT_DIR$/Workspace.iml" filepath="$PROJECT_DIR$/Workspace.iml" />
|
||||||
|
<module fileurl="file://$PROJECT_DIR$/client/client.iml" filepath="$PROJECT_DIR$/client/client.iml" />
|
||||||
|
<module fileurl="file://$PROJECT_DIR$/core/core.iml" filepath="$PROJECT_DIR$/core/core.iml" />
|
||||||
|
</modules>
|
||||||
|
</component>
|
||||||
|
</project>
|
1330
Workspace/.idea/workspace.xml
Normal file
1330
Workspace/.idea/workspace.xml
Normal file
File diff suppressed because it is too large
Load Diff
15
Workspace/Workspace.iml
Normal file
15
Workspace/Workspace.iml
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
|
||||||
|
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
|
||||||
|
<output url="file://$MODULE_DIR$/target/classes" />
|
||||||
|
<output-test url="file://$MODULE_DIR$/target/test-classes" />
|
||||||
|
<content url="file://$MODULE_DIR$">
|
||||||
|
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
|
||||||
|
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
|
||||||
|
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/target" />
|
||||||
|
</content>
|
||||||
|
<orderEntry type="inheritedJdk" />
|
||||||
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
|
</component>
|
||||||
|
</module>
|
16
Workspace/client/client.iml
Normal file
16
Workspace/client/client.iml
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
|
||||||
|
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
|
||||||
|
<output url="file://$MODULE_DIR$/target/classes" />
|
||||||
|
<output-test url="file://$MODULE_DIR$/target/test-classes" />
|
||||||
|
<content url="file://$MODULE_DIR$">
|
||||||
|
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
|
||||||
|
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
|
||||||
|
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/target" />
|
||||||
|
</content>
|
||||||
|
<orderEntry type="inheritedJdk" />
|
||||||
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
|
<orderEntry type="module" module-name="core" />
|
||||||
|
</component>
|
||||||
|
</module>
|
22
Workspace/client/pom.xml
Normal file
22
Workspace/client/pom.xml
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
<parent>
|
||||||
|
<artifactId>Main</artifactId>
|
||||||
|
<groupId>com.pqt</groupId>
|
||||||
|
<version>1.0-SNAPSHOT</version>
|
||||||
|
</parent>
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
<artifactId>client</artifactId>
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.pqt</groupId>
|
||||||
|
<artifactId>core</artifactId>
|
||||||
|
<version>1.0-SNAPSHOT</version>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
|
||||||
|
|
||||||
|
</project>
|
@ -0,0 +1,45 @@
|
|||||||
|
package com.pqt.client.module.account;
|
||||||
|
|
||||||
|
import com.pqt.core.entities.user_account.Account;
|
||||||
|
import com.pqt.client.module.account.listeners.IAccountListener;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
//TODO écrire contenu méthodes
|
||||||
|
//TODO écrire javadoc
|
||||||
|
//TODO add log lines
|
||||||
|
public class AccountService {
|
||||||
|
|
||||||
|
public Account getCurrentAccount() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCurrentAccount(Account account) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isAccountLoggedIn(Account account) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void logInCurrentAccount(String password) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void logOutCurrentAccount(String password) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<Account> getRecentAccounts() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void addListener(IAccountListener listener) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void removeListener(IAccountListener listener) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,15 @@
|
|||||||
|
package com.pqt.client.module.account.listeners;
|
||||||
|
|
||||||
|
//TODO écrire contenu méthodes
|
||||||
|
//TODO écrire javadoc
|
||||||
|
public class AccountListenerAdapter implements IAccountListener {
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see com.pqt.client.module.account.listeners.IAccountListener#onAccountStatusChanged(boolean)
|
||||||
|
*/
|
||||||
|
public void onAccountStatusChanged(boolean status) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,11 @@
|
|||||||
|
package com.pqt.client.module.account.listeners;
|
||||||
|
|
||||||
|
public interface IAccountFirerer {
|
||||||
|
|
||||||
|
public void fireAccountStatusChanged(boolean status);
|
||||||
|
|
||||||
|
public abstract void addListener(IAccountListener listener);
|
||||||
|
|
||||||
|
public abstract void removeListener(IAccountListener listener);
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,9 @@
|
|||||||
|
package com.pqt.client.module.account.listeners;
|
||||||
|
|
||||||
|
import java.util.EventListener;
|
||||||
|
|
||||||
|
public interface IAccountListener extends EventListener {
|
||||||
|
|
||||||
|
public void onAccountStatusChanged(boolean status);
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,31 @@
|
|||||||
|
package com.pqt.client.module.account.listeners;
|
||||||
|
|
||||||
|
//TODO écrire contenu méthodes
|
||||||
|
//TODO écrire javadoc
|
||||||
|
public class SimpleAccountFirerer implements IAccountFirerer {
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see com.pqt.client.module.account.listeners.IAccountFirerer#fireAccountStatusChanged(boolean)
|
||||||
|
*/
|
||||||
|
public void fireAccountStatusChanged(boolean status) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see com.pqt.client.module.account.listeners.IAccountFirerer#addListener(com.pqt.client.module.account.listeners.IAccountListener)
|
||||||
|
*/
|
||||||
|
public void addListener(IAccountListener listener) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see com.pqt.client.module.account.listeners.IAccountFirerer#removeListener(com.pqt.client.module.account.listeners.IAccountListener)
|
||||||
|
*/
|
||||||
|
public void removeListener(IAccountListener listener) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,46 @@
|
|||||||
|
package com.pqt.client.module.connection;
|
||||||
|
|
||||||
|
import com.pqt.client.module.connection.listeners.IConnectionListener;
|
||||||
|
|
||||||
|
//TODO écrire contenu méthodes
|
||||||
|
//TODO écrire javadoc
|
||||||
|
//TODO add log lines?
|
||||||
|
public class ConnectionService {
|
||||||
|
|
||||||
|
public boolean isConnectedToServer() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void connectToServer(String ip_address) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void disconnectFromServer() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCurrentServerIpAddress() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void start() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void stop() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void sendText(String text) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void addListener(IConnectionListener listener) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void removeListener(IConnectionListener listener) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,37 @@
|
|||||||
|
package com.pqt.client.module.connection.listeners;
|
||||||
|
|
||||||
|
//TODO écrire contenu méthodes
|
||||||
|
//TODO écrire javadoc
|
||||||
|
public class ConnectionListenerAdapter implements IConnectionListener {
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see com.pqt.client.module.connection.listeners.IConnectionListener#onMessageReceivedEvent(String)
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public void onMessageReceivedEvent(String msg) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see com.pqt.client.module.connection.listeners.IConnectionListener#onConnectedEvent()
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public void onConnectedEvent() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see com.pqt.client.module.connection.listeners.IConnectionListener#onDisconnectedEvent()
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public void onDisconnectedEvent() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,15 @@
|
|||||||
|
package com.pqt.client.module.connection.listeners;
|
||||||
|
|
||||||
|
public interface IConnectionFirerer {
|
||||||
|
|
||||||
|
public abstract void fireMessageReceivedEvent(String msg);
|
||||||
|
|
||||||
|
public abstract void fireConnectedEvent();
|
||||||
|
|
||||||
|
public abstract void fireDisconnectedEvent();
|
||||||
|
|
||||||
|
public abstract void addListener(IConnectionListener listener);
|
||||||
|
|
||||||
|
public abstract void removeListener(IConnectionListener listener);
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,13 @@
|
|||||||
|
package com.pqt.client.module.connection.listeners;
|
||||||
|
|
||||||
|
import java.util.EventListener;
|
||||||
|
|
||||||
|
public interface IConnectionListener extends EventListener {
|
||||||
|
|
||||||
|
public abstract void onMessageReceivedEvent(String msg);
|
||||||
|
|
||||||
|
public abstract void onConnectedEvent();
|
||||||
|
|
||||||
|
public abstract void onDisconnectedEvent();
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,49 @@
|
|||||||
|
package com.pqt.client.module.connection.listeners;
|
||||||
|
|
||||||
|
//TODO écrire contenu méthodes
|
||||||
|
//TODO écrire javadoc
|
||||||
|
public class SimpleConnectionFirerer implements IConnectionFirerer {
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see com.pqt.client.module.connection.listeners.IConnectionFirerer#fireMessageReceivedEvent(String)
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public void fireMessageReceivedEvent(String msg) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see com.pqt.client.module.connection.listeners.IConnectionFirerer#fireConnectedEvent()
|
||||||
|
*/
|
||||||
|
public void fireConnectedEvent() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see com.pqt.client.module.connection.listeners.IConnectionFirerer#fireDisconnectedEvent()
|
||||||
|
*/
|
||||||
|
public void fireDisconnectedEvent() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see com.pqt.client.module.connection.listeners.IConnectionFirerer#addListener(com.pqt.client.module.connection.listeners.IConnectionListener)
|
||||||
|
*/
|
||||||
|
public void addListener(IConnectionListener listener) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see com.pqt.client.module.connection.listeners.IConnectionFirerer#removeListener(com.pqt.client.module.connection.listeners.IConnectionListener)
|
||||||
|
*/
|
||||||
|
public void removeListener(IConnectionListener listener) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,8 @@
|
|||||||
|
package com.pqt.client.module.log;
|
||||||
|
|
||||||
|
import com.pqt.core.entities.log.LogLine;
|
||||||
|
import com.pqt.core.entities.log.ILoggable;
|
||||||
|
|
||||||
|
public interface ILogLineMaker {
|
||||||
|
LogLine make(ILoggable loggable);
|
||||||
|
}
|
@ -0,0 +1,23 @@
|
|||||||
|
package com.pqt.client.module.log;
|
||||||
|
|
||||||
|
//TODO écrire contenu méthodes
|
||||||
|
//TODO écrire javadoc
|
||||||
|
public class LogLineMakerManager {
|
||||||
|
|
||||||
|
public ILogLineMaker getMaker(Class clazz) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean setMaker(Class clazz, ILogLineMaker maker) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ILogLineMaker getDefaultMaker() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean setDefaultMaker(ILogLineMaker maker) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,28 @@
|
|||||||
|
package com.pqt.client.module.log;
|
||||||
|
|
||||||
|
import com.pqt.core.entities.log.ILoggable;
|
||||||
|
import com.pqt.core.entities.log.LogLine;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
//TODO écrire contenu méthodes
|
||||||
|
//TODO écrire javadoc
|
||||||
|
public class LogService {
|
||||||
|
|
||||||
|
public void log(ILoggable loggable) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<LogLine> getAllLogs() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<LogLine> getLastLogs(int number) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<LogLine> getLastLogs(int number, int offset) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,11 @@
|
|||||||
|
package com.pqt.client.module.log.listeners;
|
||||||
|
|
||||||
|
public interface ILogFirerer {
|
||||||
|
|
||||||
|
public abstract void addListener(ILogListener listener);
|
||||||
|
|
||||||
|
public abstract void removeListener(ILogListener listener);
|
||||||
|
|
||||||
|
public abstract void fireLogEvent();
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,9 @@
|
|||||||
|
package com.pqt.client.module.log.listeners;
|
||||||
|
|
||||||
|
import java.util.EventListener;
|
||||||
|
|
||||||
|
public interface ILogListener extends EventListener {
|
||||||
|
|
||||||
|
public abstract void onLogEvent();
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,17 @@
|
|||||||
|
package com.pqt.client.module.log.listeners;
|
||||||
|
|
||||||
|
//TODO écrire contenu méthodes
|
||||||
|
//TODO écrire javadoc
|
||||||
|
public class LogListenerAdapter implements ILogListener {
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see com.pqt.client.module.log.listeners.ILogListener#onLogEvent()
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public void onLogEvent() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,33 @@
|
|||||||
|
package com.pqt.client.module.log.listeners;
|
||||||
|
|
||||||
|
//TODO écrire contenu méthodes
|
||||||
|
//TODO écrire javadoc
|
||||||
|
public class SimpleLogFirerer implements ILogFirerer {
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see com.pqt.client.module.log.listeners.ILogFirerer#addListener(com.pqt.client.module.log.listeners.ILogListener)
|
||||||
|
*/
|
||||||
|
public void addListener(ILogListener listener) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see com.pqt.client.module.log.listeners.ILogFirerer#removeListener(com.pqt.client.module.log.listeners.ILogListener)
|
||||||
|
*/
|
||||||
|
public void removeListener(ILogListener listener) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see com.pqt.client.module.log.listeners.ILogFirerer#fireLogEvent()
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public void fireLogEvent() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,35 @@
|
|||||||
|
package com.pqt.client.module.query;
|
||||||
|
|
||||||
|
import com.pqt.client.module.query.query_callback.IUpdateQueryCallback;
|
||||||
|
import com.pqt.core.entities.query.IQuery;
|
||||||
|
import com.pqt.client.module.query.query_callback.ISimpleQueryCallback;
|
||||||
|
import com.pqt.client.module.query.query_callback.IStatQueryCallback;
|
||||||
|
import com.pqt.client.module.query.query_callback.IStockQueryCallback;
|
||||||
|
|
||||||
|
//TODO écrire contenu méthodes
|
||||||
|
//TODO écrire javadoc
|
||||||
|
public class QueryExecutor {
|
||||||
|
|
||||||
|
public static final QueryExecutor INSTANCE = new QueryExecutor();
|
||||||
|
|
||||||
|
private QueryExecutor(){
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public long execute(IQuery query, ISimpleQueryCallback callback) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public long execute(IQuery query, IStatQueryCallback callback) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public long execute(IQuery query, IStockQueryCallback callback) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public long execute(IQuery query, IUpdateQueryCallback callback) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,38 @@
|
|||||||
|
package com.pqt.client.module.query;
|
||||||
|
|
||||||
|
import com.pqt.core.entities.product.ProductUpdate;
|
||||||
|
import com.pqt.core.entities.query.IQuery;
|
||||||
|
import com.pqt.core.entities.sale.Sale;
|
||||||
|
import com.pqt.core.entities.user_account.Account;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
//TODO écrire contenu méthodes
|
||||||
|
//TODO écrire javadoc
|
||||||
|
public class QueryFactory {
|
||||||
|
|
||||||
|
public static IQuery newConnectQuery(String serverAddress) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static IQuery newSaleQuery(Sale sale) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static IQuery newStockQuery() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static IQuery newStatQuery() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static IQuery newLogQuery(Account account, boolean state) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static IQuery newUpdateQuery(List<ProductUpdate> updates) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,7 @@
|
|||||||
|
package com.pqt.client.module.query.query_callback;
|
||||||
|
|
||||||
|
public interface ISimpleQueryCallback {
|
||||||
|
public void ack();
|
||||||
|
public void err(Throwable cause);
|
||||||
|
public void ref(Throwable cause);
|
||||||
|
}
|
@ -0,0 +1,10 @@
|
|||||||
|
package com.pqt.client.module.query.query_callback;
|
||||||
|
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
public interface IStatQueryCallback {
|
||||||
|
public void ack(Map<String,String> stats);
|
||||||
|
public void err(Throwable cause);
|
||||||
|
public void ref(Throwable cause);
|
||||||
|
}
|
@ -0,0 +1,11 @@
|
|||||||
|
package com.pqt.client.module.query.query_callback;
|
||||||
|
|
||||||
|
import com.pqt.core.entities.product.Product;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public interface IStockQueryCallback {
|
||||||
|
public void ack(List<Product> products);
|
||||||
|
public void err(Throwable cause);
|
||||||
|
public void ref(Throwable cause);
|
||||||
|
}
|
@ -0,0 +1,7 @@
|
|||||||
|
package com.pqt.client.module.query.query_callback;
|
||||||
|
|
||||||
|
public interface IUpdateQueryCallback {
|
||||||
|
public void ack(long id);
|
||||||
|
public void err(long id, Throwable cause);
|
||||||
|
public void ref(long id, Throwable cause);
|
||||||
|
}
|
@ -0,0 +1,28 @@
|
|||||||
|
package com.pqt.client.module.sale;
|
||||||
|
|
||||||
|
import com.pqt.core.entities.product.Product;
|
||||||
|
import com.pqt.core.entities.sale.Sale;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
//TODO écrire contenu méthodes
|
||||||
|
//TODO écrire javadoc
|
||||||
|
public class SaleBuilder {
|
||||||
|
|
||||||
|
public boolean addProduct(Product product) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean removeProduct(Product product) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Map<Product,Integer> getCurrentProductList() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Sale build() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,30 @@
|
|||||||
|
package com.pqt.client.module.sale;
|
||||||
|
|
||||||
|
import com.pqt.client.module.sale.listeners.ISaleListener;
|
||||||
|
|
||||||
|
//TODO écrire contenu méthodes
|
||||||
|
//TODO écrire javadoc
|
||||||
|
//TODO add log lines
|
||||||
|
public class SaleService {
|
||||||
|
|
||||||
|
public void getNewSaleBuilder() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void commitSale(SaleBuilder saleBuilder) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void revertSale(int saleId) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void addListener(ISaleListener listener) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void removeListener(ISaleListener listener) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,17 @@
|
|||||||
|
package com.pqt.client.module.sale.listeners;
|
||||||
|
|
||||||
|
import com.pqt.core.entities.sale.Sale;
|
||||||
|
|
||||||
|
public interface ISaleFirerer {
|
||||||
|
|
||||||
|
public abstract void fireSaleValidationSuccess(Sale sale);
|
||||||
|
|
||||||
|
public abstract void fireSaleValidationError(Sale sale, Throwable cause);
|
||||||
|
|
||||||
|
public abstract void fireSaleValidationRefused(Sale sale, Throwable cause);
|
||||||
|
|
||||||
|
public abstract void addListener(ISaleListener listener);
|
||||||
|
|
||||||
|
public abstract void removeListener(ISaleListener listener);
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,15 @@
|
|||||||
|
package com.pqt.client.module.sale.listeners;
|
||||||
|
|
||||||
|
import com.pqt.core.entities.sale.Sale;
|
||||||
|
|
||||||
|
import java.util.EventListener;
|
||||||
|
|
||||||
|
public interface ISaleListener extends EventListener {
|
||||||
|
|
||||||
|
public abstract void onSaleValidationSuccess(Sale sale);
|
||||||
|
|
||||||
|
public abstract void onSaleValidationError(Sale sale, Throwable cause);
|
||||||
|
|
||||||
|
public abstract void onSaleValidationRefused(Sale sale, Throwable cause);
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,35 @@
|
|||||||
|
package com.pqt.client.module.sale.listeners;
|
||||||
|
|
||||||
|
import com.pqt.core.entities.sale.Sale;
|
||||||
|
|
||||||
|
//TODO écrire contenu méthodes
|
||||||
|
//TODO écrire javadoc
|
||||||
|
public class SaleListenerAdapter implements ISaleListener {
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see com.pqt.client.module.sale.listeners.ISaleListener#onSaleValidationSuccess(com.pqt.core.entities.sale.Sale)
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public void onSaleValidationSuccess(Sale sale) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see com.pqt.client.module.sale.listeners.ISaleListener#onSaleValidationError(com.pqt.core.entities.sale.Sale, Throwable)
|
||||||
|
*/
|
||||||
|
public void onSaleValidationError(Sale sale, Throwable cause) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see com.pqt.client.module.sale.listeners.ISaleListener#onSaleValidationRefused(com.pqt.core.entities.sale.Sale, Throwable)
|
||||||
|
*/
|
||||||
|
public void onSaleValidationRefused(Sale sale, Throwable cause) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,49 @@
|
|||||||
|
package com.pqt.client.module.sale.listeners;
|
||||||
|
|
||||||
|
import com.pqt.core.entities.sale.Sale;
|
||||||
|
|
||||||
|
//TODO écrire contenu méthodes
|
||||||
|
//TODO écrire javadoc
|
||||||
|
public class SimpleSaleFirerer implements ISaleFirerer {
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see com.pqt.client.module.sale.listeners.ISaleFirerer#fireSaleValidationSuccess(com.pqt.core.entities.sale.Sale)
|
||||||
|
*/
|
||||||
|
public void fireSaleValidationSuccess(Sale sale) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see com.pqt.client.module.sale.listeners.ISaleFirerer#fireSaleValidationError(com.pqt.core.entities.sale.Sale, Throwable)
|
||||||
|
*/
|
||||||
|
public void fireSaleValidationError(Sale sale, Throwable cause) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see com.pqt.client.module.sale.listeners.ISaleFirerer#fireSaleValidationRefused(com.pqt.core.entities.sale.Sale, Throwable)
|
||||||
|
*/
|
||||||
|
public void fireSaleValidationRefused(Sale sale, Throwable cause) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see com.pqt.client.module.sale.listeners.ISaleFirerer#addListener(com.pqt.client.module.sale.listeners.ISaleListener)
|
||||||
|
*/
|
||||||
|
public void addListener(ISaleListener listener) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see com.pqt.client.module.sale.listeners.ISaleFirerer#removeListener(com.pqt.client.module.sale.listeners.ISaleListener)
|
||||||
|
*/
|
||||||
|
public void removeListener(ISaleListener listener) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,68 @@
|
|||||||
|
package com.pqt.client.module.stat;
|
||||||
|
|
||||||
|
import com.pqt.client.module.query.QueryExecutor;
|
||||||
|
import com.pqt.client.module.query.QueryFactory;
|
||||||
|
import com.pqt.client.module.query.query_callback.IStatQueryCallback;
|
||||||
|
import com.pqt.client.module.stat.listeners.IStatFirerer;
|
||||||
|
import com.pqt.client.module.stat.listeners.IStatListener;
|
||||||
|
import com.pqt.client.module.stat.listeners.SimpleStatFirerer;
|
||||||
|
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
|
//TODO écrire javadoc
|
||||||
|
public class StatDao {
|
||||||
|
|
||||||
|
private Date lastRefreshTimestamp;
|
||||||
|
private Map<String, String> stats;
|
||||||
|
private IStatFirerer eventFirerer;
|
||||||
|
|
||||||
|
public StatDao() {
|
||||||
|
eventFirerer = new SimpleStatFirerer();
|
||||||
|
stats = new HashMap<>();
|
||||||
|
lastRefreshTimestamp = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public synchronized Map<String, String> getStats() {
|
||||||
|
return new HashMap<>(stats);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void refreshStats() {
|
||||||
|
QueryExecutor.INSTANCE.execute(QueryFactory.newStockQuery(), new IStatQueryCallback() {
|
||||||
|
@Override
|
||||||
|
public void ack(Map<String, String> stats) {
|
||||||
|
replaceStats(stats);
|
||||||
|
eventFirerer.fireGetStatSuccess();
|
||||||
|
//TODO add log line
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void err(Throwable cause) {
|
||||||
|
eventFirerer.fireGetStatError(cause);
|
||||||
|
//TODO add log line
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void ref(Throwable cause) {
|
||||||
|
eventFirerer.fireGetStatRefused(cause);
|
||||||
|
//TODO add log line
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public Date getLastRefreshTimestamp(){
|
||||||
|
return lastRefreshTimestamp;
|
||||||
|
}
|
||||||
|
|
||||||
|
private synchronized void replaceStats(Map<String, String> stats) {
|
||||||
|
this.stats = new HashMap<>(stats);
|
||||||
|
this.lastRefreshTimestamp = new Date();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void removeListener(IStatListener listener) {
|
||||||
|
eventFirerer.removeListener(listener);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void addListener(IStatListener listener) {
|
||||||
|
eventFirerer.addListener(listener);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,33 @@
|
|||||||
|
package com.pqt.client.module.stat;
|
||||||
|
|
||||||
|
import com.pqt.client.module.stat.listeners.IStatListener;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
//TODO écrire javadoc
|
||||||
|
//TODO add log lines
|
||||||
|
public class StatService {
|
||||||
|
|
||||||
|
private StatDao dao;
|
||||||
|
|
||||||
|
public StatService() {
|
||||||
|
dao = new StatDao();
|
||||||
|
}
|
||||||
|
|
||||||
|
public Map<String,String> getStats() {
|
||||||
|
return dao.getStats();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void refreshStats() {
|
||||||
|
dao.refreshStats();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void addListener(IStatListener listener) {
|
||||||
|
dao.addListener(listener);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void removeListener(IStatListener listener) {
|
||||||
|
dao.removeListener(listener);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,16 @@
|
|||||||
|
package com.pqt.client.module.stat.listeners;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
public interface IStatFirerer {
|
||||||
|
|
||||||
|
public abstract void fireGetStatSuccess();
|
||||||
|
|
||||||
|
public abstract void fireGetStatError(Throwable cause);
|
||||||
|
|
||||||
|
public abstract void fireGetStatRefused(Throwable cause);
|
||||||
|
|
||||||
|
void removeListener(IStatListener listener);
|
||||||
|
|
||||||
|
void addListener(IStatListener listener);
|
||||||
|
}
|
@ -0,0 +1,14 @@
|
|||||||
|
package com.pqt.client.module.stat.listeners;
|
||||||
|
|
||||||
|
import java.util.EventListener;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
public interface IStatListener extends EventListener {
|
||||||
|
|
||||||
|
public abstract void onGetStatSuccess();
|
||||||
|
|
||||||
|
public abstract void onGetStatError(Throwable cause);
|
||||||
|
|
||||||
|
public abstract void onGetStatRefused(Throwable cause);
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,53 @@
|
|||||||
|
package com.pqt.client.module.stat.listeners;
|
||||||
|
|
||||||
|
import javax.swing.event.EventListenerList;
|
||||||
|
|
||||||
|
//TODO écrire javadoc
|
||||||
|
public class SimpleStatFirerer implements IStatFirerer {
|
||||||
|
|
||||||
|
private EventListenerList listeners;
|
||||||
|
|
||||||
|
public SimpleStatFirerer() {
|
||||||
|
listeners = new EventListenerList();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see com.pqt.client.module.stat.listeners.IStatFirerer#fireGetStatSuccess()
|
||||||
|
*/
|
||||||
|
public void fireGetStatSuccess() {
|
||||||
|
for(IStatListener l : listeners.getListeners(IStatListener.class)){
|
||||||
|
l.onGetStatSuccess();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see com.pqt.client.module.stat.listeners.IStatFirerer#fireGetStatError(Throwable)
|
||||||
|
*/
|
||||||
|
public void fireGetStatError(Throwable cause) {
|
||||||
|
for(IStatListener l : listeners.getListeners(IStatListener.class)){
|
||||||
|
l.onGetStatError(cause);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see com.pqt.client.module.stat.listeners.IStatFirerer#fireGetStatRefused(Throwable)
|
||||||
|
*/
|
||||||
|
public void fireGetStatRefused(Throwable cause) {
|
||||||
|
for(IStatListener l : listeners.getListeners(IStatListener.class)){
|
||||||
|
l.onGetStatRefused(cause);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void removeListener(IStatListener listener) {
|
||||||
|
listeners.remove(IStatListener.class, listener);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void addListener(IStatListener listener) {
|
||||||
|
listeners.add(IStatListener.class, listener);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,29 @@
|
|||||||
|
package com.pqt.client.module.stat.listeners;
|
||||||
|
|
||||||
|
public class StatListenerAdapter implements IStatListener {
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see com.pqt.client.module.stat.listeners.IStatListener#onGetStatSuccess()
|
||||||
|
*/
|
||||||
|
public void onGetStatSuccess() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see com.pqt.client.module.stat.listeners.IStatListener#onGetStatError(Throwable)
|
||||||
|
*/
|
||||||
|
public void onGetStatError(Throwable cause) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see com.pqt.client.module.stat.listeners.IStatListener#onGetStatRefused(Throwable)
|
||||||
|
*/
|
||||||
|
public void onGetStatRefused(Throwable cause) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,16 @@
|
|||||||
|
package com.pqt.client.module.stock.Listeners;
|
||||||
|
|
||||||
|
public interface IStockFirerer {
|
||||||
|
void fireGetProductListSuccessEvent();
|
||||||
|
void fireGetProductListErrorEvent(Throwable cause);
|
||||||
|
void fireGetProductListRefusedEvent(Throwable cause);
|
||||||
|
void fireProductListChangedEvent();
|
||||||
|
|
||||||
|
void fireProductListUpdateSuccessEvent(long id);
|
||||||
|
void fireProductListUpdateErrorEvent(long id, Throwable cause);
|
||||||
|
void fireProductListUpdateRefusedEvent(long id, Throwable cause);
|
||||||
|
|
||||||
|
void addListener(IStockListener listener);
|
||||||
|
void removeListener(IStockListener listener);
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,16 @@
|
|||||||
|
package com.pqt.client.module.stock.Listeners;
|
||||||
|
|
||||||
|
import java.util.EventListener;
|
||||||
|
|
||||||
|
public interface IStockListener extends EventListener {
|
||||||
|
|
||||||
|
void onGetProductListSuccessEvent();
|
||||||
|
void onGetProductListErrorEvent(Throwable cause);
|
||||||
|
void onGetProductListRefusedEvent(Throwable cause);
|
||||||
|
|
||||||
|
void onProductListUpdateSuccessEvent(long id);
|
||||||
|
void onProductListUpdateErrorEvent(long id, Throwable cause);
|
||||||
|
void onProductListUpdateRefusedEvent(long id, Throwable cause);
|
||||||
|
|
||||||
|
void onProductListChangedEvent();
|
||||||
|
}
|
@ -0,0 +1,73 @@
|
|||||||
|
package com.pqt.client.module.stock.Listeners;
|
||||||
|
|
||||||
|
|
||||||
|
import javax.swing.event.EventListenerList;
|
||||||
|
|
||||||
|
//TODO écrire javadoc
|
||||||
|
public class SimpleStockFirerer implements IStockFirerer {
|
||||||
|
|
||||||
|
private EventListenerList listeners;
|
||||||
|
|
||||||
|
public SimpleStockFirerer() {
|
||||||
|
listeners = new EventListenerList();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void fireGetProductListSuccessEvent() {
|
||||||
|
for(IStockListener l : listeners.getListeners(IStockListener.class)){
|
||||||
|
l.onGetProductListSuccessEvent();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void fireGetProductListErrorEvent(Throwable cause) {
|
||||||
|
for(IStockListener l : listeners.getListeners(IStockListener.class)){
|
||||||
|
l.onGetProductListErrorEvent(cause);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void fireGetProductListRefusedEvent(Throwable cause) {
|
||||||
|
for(IStockListener l : listeners.getListeners(IStockListener.class)){
|
||||||
|
l.onGetProductListRefusedEvent(cause);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void fireProductListChangedEvent() {
|
||||||
|
for(IStockListener l : listeners.getListeners(IStockListener.class)){
|
||||||
|
l.onProductListChangedEvent();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void fireProductListUpdateSuccessEvent(long id) {
|
||||||
|
for(IStockListener l : listeners.getListeners(IStockListener.class)){
|
||||||
|
l.onProductListUpdateSuccessEvent(id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void fireProductListUpdateErrorEvent(long id, Throwable cause) {
|
||||||
|
for(IStockListener l : listeners.getListeners(IStockListener.class)){
|
||||||
|
l.onProductListUpdateErrorEvent(id, cause);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void fireProductListUpdateRefusedEvent(long id, Throwable cause) {
|
||||||
|
for(IStockListener l : listeners.getListeners(IStockListener.class)){
|
||||||
|
l.onProductListUpdateRefusedEvent(id, cause);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void addListener(IStockListener listener) {
|
||||||
|
listeners.add(IStockListener.class, listener);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void removeListener(IStockListener listener) {
|
||||||
|
listeners.remove(IStockListener.class, listener);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,39 @@
|
|||||||
|
package com.pqt.client.module.stock.Listeners;
|
||||||
|
|
||||||
|
public class StockListenerAdapter implements IStockListener {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onGetProductListSuccessEvent() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onGetProductListErrorEvent(Throwable cause) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onGetProductListRefusedEvent(Throwable cause) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onProductListUpdateSuccessEvent(long id) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onProductListUpdateErrorEvent(long id, Throwable cause) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onProductListUpdateRefusedEvent(long id, Throwable cause) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onProductListChangedEvent() {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,118 @@
|
|||||||
|
package com.pqt.client.module.stock;
|
||||||
|
|
||||||
|
import com.pqt.client.module.query.QueryExecutor;
|
||||||
|
import com.pqt.client.module.query.QueryFactory;
|
||||||
|
import com.pqt.client.module.query.query_callback.IStockQueryCallback;
|
||||||
|
import com.pqt.client.module.query.query_callback.IUpdateQueryCallback;
|
||||||
|
import com.pqt.client.module.stock.Listeners.IStockFirerer;
|
||||||
|
import com.pqt.client.module.stock.Listeners.IStockListener;
|
||||||
|
import com.pqt.client.module.stock.Listeners.SimpleStockFirerer;
|
||||||
|
import com.pqt.core.entities.product.Product;
|
||||||
|
import com.pqt.core.entities.product.ProductUpdate;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
|
//TODO écrire javadoc
|
||||||
|
public class StockDao {
|
||||||
|
|
||||||
|
private IStockFirerer eventFirerer;
|
||||||
|
private Date lastRefreshTimestamp;
|
||||||
|
private List<Product> products;
|
||||||
|
|
||||||
|
public StockDao() {
|
||||||
|
eventFirerer = new SimpleStockFirerer();
|
||||||
|
products = new ArrayList<>();
|
||||||
|
lastRefreshTimestamp = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public synchronized List<Product> getProducts() {
|
||||||
|
return new ArrayList<>(products);
|
||||||
|
}
|
||||||
|
|
||||||
|
public synchronized Product getProduct(final int id) {
|
||||||
|
Optional<Product> match = products.stream().filter((product->product.getId()==id)).findFirst();
|
||||||
|
if(match.isPresent())
|
||||||
|
return match.get();
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void refreshProductList() {
|
||||||
|
QueryExecutor.INSTANCE.execute(QueryFactory.newStockQuery(), new IStockQueryCallback() {
|
||||||
|
@Override
|
||||||
|
public void ack(List<Product> products) {
|
||||||
|
replaceProductList(products);
|
||||||
|
eventFirerer.fireGetProductListSuccessEvent();
|
||||||
|
//TODO add log line
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void err(Throwable cause) {
|
||||||
|
//TODO add log line
|
||||||
|
eventFirerer.fireGetProductListErrorEvent(cause);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void ref(Throwable cause) {
|
||||||
|
//TODO add log line
|
||||||
|
eventFirerer.fireGetProductListRefusedEvent(cause);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public Date getLastRefreshTimestamp(){
|
||||||
|
return lastRefreshTimestamp;
|
||||||
|
}
|
||||||
|
|
||||||
|
private synchronized void replaceProductList(List<Product> products){
|
||||||
|
this.products.clear();
|
||||||
|
this.products.addAll(products);
|
||||||
|
this.lastRefreshTimestamp = new Date();
|
||||||
|
eventFirerer.fireProductListChangedEvent();
|
||||||
|
}
|
||||||
|
|
||||||
|
public long commitUpdate(List<ProductUpdate> updates){
|
||||||
|
return QueryExecutor.INSTANCE.execute(QueryFactory.newUpdateQuery(updates),new IUpdateQueryCallback(){
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void ack(long id) {
|
||||||
|
//TODO add log line
|
||||||
|
refreshProductList();
|
||||||
|
eventFirerer.fireProductListUpdateSuccessEvent(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void err(long id, Throwable cause) {
|
||||||
|
//TODO add log line
|
||||||
|
eventFirerer.fireProductListUpdateErrorEvent(id, cause);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void ref(long id, Throwable cause) {
|
||||||
|
//TODO add log line
|
||||||
|
eventFirerer.fireProductListUpdateRefusedEvent(id, cause);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Ajoute un listener à la liste de diffusion des événements pouvant être levé par le service.
|
||||||
|
* @param listener
|
||||||
|
* @see {@link IStockListener}
|
||||||
|
*/
|
||||||
|
public void addListener(IStockListener listener) {
|
||||||
|
eventFirerer.addListener(listener);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Retire un listener d'événement donné de la liste de diffusion des événements.
|
||||||
|
* @param listener
|
||||||
|
* @see {@link IStockListener}
|
||||||
|
*/
|
||||||
|
public void removeListener(IStockListener listener) {
|
||||||
|
eventFirerer.removeListener(listener);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,109 @@
|
|||||||
|
package com.pqt.client.module.stock;
|
||||||
|
|
||||||
|
import com.pqt.client.module.query.QueryExecutor;
|
||||||
|
import com.pqt.client.module.query.QueryFactory;
|
||||||
|
import com.pqt.client.module.query.query_callback.IUpdateQueryCallback;
|
||||||
|
import com.pqt.client.module.stock.Listeners.IStockFirerer;
|
||||||
|
import com.pqt.client.module.stock.Listeners.SimpleStockFirerer;
|
||||||
|
import com.pqt.core.entities.product.Product;
|
||||||
|
import com.pqt.client.module.stock.Listeners.IStockListener;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
//TODO Add log lines
|
||||||
|
public class StockService {
|
||||||
|
|
||||||
|
public static final StockService INSTANCE = new StockService();
|
||||||
|
|
||||||
|
private StockDao dao;
|
||||||
|
|
||||||
|
private StockService() {
|
||||||
|
dao = new StockDao();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Accesseur renvoyant un objet {@link Date} correspondant à la dernière heure où les stocks ont été mis à jour
|
||||||
|
* <p/>
|
||||||
|
* @return {@link Date} représentant l'instant de la dernière mise à jour des stocks.
|
||||||
|
*/
|
||||||
|
public Date getLastRefreshTimestamp(){
|
||||||
|
return dao.getLastRefreshTimestamp();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Démarre la procédure de mise à jour des stocks.
|
||||||
|
* <p/>
|
||||||
|
* L'exécution de cette méthode ne constitue pas la mise à jour, elle ne fait que démarrer la procédure.
|
||||||
|
* Les événements liées à la mise à jour du stock peuvent être écoutés via la classe de listener {@link IStockListener}.
|
||||||
|
*/
|
||||||
|
public void refreshProductList() {
|
||||||
|
dao.refreshProductList();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Accesseur de la liste des produits actuellement en vente.
|
||||||
|
* <p/>
|
||||||
|
* La liste peut être obsolète, voir {@link #getLastRefreshTimestamp()} pour la date du dernier refresh et {@link #refreshProductList()} pour la mettre à jour.
|
||||||
|
*
|
||||||
|
* @return Liste des produits en vente.
|
||||||
|
*/
|
||||||
|
public List<Product> getProducts() {
|
||||||
|
return dao.getProducts();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Accesseur récupérant un unique produit présent dans les stocks en se basant sur son id.
|
||||||
|
*
|
||||||
|
* @param id identifiant du produit voulu
|
||||||
|
* @return produit voulu s'il est présent dans le stock, ou null si l'identifiant {@code id} ne correspond à aucun produit présent dans le stock.
|
||||||
|
*/
|
||||||
|
public Product getProduct(int id) {
|
||||||
|
return dao.getProduct(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Renvoie un nouveau builder d'update de stock.
|
||||||
|
* <p/>
|
||||||
|
* Un update de stock correspond à un ticket de demande de modification du stock, composé d'ajouts, de suppressions et de modifications de produits.
|
||||||
|
* Un objet {@link UpdateBuilder} permet de générer facilement une update. Pour valider l'update, voir {@link #commitUpdate(UpdateBuilder)}.
|
||||||
|
*
|
||||||
|
* @return nouvelle instance de la classe {@link UpdateBuilder}.
|
||||||
|
*/
|
||||||
|
public UpdateBuilder getNewUpdateBuilder() {
|
||||||
|
return new UpdateBuilder();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Propose une modification de stock et lance la procédure de validation. Retourne l'identifiant de la modification, qui sera utilisé dans les notifications pour discriminer les événements.
|
||||||
|
* <p/>
|
||||||
|
* L'exécution de cette méthode ne constitue pas la modification, elle ne fait que démarrer la procédure.
|
||||||
|
* Les événements liées à la valiation des updates du stock peuvent être écoutés via la classe de listener {@link IStockListener}.
|
||||||
|
* <p/>
|
||||||
|
* Une procédure de mise à jour du stock sera automatiquement lancée si la modification est validée (comme si la méthode {@link #refreshProductList()} avait été appelée).
|
||||||
|
* @param updateBuilder
|
||||||
|
* @return l'identifiant de l'update soumise.
|
||||||
|
*/
|
||||||
|
public long commitUpdate(UpdateBuilder updateBuilder) {
|
||||||
|
return dao.commitUpdate(updateBuilder.build());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Ajoute un listener à la liste de diffusion des événements pouvant être levé par le service.
|
||||||
|
* @param listener
|
||||||
|
* @see {@link IStockListener}
|
||||||
|
*/
|
||||||
|
public void addListener(IStockListener listener) {
|
||||||
|
dao.addListener(listener);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Retire un listener d'événement donné de la liste de diffusion des événements.
|
||||||
|
* @param listener
|
||||||
|
* @see {@link IStockListener}
|
||||||
|
*/
|
||||||
|
public void removeListener(IStockListener listener) {
|
||||||
|
dao.removeListener(listener);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,50 @@
|
|||||||
|
package com.pqt.client.module.stock;
|
||||||
|
|
||||||
|
import com.pqt.core.entities.product.Product;
|
||||||
|
import com.pqt.core.entities.product.ProductUpdate;
|
||||||
|
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
|
public class UpdateBuilder {
|
||||||
|
|
||||||
|
private Set<Product> toAdd, toRemove;
|
||||||
|
private Map<Product, Product> toModify;
|
||||||
|
|
||||||
|
public UpdateBuilder() {
|
||||||
|
toAdd = new HashSet<>();
|
||||||
|
toRemove = new HashSet<>();
|
||||||
|
toModify = new HashMap<>();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void addProduct(Product product) {
|
||||||
|
if(!toAdd.contains(product)){
|
||||||
|
toAdd.add(product);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void removeProduct(Product product) {
|
||||||
|
if(toRemove.contains(product)){
|
||||||
|
toRemove.remove(product);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void modifyProduct(Product oldVersion, Product newVersion) {
|
||||||
|
toModify.put(oldVersion, newVersion);
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<ProductUpdate> build() {
|
||||||
|
List<ProductUpdate> reply = new ArrayList<>();
|
||||||
|
for(Product product : toAdd){
|
||||||
|
reply.add(new ProductUpdate(null, product));
|
||||||
|
}
|
||||||
|
for(Product product : toRemove){
|
||||||
|
reply.add(new ProductUpdate(product, null));
|
||||||
|
}
|
||||||
|
for(Product product : toModify.keySet()){
|
||||||
|
reply.add(new ProductUpdate(product, toModify.get(product)));
|
||||||
|
}
|
||||||
|
|
||||||
|
return reply;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
15
Workspace/core/core.iml
Normal file
15
Workspace/core/core.iml
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
|
||||||
|
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
|
||||||
|
<output url="file://$MODULE_DIR$/target/classes" />
|
||||||
|
<output-test url="file://$MODULE_DIR$/target/test-classes" />
|
||||||
|
<content url="file://$MODULE_DIR$">
|
||||||
|
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
|
||||||
|
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
|
||||||
|
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/target" />
|
||||||
|
</content>
|
||||||
|
<orderEntry type="inheritedJdk" />
|
||||||
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
|
</component>
|
||||||
|
</module>
|
15
Workspace/core/pom.xml
Normal file
15
Workspace/core/pom.xml
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
<parent>
|
||||||
|
<artifactId>Main</artifactId>
|
||||||
|
<groupId>com.pqt</groupId>
|
||||||
|
<version>1.0-SNAPSHOT</version>
|
||||||
|
</parent>
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
<artifactId>core</artifactId>
|
||||||
|
|
||||||
|
|
||||||
|
</project>
|
@ -0,0 +1,49 @@
|
|||||||
|
package com.pqt.core.entities.client;
|
||||||
|
|
||||||
|
import com.pqt.core.entities.log.ILoggable;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by Notmoo on 18/07/2017.
|
||||||
|
*/
|
||||||
|
public class Client implements ILoggable, Serializable {
|
||||||
|
|
||||||
|
private int id;
|
||||||
|
private String address;
|
||||||
|
private Date lastUpdate;
|
||||||
|
|
||||||
|
public Client() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public Client(int id, String address, Date lastUpdate) {
|
||||||
|
this.id = id;
|
||||||
|
this.address = address;
|
||||||
|
this.lastUpdate = lastUpdate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(int id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getAddress() {
|
||||||
|
return address;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAddress(String address) {
|
||||||
|
this.address = address;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Date getLastUpdate() {
|
||||||
|
return lastUpdate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLastUpdate(Date lastUpdate) {
|
||||||
|
this.lastUpdate = lastUpdate;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,7 @@
|
|||||||
|
package com.pqt.core.entities.log;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by Notmoo on 18/07/2017.
|
||||||
|
*/
|
||||||
|
public interface ILoggable {
|
||||||
|
}
|
@ -0,0 +1,66 @@
|
|||||||
|
package com.pqt.core.entities.log;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by Notmoo on 18/07/2017.
|
||||||
|
*/
|
||||||
|
public class LogLine implements Serializable{
|
||||||
|
private int id;
|
||||||
|
private String description;
|
||||||
|
private Date timestamp;
|
||||||
|
private ILoggable relatedItem;
|
||||||
|
private LogLineActionType type;
|
||||||
|
|
||||||
|
public LogLine() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public LogLine(int id, String description, Date timestamp, ILoggable relatedItem, LogLineActionType type) {
|
||||||
|
this.id = id;
|
||||||
|
this.description = description;
|
||||||
|
this.timestamp = timestamp;
|
||||||
|
this.relatedItem = relatedItem;
|
||||||
|
this.type = type;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(int id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDescription() {
|
||||||
|
return description;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDescription(String description) {
|
||||||
|
this.description = description;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Date getTimestamp() {
|
||||||
|
return timestamp;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTimestamp(Date timestamp) {
|
||||||
|
this.timestamp = timestamp;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ILoggable getRelatedItem() {
|
||||||
|
return relatedItem;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRelatedItem(ILoggable relatedItem) {
|
||||||
|
this.relatedItem = relatedItem;
|
||||||
|
}
|
||||||
|
|
||||||
|
public LogLineActionType getType() {
|
||||||
|
return type;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setType(LogLineActionType type) {
|
||||||
|
this.type = type;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,11 @@
|
|||||||
|
package com.pqt.core.entities.log;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by Notmoo on 18/07/2017.
|
||||||
|
*/
|
||||||
|
public enum LogLineActionType {
|
||||||
|
ADD_PRODUCT_ACTION, REMOVE_PRODUCT_ACTION, MODIFY_PRODUCT_ACTION,
|
||||||
|
COMMIT_SALE_ACTION, REVERT_SALE_ACTION,
|
||||||
|
LOG_IN_ACCOUNT_ACTION, LOG_OUT_ACCOUNT_ACTION,
|
||||||
|
CONNECT_CLIENT_ACTION, DISCONNECT_CLIENT_ACTION
|
||||||
|
}
|
@ -0,0 +1,35 @@
|
|||||||
|
package com.pqt.core.entities.product;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by Notmoo on 18/07/2017.
|
||||||
|
*/
|
||||||
|
public class Category implements Serializable{
|
||||||
|
private int id;
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
public Category() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public Category(int id, String name) {
|
||||||
|
this.id = id;
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(int id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setName(String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,100 @@
|
|||||||
|
package com.pqt.core.entities.product;
|
||||||
|
|
||||||
|
import com.pqt.core.entities.log.ILoggable;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by Notmoo on 18/07/2017.
|
||||||
|
*/
|
||||||
|
public class Product implements ILoggable, Serializable{
|
||||||
|
private int id;
|
||||||
|
private String name;
|
||||||
|
private int amountRemaining;
|
||||||
|
private int amountSold;
|
||||||
|
private boolean sellable;
|
||||||
|
private boolean price;
|
||||||
|
private List<Product> components;
|
||||||
|
private Category category;
|
||||||
|
|
||||||
|
public Product() {
|
||||||
|
components = new ArrayList<>();
|
||||||
|
}
|
||||||
|
|
||||||
|
public Product(int id, String name, int amountRemaining, int amountSold, boolean sellable, boolean price, List<Product> components, Category category) {
|
||||||
|
this.id = id;
|
||||||
|
this.name = name;
|
||||||
|
this.amountRemaining = amountRemaining;
|
||||||
|
this.amountSold = amountSold;
|
||||||
|
this.sellable = sellable;
|
||||||
|
this.price = price;
|
||||||
|
this.components = components;
|
||||||
|
this.category = category;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(int id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setName(String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getAmountRemaining() {
|
||||||
|
return amountRemaining;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAmountRemaining(int amountRemaining) {
|
||||||
|
this.amountRemaining = amountRemaining;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getAmountSold() {
|
||||||
|
return amountSold;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAmountSold(int amountSold) {
|
||||||
|
this.amountSold = amountSold;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isSellable() {
|
||||||
|
return sellable;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSellable(boolean sellable) {
|
||||||
|
this.sellable = sellable;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isPrice() {
|
||||||
|
return price;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPrice(boolean price) {
|
||||||
|
this.price = price;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<Product> getComponents() {
|
||||||
|
return components;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setComponents(List<Product> components) {
|
||||||
|
this.components = components;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Category getCategory() {
|
||||||
|
return category;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCategory(Category category) {
|
||||||
|
this.category = category;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,53 @@
|
|||||||
|
package com.pqt.core.entities.product;
|
||||||
|
|
||||||
|
import com.pqt.core.entities.log.ILoggable;
|
||||||
|
import sun.misc.Version;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
public class ProductUpdate implements ILoggable, Serializable {
|
||||||
|
|
||||||
|
private Date createdAt;
|
||||||
|
private Product oldVersion;
|
||||||
|
private Product newVersion;
|
||||||
|
|
||||||
|
public ProductUpdate() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public ProductUpdate(Product oldVersion, Product newVersion) {
|
||||||
|
this.createdAt = new Date();
|
||||||
|
this.oldVersion = oldVersion;
|
||||||
|
this.newVersion = newVersion;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ProductUpdate(Date createdAt, Product oldVersion, Product newVersion) {
|
||||||
|
this.createdAt = createdAt;
|
||||||
|
this.oldVersion = oldVersion;
|
||||||
|
this.newVersion = newVersion;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Date getCreatedAt() {
|
||||||
|
return createdAt;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCreatedAt(Date createdAt) {
|
||||||
|
this.createdAt = createdAt;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Product getOldVersion() {
|
||||||
|
return oldVersion;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setOldVersion(Product oldVersion) {
|
||||||
|
this.oldVersion = oldVersion;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Product getNewVersion() {
|
||||||
|
return newVersion;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNewVersion(Product newVersion) {
|
||||||
|
this.newVersion = newVersion;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,19 @@
|
|||||||
|
package com.pqt.core.entities.query;
|
||||||
|
|
||||||
|
public class ConnectQuery extends SimpleQuery {
|
||||||
|
|
||||||
|
private String serverAddress;
|
||||||
|
|
||||||
|
public ConnectQuery(String serverAddress) {
|
||||||
|
super(QueryType.CONNECT);
|
||||||
|
this.serverAddress = serverAddress;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getServerAddress() {
|
||||||
|
return serverAddress;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setServerAddress(String serverAddress) {
|
||||||
|
this.serverAddress = serverAddress;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,5 @@
|
|||||||
|
package com.pqt.core.entities.query;
|
||||||
|
|
||||||
|
public interface IQuery {
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,32 @@
|
|||||||
|
package com.pqt.core.entities.query;
|
||||||
|
|
||||||
|
import com.pqt.core.entities.user_account.Account;
|
||||||
|
|
||||||
|
public class LogQuery extends SimpleQuery {
|
||||||
|
|
||||||
|
private Account account;
|
||||||
|
|
||||||
|
private boolean newDesiredState;
|
||||||
|
|
||||||
|
public LogQuery(Account account, boolean newDesiredState) {
|
||||||
|
super(QueryType.LOG);
|
||||||
|
this.account = account;
|
||||||
|
this.newDesiredState = newDesiredState;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Account getAccount() {
|
||||||
|
return account;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAccount(Account account) {
|
||||||
|
this.account = account;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isNewDesiredState() {
|
||||||
|
return newDesiredState;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNewDesiredState(boolean newDesiredState) {
|
||||||
|
this.newDesiredState = newDesiredState;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,6 @@
|
|||||||
|
package com.pqt.core.entities.query;
|
||||||
|
|
||||||
|
public enum QueryType {
|
||||||
|
|
||||||
|
CONNECT, SALE, STOCL, STAT, LOG, UPDATE
|
||||||
|
}
|
@ -0,0 +1,21 @@
|
|||||||
|
package com.pqt.core.entities.query;
|
||||||
|
|
||||||
|
import com.pqt.core.entities.sale.Sale;
|
||||||
|
|
||||||
|
public class SaleQuery extends SimpleQuery {
|
||||||
|
|
||||||
|
private Sale sale;
|
||||||
|
|
||||||
|
public SaleQuery(Sale sale) {
|
||||||
|
super(QueryType.SALE);
|
||||||
|
this.sale = sale;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Sale getSale() {
|
||||||
|
return sale;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSale(Sale sale) {
|
||||||
|
this.sale = sale;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,21 @@
|
|||||||
|
package com.pqt.core.entities.query;
|
||||||
|
|
||||||
|
public class SimpleQuery implements IQuery {
|
||||||
|
|
||||||
|
private QueryType type;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param type
|
||||||
|
* @throws NullPointerException if type is null
|
||||||
|
*/
|
||||||
|
public SimpleQuery(QueryType type) {
|
||||||
|
if(type==null) throw new NullPointerException("null value not allowed as query type");
|
||||||
|
|
||||||
|
this.type = type;
|
||||||
|
}
|
||||||
|
|
||||||
|
public QueryType getType() {
|
||||||
|
return type;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,23 @@
|
|||||||
|
package com.pqt.core.entities.query;
|
||||||
|
|
||||||
|
import com.pqt.core.entities.product.ProductUpdate;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class UpdateQuery extends SimpleQuery {
|
||||||
|
|
||||||
|
private List<ProductUpdate> updates;
|
||||||
|
|
||||||
|
public UpdateQuery(List<ProductUpdate> updates) {
|
||||||
|
super(QueryType.UPDATE);
|
||||||
|
this.updates = updates;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<ProductUpdate> getUpdates() {
|
||||||
|
return updates;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUpdates(List<ProductUpdate> updates) {
|
||||||
|
this.updates = updates;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,103 @@
|
|||||||
|
package com.pqt.core.entities.sale;
|
||||||
|
|
||||||
|
import com.pqt.core.entities.log.ILoggable;
|
||||||
|
import com.pqt.core.entities.client.Client;
|
||||||
|
import com.pqt.core.entities.product.Product;
|
||||||
|
import com.pqt.core.entities.user_account.Account;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by Notmoo on 18/07/2017.
|
||||||
|
*/
|
||||||
|
public class Sale implements ILoggable, Serializable{
|
||||||
|
|
||||||
|
private int id;
|
||||||
|
private Map<Product, Integer> products;
|
||||||
|
private Date orderedAt;
|
||||||
|
private Client orderedWith;
|
||||||
|
private Account orderedBy;
|
||||||
|
private Account orderedFor;
|
||||||
|
private SaleType type;
|
||||||
|
private SaleStatus status;
|
||||||
|
|
||||||
|
public Sale() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public Sale(int id, Map<Product, Integer> products, Date orderedAt, Client orderedWith, Account orderedBy, Account orderedFor, SaleType type, SaleStatus status) {
|
||||||
|
this.id = id;
|
||||||
|
this.products = products;
|
||||||
|
this.orderedAt = orderedAt;
|
||||||
|
this.orderedWith = orderedWith;
|
||||||
|
this.orderedBy = orderedBy;
|
||||||
|
this.orderedFor = orderedFor;
|
||||||
|
this.type = type;
|
||||||
|
this.status = status;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(int id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Map<Product, Integer> getProducts() {
|
||||||
|
return products;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setProducts(Map<Product, Integer> products) {
|
||||||
|
this.products = products;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Date getOrderedAt() {
|
||||||
|
return orderedAt;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setOrderedAt(Date orderedAt) {
|
||||||
|
this.orderedAt = orderedAt;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Client getOrderedWith() {
|
||||||
|
return orderedWith;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setOrderedWith(Client orderedWith) {
|
||||||
|
this.orderedWith = orderedWith;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Account getOrderedBy() {
|
||||||
|
return orderedBy;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setOrderedBy(Account orderedBy) {
|
||||||
|
this.orderedBy = orderedBy;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Account getOrderedFor() {
|
||||||
|
return orderedFor;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setOrderedFor(Account orderedFor) {
|
||||||
|
this.orderedFor = orderedFor;
|
||||||
|
}
|
||||||
|
|
||||||
|
public SaleType getType() {
|
||||||
|
return type;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setType(SaleType type) {
|
||||||
|
this.type = type;
|
||||||
|
}
|
||||||
|
|
||||||
|
public SaleStatus getStatus() {
|
||||||
|
return status;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setStatus(SaleStatus status) {
|
||||||
|
this.status = status;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,19 @@
|
|||||||
|
package com.pqt.core.entities.sale;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by Notmoo on 18/07/2017.
|
||||||
|
*/
|
||||||
|
public enum SaleStatus {
|
||||||
|
|
||||||
|
PENDING(0), REFUSED(1), ACCEPTED(2), ABORTED(3);
|
||||||
|
|
||||||
|
private int id;
|
||||||
|
|
||||||
|
private SaleStatus(int id){
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,8 @@
|
|||||||
|
package com.pqt.core.entities.sale;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by Notmoo on 18/07/2017.
|
||||||
|
*/
|
||||||
|
public enum SaleType {
|
||||||
|
CASH, BANK_CHECK, STUDENT_ASSOCIATION_ACCOUNT, OFFERED_GUEST, OFFERED_STAFF_MEMBER
|
||||||
|
}
|
@ -0,0 +1,68 @@
|
|||||||
|
package com.pqt.core.entities.user_account;
|
||||||
|
|
||||||
|
import com.pqt.core.entities.log.ILoggable;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by Notmoo on 18/07/2017.
|
||||||
|
*/
|
||||||
|
public class Account implements ILoggable, Serializable {
|
||||||
|
private int id;
|
||||||
|
private String username;
|
||||||
|
private String passwordHash;
|
||||||
|
private Date creationDate;
|
||||||
|
private AccountLevel permissionLevel;
|
||||||
|
|
||||||
|
public Account() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public Account(int id, String username, String passwordHash, Date creationDate, AccountLevel permissionLevel) {
|
||||||
|
this.id = id;
|
||||||
|
this.username = username;
|
||||||
|
this.passwordHash = passwordHash;
|
||||||
|
this.creationDate = creationDate;
|
||||||
|
this.permissionLevel = permissionLevel;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(int id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getUsername() {
|
||||||
|
return username;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUsername(String username) {
|
||||||
|
this.username = username;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getPasswordHash() {
|
||||||
|
return passwordHash;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPasswordHash(String passwordHash) {
|
||||||
|
this.passwordHash = passwordHash;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Date getCreationDate() {
|
||||||
|
return creationDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCreationDate(Date creationDate) {
|
||||||
|
this.creationDate = creationDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public AccountLevel getPermissionLevel() {
|
||||||
|
return permissionLevel;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPermissionLevel(AccountLevel permissionLevel) {
|
||||||
|
this.permissionLevel = permissionLevel;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,8 @@
|
|||||||
|
package com.pqt.core.entities.user_account;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by Notmoo on 18/07/2017.
|
||||||
|
*/
|
||||||
|
public enum AccountLevel {
|
||||||
|
GUEST, STAFF, WAITER, MASTER
|
||||||
|
}
|
27
Workspace/pom.xml
Normal file
27
Workspace/pom.xml
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
<groupId>com.pqt</groupId>
|
||||||
|
<artifactId>Main</artifactId>
|
||||||
|
<version>1.0-SNAPSHOT</version>
|
||||||
|
<modules>
|
||||||
|
<module>core</module>
|
||||||
|
<module>client</module>
|
||||||
|
</modules>
|
||||||
|
<packaging>pom</packaging>
|
||||||
|
|
||||||
|
<build>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<artifactId>maven-compiler-plugin</artifactId>
|
||||||
|
<configuration>
|
||||||
|
<source>1.8</source>
|
||||||
|
<target>1.8</target>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</build>
|
||||||
|
</project>
|
Loading…
Reference in New Issue
Block a user