package com.ctp.cdi.query.home;
public class EntityMessage {
private final MessageType messageType;
private final HomeOperation operation;
private final Object entity;
private final Exception exception;
public static EntityMessage created(Object entity) {
return new EntityMessage(entity, MessageType.SUCCESS, HomeOperation.CREATE);
}
public static EntityMessage updated(Object entity) {
return new EntityMessage(entity, MessageType.SUCCESS, HomeOperation.UPDATE);
}
public static EntityMessage deleted(Object entity) {
return new EntityMessage(entity, MessageType.SUCCESS, HomeOperation.DELETE);
}
public static EntityMessage failed(Object entity, HomeOperation operation, Exception e) {
return new EntityMessage(entity, MessageType.FAILED, operation, e);
}
private EntityMessage(Object entity, MessageType messageType, HomeOperation operation) {
this(entity, messageType, operation, null);
}
private EntityMessage(Object entity, MessageType messageType, HomeOperation operation, Exception exception) {
this.entity = entity;
this.messageType = messageType;
this.operation = operation;
this.exception = exception;
}
public boolean isSuccess() {
return MessageType.SUCCESS.equals(messageType);
}
public boolean isFailure() {
return !isSuccess();
}
public HomeOperation getOperation() {
return operation;
}
public Object getEntity() {
return entity;
}
public Exception getException() {
return exception;
}
public static enum HomeOperation {
CREATE, UPDATE, DELETE
}
private static enum MessageType {
SUCCESS, FAILED
}
}