public final class ResourceMessage extends ServiceMessage
factory
to create messages. This is an experiment to make creating messages for log events easier.
notFound(String, String)
.
Modifier and Type | Class and Description |
---|---|
static class |
ResourceMessage.Factory
Factory to create log messages for a given service.
|
Modifier and Type | Field and Description |
---|---|
private Object |
resourceData
The optional resource data.
|
private String |
resourceId
The identifier of the missing resource.
|
private static long |
serialVersionUID
The class version identifier.
|
Constructor and Description |
---|
ResourceMessage(AnyServiceCode code, String serviceName, String resourceId)
Convenience constructor without a cause and no resource data.
|
ResourceMessage(AnyServiceCode code, String serviceName, String resourceId, Object resourceData)
Convenience constructor without a cause.
|
ResourceMessage(Throwable cause, AnyServiceCode code, String serviceName, String resourceId)
Convenience constructor without specifying the resource data.
|
ResourceMessage(Throwable cause, AnyServiceCode code, String serviceName, String resourceId, Object resourceData)
Default constructor.
|
Modifier and Type | Method and Description |
---|---|
static ResourceMessage |
log(AnyServiceCode code, String serviceName, String resourceId)
Factory method to create a log message instance.
|
static ResourceMessage |
log(AnyServiceCode code, String serviceName, String resourceId, Object resourceData)
Factory method to create a log message instance.
|
static ResourceMessage |
notFound(String serviceName, String resourceId)
Factory method to create a message instance.
|
service, service
getCause, getCauseTrail, getCauseTrail, getCode, getLocalizedInfo, getLocalizedMessage, getLocalizedMessage, getLocalizedMessage, getLocalizedMessage, getLocalizedTextMessage, getLocalizedTextMessage, getLocalizedTextMessage, getMessage, getMessage, getMessage, getMessages, getMessages, toString
private static final long serialVersionUID
The value of this constant is 1L.
1L
@MessageParam(value="2") private final String resourceId
NOPMD
marker to appease the static analyzer.
message parameter annotation
starts with index
2
since the parent message defines the indices
0
and
1
. This may be a problem during early development where additional information is added to the parent class. This makes it necessary to renumber the fields and the message texts later. See
Bug 712.
@MessageParam(value="3") private final Object resourceData
public ResourceMessage(AnyServiceCode code, String serviceName, String resourceId)
code
- the error or exception code of the exception.
serviceName
- the name of the service that encountered a fault situation.
resourceId
- the identifier of the missing resource.
public ResourceMessage(Throwable cause, AnyServiceCode code, String serviceName, String resourceId)
cause
- the cause to the problem.
code
- the error or exception code of the exception.
serviceName
- the name of the service that encountered a fault situation.
resourceId
- the identifier of the missing resource.
public ResourceMessage(AnyServiceCode code, String serviceName, String resourceId, Object resourceData)
code
- the error or exception code of the exception.
serviceName
- the name of the service that encountered a fault situation.
resourceId
- the identifier of the missing resource.
resourceData
- the optional resource data.
public ResourceMessage(Throwable cause, AnyServiceCode code, String serviceName, String resourceId, Object resourceData)
serviceName
,
resourceId
, and
resourceData
parameters may have their own types. Nonetheless a builder would be handy, albeit the use of the builder will require a couple of lines to construct the message instance. This is unfortunate since the logging or event raising issue comes into the focus of the business logic where it should meld with the background. The
factory
pattern only helps little, since most of the arguments are different in the context the factory instance is used. In a real world example resource ID and data usually would form an entity, reducing the count to four, which is an admissible number in the context of a message constructor. Six is certainly too much. Five ... usually, too. We let it live, since most of the time we should create new instances with the factory methods. There we can see that the number of parameters is four and less.
cause
- the cause to the problem.
code
- the error or exception code of the exception.
serviceName
- the name of the service that encountered a fault situation.
resourceId
- the identifier of the missing resource.
resourceData
- the optional resource data.
public static ResourceMessage notFound(String serviceName, String resourceId)
serviceName
- the name of the service that encountered a fault situation.
resourceId
- the identifier of the missing resource.
public static ResourceMessage log(AnyServiceCode code, String serviceName, String resourceId)
code
- the error or exception code of the exception.
serviceName
- the name of the service that logs.
resourceId
- the identifier of the resource.
public static ResourceMessage log(AnyServiceCode code, String serviceName, String resourceId, Object resourceData)
code
- the error or exception code of the exception.
serviceName
- the name of the service that logs.
resourceId
- the identifier of the resource.
resourceData
- the optional resource data.