Class Message
- java.lang.Object
-
- org.faktorips.runtime.Message
-
- All Implemented Interfaces:
java.io.Serializable
public class Message extends java.lang.Object implements java.io.SerializableA human readable text message with an optional code that identifies the type of the message and a severity that indicates if this is an error, warning or information.In addition a message provides access to the objects and their properties the message relates to. E.g. if a message reads that "insured person's age must be at least 18" than the person's age is invalid. This information can be used for example to mark controls in the UI that display this property.
If the provided message has replacement parameters that cannot be evaluated while creating the message text, it is possible to provide there parameters to the message object. Have a look at
MsgReplacementParameterfor further information.If you need any further information stored with the message, it is possible to implement the IMarker object and provide some additional markers to the message. The exact use of the markers depends on the custom implementation.
Message is an immutable value object. Two message objects are considered equal if they have the same severity, code, text, "invalid properties" and replacement parameters.
- See Also:
MsgReplacementParameter, Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classMessage.BuilderA builder for theMessageclass.
-
Constructor Summary
Constructors Constructor Description Message(java.lang.String code, java.lang.String text, Severity severity)Creates a new message by defining the following parameters.Message(java.lang.String code, java.lang.String text, Severity severity, java.lang.Object invalidObject)Creates a new message by defining the following parameters.Message(java.lang.String code, java.lang.String text, Severity severity, java.lang.Object invalidObject, java.lang.String... invalidObjectProperties)Creates a new message by defining the following parameters.Message(java.lang.String code, java.lang.String text, Severity severity, java.util.List<ObjectProperty> invalidObjectProperties)Creates a new message by defining the following parameters.Message(java.lang.String code, java.lang.String text, Severity severity, java.util.List<ObjectProperty> invalidObjectProperties, java.util.List<MsgReplacementParameter> replacementParameters)Creates a new message by defining the following parameters.Message(java.lang.String code, java.lang.String text, Severity severity, java.util.List<ObjectProperty> invalidObjectProperties, java.util.List<MsgReplacementParameter> parameters, java.util.Set<? extends IMarker> markers)Creates a new message by defining the following parameters.Message(java.lang.String code, java.lang.String text, Severity severity, ObjectProperty invalidObjectProperty)Creates a new message by defining the following parameters.Message(java.lang.String code, java.lang.String text, Severity severity, ObjectProperty... invalidObjectProperties)Creates a new message by defining the following parameters.Message(java.lang.String code, java.lang.String text, Severity severity, ObjectProperty[] invalidObjectProperties, MsgReplacementParameter[] parameters)Creates a new message by defining the following parameters.Message(java.lang.String code, java.lang.String text, Severity severity, ObjectProperty invalidObjectProperty, java.util.List<MsgReplacementParameter> parameters)Creates a new message by defining the following parameters.Message(java.lang.String code, java.lang.String text, Severity severity, ObjectProperty invalidObjectProperty, MsgReplacementParameter... parameters)Creates a new message by defining the following parameters.Message(java.lang.String text, Severity severity)Creates a new message by defining the following parameters.Message(Message msg)Creates a new message by copying everything of the givenMessage.Message(Message.Builder builder)Creates a new message by using the fields of aMessage.Builder.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static MessagecreateCopy(Message msg, java.lang.Object oldObject, java.lang.Object newObject)Creates a copy from the message and replaces all references to the old object with the new object.static MessagecreateCopy(Message msg, java.util.Map<ObjectProperty,ObjectProperty> objectPropertyMap)Creates and returns a copy of the given message and replaces all references to the old object with the new object.booleanequals(java.lang.Object o)Returns true if o is a Message and severity, code and text are equal.static Message.Buildererror(java.lang.String text)Creates a newMessage.BuilderwithERRORand the given message.java.lang.StringgetCode()java.util.List<ObjectProperty>getInvalidObjectProperties()Returns the list of object properties the message refers to.java.util.Set<? extends IMarker>getMarkers()Returns a set ofIMarkers associated with this class.intgetNumOfInvalidObjectProperties()Returns the number of referenced invalid object properties.intgetNumOfReplacementParameters()Returns the number of replacement parameters..java.util.List<MsgReplacementParameter>getReplacementParameters()Returns the list of replacement parameters.java.lang.ObjectgetReplacementValue(java.lang.String paramName)Returns the value for the given replacement parameter.SeveritygetSeverity()Returns the message's severity as one of the constants ERROR, WARNING, INFO or NONE.java.lang.StringgetText()inthashCode()booleanhasMarker(IMarker marker)booleanhasMarkers()Returnstrueif the message has markers otherwisefalse.booleanhasReplacementParameter(java.lang.String paramName)Returnstrueif the message has a replacement parameter with the given name, otherwisefalse.static Message.Builderinfo(java.lang.String text)Creates a newMessage.BuilderwithINFOand the given message.static MessagenewError(java.lang.String code, java.lang.String text)Constructs and returns a new error message.static MessagenewError(java.lang.String code, java.lang.String text, java.lang.Object invalidObject, java.lang.String... invalidProperties)Constructs and returns a new error message.static MessagenewError(java.lang.String code, java.lang.String text, ObjectProperty... invalidObjectProperty)Constructs and returns a new error message.static MessagenewInfo(java.lang.String code, java.lang.String text)Constructs and returns a new information message.static MessagenewInfo(java.lang.String code, java.lang.String text, java.lang.Object invalidObject, java.lang.String invalidProperty)Constructs and returns a new information message.static MessagenewWarning(java.lang.String code, java.lang.String text)Constructs and returns a new warning message.static MessagenewWarning(java.lang.String code, java.lang.String text, java.lang.Object invalidObject)Constructs and returns a new warning message.static MessagenewWarning(java.lang.String code, java.lang.String text, java.lang.Object invalidObject, java.lang.String... invalidProperties)Constructs and returns a new warning message.java.lang.StringtoString()static Message.Builderwarning(java.lang.String text)Creates a newMessage.BuilderwithWARNINGand the given message.
-
-
-
Constructor Detail
-
Message
public Message(Message.Builder builder)
Creates a new message by using the fields of aMessage.Builder.- Parameters:
builder- theMessage.Builder
-
Message
public Message(Message msg)
Creates a new message by copying everything of the givenMessage.- Parameters:
msg- theMessageto copy from
-
Message
public Message(java.lang.String text, Severity severity)Creates a new message by defining the following parameters.
-
Message
public Message(java.lang.String code, java.lang.String text, Severity severity)Creates a new message by defining the following parameters.
-
Message
public Message(java.lang.String code, java.lang.String text, Severity severity, java.lang.Object invalidObject)Creates a new message by defining the following parameters.
-
Message
public Message(java.lang.String code, java.lang.String text, Severity severity, ObjectProperty invalidObjectProperty)Creates a new message by defining the following parameters.
-
Message
public Message(java.lang.String code, java.lang.String text, Severity severity, java.lang.Object invalidObject, java.lang.String... invalidObjectProperties)Creates a new message by defining the following parameters.- Parameters:
code- A message code that identifies the kind of the messagetext- The human readable text of this messageseverity- The message's severity:ERROR,WARNINGorINFO:ERROR,WARNINGorINFOinvalidObject- the Object of the ObjectPropertyinvalidObjectProperties- An array of propertie's names the message refers to
-
Message
public Message(java.lang.String code, java.lang.String text, Severity severity, ObjectProperty... invalidObjectProperties)Creates a new message by defining the following parameters.
-
Message
public Message(java.lang.String code, java.lang.String text, Severity severity, java.util.List<ObjectProperty> invalidObjectProperties)Creates a new message by defining the following parameters.
-
Message
public Message(java.lang.String code, java.lang.String text, Severity severity, java.util.List<ObjectProperty> invalidObjectProperties, java.util.List<MsgReplacementParameter> replacementParameters)Creates a new message by defining the following parameters.
-
Message
public Message(java.lang.String code, java.lang.String text, Severity severity, ObjectProperty invalidObjectProperty, MsgReplacementParameter... parameters)Creates a new message by defining the following parameters.- Parameters:
code- A message code that identifies the kind of the messagetext- The human readable text of this messageseverity- The message's severity:ERROR,WARNINGorINFOinvalidObjectProperty- A list of object properties the message refers toparameters- an array of replacement parameters
-
Message
public Message(java.lang.String code, java.lang.String text, Severity severity, ObjectProperty invalidObjectProperty, java.util.List<MsgReplacementParameter> parameters)Creates a new message by defining the following parameters.
-
Message
public Message(java.lang.String code, java.lang.String text, Severity severity, ObjectProperty[] invalidObjectProperties, MsgReplacementParameter[] parameters)Creates a new message by defining the following parameters.- Parameters:
code- A message code that identifies the kind of the messagetext- The human readable text of this messageseverity- The message's severity:ERROR,WARNINGorINFOinvalidObjectProperties- An array of object properties the message refers toparameters- an array of replacement parameters
-
Message
public Message(java.lang.String code, java.lang.String text, Severity severity, java.util.List<ObjectProperty> invalidObjectProperties, java.util.List<MsgReplacementParameter> parameters, java.util.Set<? extends IMarker> markers)Creates a new message by defining the following parameters.- Parameters:
code- A message code that identifies the kind of the messagetext- The human readable text of this messageseverity- The message's severity:ERROR,WARNINGorINFOinvalidObjectProperties- A list of object properties the message refers toparameters- a list of replacement parametersmarkers- a list of markers. If this parameter is null an empty list is set as markers. The List of markers is
-
-
Method Detail
-
error
public static final Message.Builder error(java.lang.String text)
Creates a newMessage.BuilderwithERRORand the given message.To create a new
Messageyou can use for example:
Message.error("MessageText").code("1").invalidObjects("object", "property").create();- Parameters:
text- The human readable text of this message
-
warning
public static final Message.Builder warning(java.lang.String text)
Creates a newMessage.BuilderwithWARNINGand the given message.To create a new
Messageyou can use for example:
Message.warning("MessageText").code("1").invalidObjects("object", "property").create();- Parameters:
text- The human readable text of this message
-
info
public static final Message.Builder info(java.lang.String text)
Creates a newMessage.BuilderwithINFOand the given message.To create a new
Messageyou can use for example:
Message.info("MessageText").code("1").invalidObjects("object", "property").create();- Parameters:
text- The human readable text of this message
-
createCopy
public static final Message createCopy(Message msg, java.lang.Object oldObject, java.lang.Object newObject)
Creates a copy from the message and replaces all references to the old object with the new object.
-
createCopy
public static final Message createCopy(Message msg, java.util.Map<ObjectProperty,ObjectProperty> objectPropertyMap)
Creates and returns a copy of the given message and replaces all references to the old object with the new object.- Parameters:
objectPropertyMap- TheMapbetween old and newObjectProperty- Returns:
- Message
-
newInfo
public static final Message newInfo(java.lang.String code, java.lang.String text)
Constructs and returns a new information message.- Parameters:
code- The code that identifies the message.text- The human readable text of the message.
-
newInfo
public static final Message newInfo(java.lang.String code, java.lang.String text, java.lang.Object invalidObject, java.lang.String invalidProperty)
Constructs and returns a new information message.- Parameters:
code- The code that identifies the message.text- The human readable text of the message.invalidObject- The invalid objectinvalidProperty- The name of the invalid property (which is a property of the invalidObject)
-
newWarning
public static final Message newWarning(java.lang.String code, java.lang.String text)
Constructs and returns a new warning message.- Parameters:
code- The code that identifies the message.text- The human readable text of the message.
-
newWarning
public static final Message newWarning(java.lang.String code, java.lang.String text, java.lang.Object invalidObject)
Constructs and returns a new warning message.- Parameters:
code- The code that identifies the message.text- The human readable text of the message.invalidObject- The invalid object
-
newWarning
public static final Message newWarning(java.lang.String code, java.lang.String text, java.lang.Object invalidObject, java.lang.String... invalidProperties)
Constructs and returns a new warning message.- Parameters:
code- The code that identifies the message.text- The human readable text of the message.invalidObject- The invalid objectinvalidProperties- The name of the invalid properties (which are properties of the invalidObject)
-
newError
public static final Message newError(java.lang.String code, java.lang.String text)
Constructs and returns a new error message.- Parameters:
code- The code that identifies the message.text- The human readable text of the message.
-
newError
public static final Message newError(java.lang.String code, java.lang.String text, java.lang.Object invalidObject, java.lang.String... invalidProperties)
Constructs and returns a new error message.- Parameters:
code- The code that identifies the message.text- The human readable text of the message.invalidObject- The invalid object to refer to.invalidProperties- The name of the invalid properties (which are properties of the invalidObject)
-
newError
public static final Message newError(java.lang.String code, java.lang.String text, ObjectProperty... invalidObjectProperty)
Constructs and returns a new error message.- Parameters:
code- The code that identifies the message.text- The human readable text of the message.invalidObjectProperty- The invalid object properties to refer to.
-
getSeverity
public Severity getSeverity()
Returns the message's severity as one of the constants ERROR, WARNING, INFO or NONE.
-
getText
public java.lang.String getText()
-
getCode
public java.lang.String getCode()
-
getNumOfInvalidObjectProperties
public int getNumOfInvalidObjectProperties()
Returns the number of referenced invalid object properties.
-
getInvalidObjectProperties
public java.util.List<ObjectProperty> getInvalidObjectProperties()
Returns the list of object properties the message refers to. E.g. if a message reads "The driver's age must be greater than 18.", this method would probably return the driver object and the property name age. Returns an empty list if this message does not refer to any objects / properties.
-
getNumOfReplacementParameters
public int getNumOfReplacementParameters()
Returns the number of replacement parameters..
-
getReplacementParameters
public java.util.List<MsgReplacementParameter> getReplacementParameters()
Returns the list of replacement parameters. Returns an empty list if this message hasn't got any replacements.
-
hasReplacementParameter
public boolean hasReplacementParameter(java.lang.String paramName)
Returnstrueif the message has a replacement parameter with the given name, otherwisefalse. Returnsfalseif paramName isnull.
-
getReplacementValue
public java.lang.Object getReplacementValue(java.lang.String paramName)
Returns the value for the given replacement parameter. Returnsnullif the message hasn't got a parameter with the indicated name.- See Also:
hasReplacementParameter(String)
-
getMarkers
public java.util.Set<? extends IMarker> getMarkers()
Returns a set ofIMarkers associated with this class. Returns an empty set if no markers are set.
-
hasMarker
public boolean hasMarker(IMarker marker)
-
hasMarkers
public boolean hasMarkers()
Returnstrueif the message has markers otherwisefalse.
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
equals
public boolean equals(java.lang.Object o)
Returns true if o is a Message and severity, code and text are equal.- Overrides:
equalsin classjava.lang.Object- See Also:
Object.equals(java.lang.Object)
-
hashCode
public int hashCode()
- Overrides:
hashCodein classjava.lang.Object
-
-