mirror of
https://github.com/klmp200/PQT_Gestionnaire_vente_stock.git
synced 2024-11-22 08:13:20 +00:00
Ajout outils de génération/lecture de messages dans package core
This commit is contained in:
parent
3b30621075
commit
cc44f2ee8e
@ -1,6 +1,6 @@
|
||||
package com.pqt.client.module.sale;
|
||||
|
||||
import com.pqt.core.entities.client.Client;
|
||||
import com.pqt.core.entities.members.Client;
|
||||
import com.pqt.core.entities.product.Product;
|
||||
import com.pqt.core.entities.sale.Sale;
|
||||
import com.pqt.core.entities.sale.SaleStatus;
|
||||
|
@ -12,4 +12,14 @@
|
||||
<artifactId>core</artifactId>
|
||||
|
||||
|
||||
|
||||
<dependencies>
|
||||
<!-- https://mvnrepository.com/artifact/com.google.code.gson/gson -->
|
||||
<dependency>
|
||||
<groupId>com.google.code.gson</groupId>
|
||||
<artifactId>gson</artifactId>
|
||||
<version>2.8.1</version>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
</project>
|
@ -0,0 +1,122 @@
|
||||
package com.pqt.core.communication;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.GsonBuilder;
|
||||
import com.google.gson.reflect.TypeToken;
|
||||
import com.pqt.core.entities.members.PqtMember;
|
||||
import com.pqt.core.entities.members.PqtMemberType;
|
||||
import com.pqt.core.entities.messages.Message;
|
||||
import com.pqt.core.entities.messages.MessageType;
|
||||
import com.pqt.core.entities.product.Product;
|
||||
import com.pqt.core.entities.product.ProductUpdate;
|
||||
import com.pqt.core.entities.sale.Sale;
|
||||
|
||||
import java.lang.reflect.Type;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
//TODO écrire Javadoc
|
||||
public class GSonMessageToolFactory implements IMessageToolFactory {
|
||||
private Gson gson;
|
||||
|
||||
public GSonMessageToolFactory() {
|
||||
gson = new GsonBuilder().create();
|
||||
}
|
||||
|
||||
@Override
|
||||
public IObjectFormatter<Message> getMessageFormatter() {
|
||||
return getObjectFormatter(Message.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IObjectParser<Message> getMessageParser() {
|
||||
return (str)->gson.fromJson(str, Message.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IObjectFormatter<Product> getProductFormatter() {
|
||||
return getObjectFormatter(Product.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IObjectParser<Product> getProductParser() {
|
||||
return getObjectParser(Product.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IObjectFormatter<List<Product>> getProductListFormatter() {
|
||||
return getListFormatter(Product.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IObjectParser<List<Product>> getProductListParser() {
|
||||
return getListParser(Product.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IObjectFormatter<Sale> getSaleFormatter() {
|
||||
return getObjectFormatter(Sale.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IObjectParser<Sale> getSaleParser() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IObjectFormatter<PqtMember> getPqtMemberFormatter() {
|
||||
return getObjectFormatter(PqtMember.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IObjectParser<PqtMember> getPqtMemberParser() {
|
||||
return getObjectParser(PqtMember.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IObjectFormatter<ProductUpdate> getProductUpdateFormatter() {
|
||||
return getObjectFormatter(ProductUpdate.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IObjectParser<ProductUpdate> getProductUpdateParser() {
|
||||
return getObjectParser(ProductUpdate.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IObjectFormatter<MessageType> getMessageTypeFormatter() {
|
||||
return getObjectFormatter(MessageType.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IObjectParser<MessageType> getMessageTypeParser() {
|
||||
return getObjectParser(MessageType.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IObjectFormatter<PqtMemberType> getPqtMemberTypeFormatter() {
|
||||
return getObjectFormatter(PqtMemberType.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IObjectParser<PqtMemberType> getPqtMemberTypeParser() {
|
||||
return getObjectParser(PqtMemberType.class);
|
||||
}
|
||||
|
||||
private <T> IObjectFormatter<T> getObjectFormatter(Class<T> clazz){
|
||||
return (obj)->gson.toJson(obj);
|
||||
}
|
||||
|
||||
private <T> IObjectParser<T> getObjectParser(Class<T> clazz){
|
||||
return (str)->gson.fromJson(str, clazz);
|
||||
}
|
||||
|
||||
private <T> IObjectFormatter<List<T>> getListFormatter(Class<T> clazz){
|
||||
return (obj)->gson.toJson(obj);
|
||||
}
|
||||
|
||||
private <T> IObjectParser<List<T>> getListParser(Class<T> clazz){
|
||||
Type listType = new TypeToken<ArrayList<T>>(){}.getType();
|
||||
return (str)->gson.fromJson(str, listType);
|
||||
}
|
||||
}
|
@ -0,0 +1,46 @@
|
||||
package com.pqt.core.communication;
|
||||
|
||||
import com.pqt.core.entities.members.PqtMember;
|
||||
import com.pqt.core.entities.members.PqtMemberType;
|
||||
import com.pqt.core.entities.messages.Message;
|
||||
import com.pqt.core.entities.messages.MessageType;
|
||||
import com.pqt.core.entities.product.Product;
|
||||
import com.pqt.core.entities.product.ProductUpdate;
|
||||
import com.pqt.core.entities.sale.Sale;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface IMessageToolFactory {
|
||||
|
||||
IObjectFormatter<Message> getMessageFormatter();
|
||||
|
||||
IObjectParser<Message> getMessageParser();
|
||||
|
||||
IObjectFormatter<Product> getProductFormatter();
|
||||
|
||||
IObjectParser<Product> getProductParser();
|
||||
|
||||
IObjectFormatter<List<Product>> getProductListFormatter();
|
||||
|
||||
IObjectParser<List<Product>> getProductListParser();
|
||||
|
||||
IObjectFormatter<Sale> getSaleFormatter();
|
||||
|
||||
IObjectParser<Sale> getSaleParser();
|
||||
|
||||
IObjectFormatter<PqtMember> getPqtMemberFormatter();
|
||||
|
||||
IObjectParser<PqtMember> getPqtMemberParser();
|
||||
|
||||
IObjectFormatter<ProductUpdate> getProductUpdateFormatter();
|
||||
|
||||
IObjectParser<ProductUpdate> getProductUpdateParser();
|
||||
|
||||
IObjectFormatter<MessageType> getMessageTypeFormatter();
|
||||
|
||||
IObjectParser<MessageType> getMessageTypeParser();
|
||||
|
||||
IObjectFormatter<PqtMemberType> getPqtMemberTypeFormatter();
|
||||
|
||||
IObjectParser<PqtMemberType> getPqtMemberTypeParser();
|
||||
}
|
@ -0,0 +1,7 @@
|
||||
package com.pqt.core.communication;
|
||||
|
||||
public interface IObjectFormatter<T> {
|
||||
|
||||
String format(T obj);
|
||||
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
package com.pqt.core.communication;
|
||||
|
||||
public interface IObjectParser<T> {
|
||||
|
||||
T parse(String str);
|
||||
}
|
@ -1,6 +1,4 @@
|
||||
package com.pqt.core.entities.client;
|
||||
|
||||
import com.pqt.core.entities.log.ILoggable;
|
||||
package com.pqt.core.entities.members;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
@ -8,29 +6,27 @@ import java.util.Date;
|
||||
/**
|
||||
* Created by Notmoo on 18/07/2017.
|
||||
*/
|
||||
public class Client implements ILoggable, Serializable {
|
||||
public class Client extends PqtMember{
|
||||
|
||||
private int id;
|
||||
private String address;
|
||||
private Date lastUpdate;
|
||||
|
||||
public Client() {
|
||||
super(-1, PqtMemberType.CLIENT);
|
||||
}
|
||||
|
||||
public Client(int id, String address) {
|
||||
super(id, PqtMemberType.CLIENT);
|
||||
this.address = address;
|
||||
this.lastUpdate = new Date();
|
||||
}
|
||||
|
||||
public Client(int id, String address, Date lastUpdate) {
|
||||
this.id = id;
|
||||
super(id, PqtMemberType.CLIENT);
|
||||
this.address = address;
|
||||
this.lastUpdate = lastUpdate;
|
||||
}
|
||||
|
||||
public int getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(int id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public String getAddress() {
|
||||
return address;
|
||||
}
|
@ -0,0 +1,42 @@
|
||||
package com.pqt.core.entities.members;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
public class DataServer extends PqtMember{
|
||||
|
||||
private String address;
|
||||
private Date lastUpdate;
|
||||
|
||||
public DataServer() {
|
||||
super(-1, PqtMemberType.DATA_SERVER);
|
||||
}
|
||||
|
||||
public DataServer(long id, String address) {
|
||||
super(id, PqtMemberType.DATA_SERVER);
|
||||
this.address = address;
|
||||
this.lastUpdate = new Date();
|
||||
}
|
||||
|
||||
public DataServer(long id, String address, Date lastUpdate) {
|
||||
super(id, PqtMemberType.DATA_SERVER);
|
||||
this.address = address;
|
||||
this.lastUpdate = lastUpdate;
|
||||
}
|
||||
|
||||
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,35 @@
|
||||
package com.pqt.core.entities.members;
|
||||
|
||||
import com.pqt.core.entities.log.ILoggable;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
public class PqtMember implements ILoggable, Serializable {
|
||||
|
||||
private long id;
|
||||
private PqtMemberType type;
|
||||
|
||||
public PqtMember() {
|
||||
}
|
||||
|
||||
public PqtMember(long id, PqtMemberType type) {
|
||||
this.id = id;
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
public long getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(long id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public PqtMemberType getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
public void setType(PqtMemberType type) {
|
||||
this.type = type;
|
||||
}
|
||||
}
|
@ -0,0 +1,7 @@
|
||||
package com.pqt.core.entities.members;
|
||||
|
||||
public enum PqtMemberType {
|
||||
|
||||
CLIENT, DATA_SERVER;
|
||||
|
||||
}
|
@ -0,0 +1,22 @@
|
||||
package com.pqt.core.entities.messages;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
public class Field implements Serializable{
|
||||
|
||||
private String header;
|
||||
private String data;
|
||||
|
||||
public Field(String header, String data) {
|
||||
this.header = header;
|
||||
this.data = data;
|
||||
}
|
||||
|
||||
public String getHeader() {
|
||||
return header;
|
||||
}
|
||||
|
||||
public String getData() {
|
||||
return data;
|
||||
}
|
||||
}
|
@ -0,0 +1,42 @@
|
||||
package com.pqt.core.entities.messages;
|
||||
|
||||
import com.pqt.core.entities.members.PqtMember;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class Message {
|
||||
|
||||
private List<Field> fields;
|
||||
private MessageType type;
|
||||
private PqtMember emitter, receiver;
|
||||
|
||||
public Message(MessageType type, PqtMember emitter, PqtMember receiver) {
|
||||
this(type, emitter, receiver, null);
|
||||
}
|
||||
|
||||
public Message(MessageType type, PqtMember emitter, PqtMember receiver, List<Field> fields) {
|
||||
this.emitter = emitter;
|
||||
this.receiver = receiver;
|
||||
this.type = type;
|
||||
this.fields = new ArrayList<>();
|
||||
if(fields!=null)
|
||||
this.fields.addAll(fields);
|
||||
}
|
||||
|
||||
public List<Field> getFields() {
|
||||
return new ArrayList<>(fields);
|
||||
}
|
||||
|
||||
public PqtMember getEmitter() {
|
||||
return emitter;
|
||||
}
|
||||
|
||||
public PqtMember getReceiver() {
|
||||
return receiver;
|
||||
}
|
||||
|
||||
public MessageType getType() {
|
||||
return type;
|
||||
}
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
package com.pqt.core.entities.messages;
|
||||
|
||||
public enum MessageType {
|
||||
//TODO ajouter types messages
|
||||
TEST_MESSAGE
|
||||
}
|
@ -1,7 +1,7 @@
|
||||
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.members.Client;
|
||||
import com.pqt.core.entities.product.Product;
|
||||
import com.pqt.core.entities.user_account.Account;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user