Initial commit : ajout des fichiers existants

This commit is contained in:
Notmoo-PC\Notmoo 2017-07-21 17:12:47 +02:00
parent 33cdbba13b
commit e1dd5d0b61
79 changed files with 3459 additions and 0 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 674 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 137 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 380 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 103 KiB

1
Workspace/.idea/.name Normal file
View File

@ -0,0 +1 @@
Main

View 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
View 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>

View 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>

File diff suppressed because it is too large Load Diff

15
Workspace/Workspace.iml Normal file
View 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>

View 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
View 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>

View File

@ -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) {
}
}

View File

@ -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) {
}
}

View File

@ -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);
}

View File

@ -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);
}

View File

@ -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) {
}
}

View File

@ -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) {
}
}

View File

@ -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() {
}
}

View File

@ -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);
}

View File

@ -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();
}

View File

@ -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) {
}
}

View File

@ -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);
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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();
}

View File

@ -0,0 +1,9 @@
package com.pqt.client.module.log.listeners;
import java.util.EventListener;
public interface ILogListener extends EventListener {
public abstract void onLogEvent();
}

View File

@ -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() {
}
}

View File

@ -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() {
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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);
}

View File

@ -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);
}

View File

@ -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);
}

View File

@ -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);
}

View File

@ -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;
}
}

View File

@ -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) {
}
}

View File

@ -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);
}

View File

@ -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);
}

View File

@ -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) {
}
}

View File

@ -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) {
}
}

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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);
}

View File

@ -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);
}

View File

@ -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);
}
}

View File

@ -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) {
}
}

View File

@ -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);
}

View File

@ -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();
}

View File

@ -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);
}
}

View File

@ -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() {
}
}

View File

@ -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);
}
}

View File

@ -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 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);
}
}

View File

@ -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
View 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
View 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>

View File

@ -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;
}
}

View File

@ -0,0 +1,7 @@
package com.pqt.core.entities.log;
/**
* Created by Notmoo on 18/07/2017.
*/
public interface ILoggable {
}

View File

@ -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;
}
}

View File

@ -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
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -0,0 +1,5 @@
package com.pqt.core.entities.query;
public interface IQuery {
}

View File

@ -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;
}
}

View File

@ -0,0 +1,6 @@
package com.pqt.core.entities.query;
public enum QueryType {
CONNECT, SALE, STOCL, STAT, LOG, UPDATE
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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
}

View File

@ -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;
}
}

View File

@ -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
View 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>