Implémentation code module "sale" dans la partie client. répercussion modif diagrammes Astah

This commit is contained in:
Notmoo-PC\Notmoo
2017-07-21 19:30:33 +02:00
parent e1dd5d0b61
commit 4a2d834690
12 changed files with 290 additions and 275 deletions

View File

@ -1,6 +1,6 @@
package com.pqt.client.module.query;
import com.pqt.client.module.query.query_callback.IUpdateQueryCallback;
import com.pqt.client.module.query.query_callback.IIdQueryCallback;
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;
@ -28,7 +28,7 @@ public class QueryExecutor {
return 0;
}
public long execute(IQuery query, IUpdateQueryCallback callback) {
public long execute(IQuery query, IIdQueryCallback callback) {
return 0;
}

View File

@ -1,6 +1,6 @@
package com.pqt.client.module.query.query_callback;
public interface IUpdateQueryCallback {
public interface IIdQueryCallback {
public void ack(long id);
public void err(long id, Throwable cause);
public void ref(long id, Throwable cause);

View File

@ -1,28 +1,76 @@
package com.pqt.client.module.sale;
import com.pqt.core.entities.client.Client;
import com.pqt.core.entities.product.Product;
import com.pqt.core.entities.sale.Sale;
import com.pqt.core.entities.sale.SaleStatus;
import com.pqt.core.entities.sale.SaleType;
import com.pqt.core.entities.user_account.Account;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
//TODO écrire contenu méthodes
//TODO écrire javadoc
public class SaleBuilder {
public boolean addProduct(Product product) {
return false;
private Map<Product, Integer> products;
private Account orderedFor, orderedBy;
private Client orderedWith;
private SaleType type;
public SaleBuilder() {
this.products = new HashMap<>();
orderedFor = null;
orderedBy = null;
}
public SaleBuilder addProduct(Product product) {
if(products.containsKey(product)){
//Check for sufficient stock
if(product.getAmountRemaining()<products.get(product)) {
products.replace(product, products.get(product) + 1);
}
}else{
products.put(product, 1);
}
return this;
}
public boolean removeProduct(Product product) {
return false;
public SaleBuilder removeProduct(Product product) {
if(products.containsKey(product)) {
if (products.get(product) == 1)
products.remove(product);
else
products.replace(product, products.get(product) - 1);
}
return this;
}
public Map<Product,Integer> getCurrentProductList() {
return null;
}
public SaleBuilder orderedFor(Account account){
orderedFor = account;
return this;
}
public SaleBuilder orderedBy(Account account){
orderedBy = account;
return this;
}
public SaleBuilder orderedWith(Client client){
this.orderedWith = client;
return this;
}
public SaleBuilder saleType(SaleType type){
this.type = type;
return this;
}
public Sale build() {
return null;
return new Sale(0, products, new Date(), orderedWith, orderedBy, orderedFor, type, SaleStatus.PENDING);
}
}

View File

@ -1,30 +1,58 @@
package com.pqt.client.module.sale;
import com.pqt.client.module.query.QueryExecutor;
import com.pqt.client.module.query.QueryFactory;
import com.pqt.client.module.query.query_callback.IIdQueryCallback;
import com.pqt.client.module.sale.listeners.ISaleFirerer;
import com.pqt.client.module.sale.listeners.ISaleListener;
import com.pqt.client.module.sale.listeners.SimpleSaleFirerer;
//TODO écrire contenu méthodes
//TODO écrire javadoc
//TODO add log lines
public class SaleService {
public void getNewSaleBuilder() {
private ISaleFirerer eventFirerer;
public SaleService() {
eventFirerer = new SimpleSaleFirerer();
}
public void commitSale(SaleBuilder saleBuilder) {
public SaleBuilder getNewSaleBuilder() {
return new SaleBuilder();
}
public long commitSale(SaleBuilder saleBuilder) {
return QueryExecutor.INSTANCE.execute(QueryFactory.newSaleQuery(saleBuilder.build()), new IIdQueryCallback() {
@Override
public void ack(long id) {
eventFirerer.fireSaleValidationSuccess(id);
}
@Override
public void err(long id, Throwable cause) {
eventFirerer.fireSaleValidationError(id, cause);
}
@Override
public void ref(long id, Throwable cause) {
eventFirerer.fireSaleValidationRefused(id, cause);
}
});
}
/*
TODO implémenter le revert de commande
public void revertSale(int saleId) {
}
*/
public void addListener(ISaleListener listener) {
eventFirerer.addListener(listener);
}
public void removeListener(ISaleListener listener) {
eventFirerer.removeListener(listener);
}
}

View File

@ -4,11 +4,11 @@ import com.pqt.core.entities.sale.Sale;
public interface ISaleFirerer {
public abstract void fireSaleValidationSuccess(Sale sale);
public abstract void fireSaleValidationSuccess(long saleId);
public abstract void fireSaleValidationError(Sale sale, Throwable cause);
public abstract void fireSaleValidationError(long saleId, Throwable cause);
public abstract void fireSaleValidationRefused(Sale sale, Throwable cause);
public abstract void fireSaleValidationRefused(long saleId, Throwable cause);
public abstract void addListener(ISaleListener listener);

View File

@ -6,10 +6,10 @@ import java.util.EventListener;
public interface ISaleListener extends EventListener {
public abstract void onSaleValidationSuccess(Sale sale);
public abstract void onSaleValidationSuccess(long saleId);
public abstract void onSaleValidationError(Sale sale, Throwable cause);
public abstract void onSaleValidationError(long saleId, Throwable cause);
public abstract void onSaleValidationRefused(Sale sale, Throwable cause);
public abstract void onSaleValidationRefused(long saleId, Throwable cause);
}

View File

@ -2,33 +2,32 @@ 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)
* @see com.pqt.client.module.sale.listeners.ISaleListener#onSaleValidationSuccess(long)
*
*
*/
public void onSaleValidationSuccess(Sale sale) {
public void onSaleValidationSuccess(long saleId) {
}
/**
* @see com.pqt.client.module.sale.listeners.ISaleListener#onSaleValidationError(com.pqt.core.entities.sale.Sale, Throwable)
* @see com.pqt.client.module.sale.listeners.ISaleListener#onSaleValidationError(long, Throwable)
*/
public void onSaleValidationError(Sale sale, Throwable cause) {
public void onSaleValidationError(long saleId, Throwable cause) {
}
/**
* @see com.pqt.client.module.sale.listeners.ISaleListener#onSaleValidationRefused(com.pqt.core.entities.sale.Sale, Throwable)
* @see com.pqt.client.module.sale.listeners.ISaleListener#onSaleValidationRefused(long, Throwable)
*/
public void onSaleValidationRefused(Sale sale, Throwable cause) {
public void onSaleValidationRefused(long saleId, Throwable cause) {
}

View File

@ -1,33 +1,44 @@
package com.pqt.client.module.sale.listeners;
import com.pqt.core.entities.sale.Sale;
import javax.swing.event.EventListenerList;
//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) {
private EventListenerList listeners;
public SimpleSaleFirerer() {
listeners = new EventListenerList();
}
/**
* @see com.pqt.client.module.sale.listeners.ISaleFirerer#fireSaleValidationSuccess(long)
*/
public void fireSaleValidationSuccess(long saleId) {
for(ISaleListener l : listeners.getListeners(ISaleListener.class)){
l.onSaleValidationSuccess(saleId);
}
}
/**
* @see com.pqt.client.module.sale.listeners.ISaleFirerer#fireSaleValidationError(com.pqt.core.entities.sale.Sale, Throwable)
* @see com.pqt.client.module.sale.listeners.ISaleFirerer#fireSaleValidationError(long, Throwable)
*/
public void fireSaleValidationError(Sale sale, Throwable cause) {
public void fireSaleValidationError(long saleId, Throwable cause) {
for(ISaleListener l : listeners.getListeners(ISaleListener.class)){
l.onSaleValidationError(saleId, cause);
}
}
/**
* @see com.pqt.client.module.sale.listeners.ISaleFirerer#fireSaleValidationRefused(com.pqt.core.entities.sale.Sale, Throwable)
* @see com.pqt.client.module.sale.listeners.ISaleFirerer#fireSaleValidationRefused(long, Throwable)
*/
public void fireSaleValidationRefused(Sale sale, Throwable cause) {
public void fireSaleValidationRefused(long saleId, Throwable cause) {
for(ISaleListener l : listeners.getListeners(ISaleListener.class)){
l.onSaleValidationRefused(saleId, cause);
}
}
@ -35,7 +46,7 @@ public class SimpleSaleFirerer implements ISaleFirerer {
* @see com.pqt.client.module.sale.listeners.ISaleFirerer#addListener(com.pqt.client.module.sale.listeners.ISaleListener)
*/
public void addListener(ISaleListener listener) {
listeners.add(ISaleListener.class, listener);
}
@ -43,7 +54,7 @@ public class SimpleSaleFirerer implements ISaleFirerer {
* @see com.pqt.client.module.sale.listeners.ISaleFirerer#removeListener(com.pqt.client.module.sale.listeners.ISaleListener)
*/
public void removeListener(ISaleListener listener) {
listeners.remove(ISaleListener.class, listener);
}
}

View File

@ -3,7 +3,7 @@ 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.query.query_callback.IIdQueryCallback;
import com.pqt.client.module.stock.Listeners.IStockFirerer;
import com.pqt.client.module.stock.Listeners.IStockListener;
import com.pqt.client.module.stock.Listeners.SimpleStockFirerer;
@ -75,7 +75,7 @@ public class StockDao {
}
public long commitUpdate(List<ProductUpdate> updates){
return QueryExecutor.INSTANCE.execute(QueryFactory.newUpdateQuery(updates),new IUpdateQueryCallback(){
return QueryExecutor.INSTANCE.execute(QueryFactory.newUpdateQuery(updates),new IIdQueryCallback(){
@Override
public void ack(long id) {

View File

@ -1,10 +1,5 @@
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;