package jpaoletti.jpm.core.message;
import jpaoletti.jpm.core.Entity;
import jpaoletti.jpm.core.Field;
/**
* Factory for messages
*
* @author jpaoletti
* @since 13/09/2011
* @version v1.1
*
*/
public class MessageFactory {
/**
* Create a system scoped information message
*/
public static Message info(String key, String... args) {
return message(MessageType.INFO, key, args);
}
/**
* Create a system scoped warning message
*/
public static Message warn(String key, String... args) {
return message(MessageType.WARN, key, args);
}
/**
* Create a system scoped error message
*/
public static Message error(String key, String... args) {
return message(MessageType.ERROR, key, args);
}
/**
* Create an entity scoped information message
*/
public static Message info(Entity entity, String key, String... args) {
return message(MessageType.INFO, entity, key, args);
}
/**
* Create an entity scoped warning message
*/
public static Message warn(Entity entity, String key, String... args) {
return message(MessageType.WARN, entity, key, args);
}
/**
* Create an entity scoped error message
*/
public static Message error(Entity entity, String key, String... args) {
return message(MessageType.ERROR, entity, key, args);
}
/**
* Create a field scoped information message
*/
public static Message info(Entity entity, Field field, String key, String... args) {
return message(MessageType.INFO, entity, field, key, args);
}
/**
* Create a field scoped warning message
*/
public static Message warn(Entity entity, Field field, String key, String... args) {
return message(MessageType.WARN, entity, field, key, args);
}
/**
* Create a field scoped error message
*/
public static Message error(Entity entity, Field field, String key, String... args) {
return message(MessageType.ERROR, entity, field, key, args);
}
private static Message message(MessageType type, String key, String... args) {
final Message message = new Message();
message.setType(type);
message.setKey(key);
message.setArgs(args);
return message;
}
private static Message message(MessageType type, Entity entity, String key, String... args) {
final Message message = message(type, key, args);
message.setEntity(entity);
return message;
}
private static Message message(MessageType type, Entity entity, Field field, String key, String... args) {
final Message message = message(type, key, args);
message.setEntity(entity);
message.setField(field);
return message;
}
}