1 package com.atlassian.sal.core.message;
2
3 import com.atlassian.sal.api.message.Message;
4
5 import java.io.Serializable;
6 import java.util.Arrays;
7
8 public class DefaultMessage implements Message
9 {
10 private final Serializable[] arguments;
11 private String key;
12
13 public DefaultMessage(String key, Serializable... arguments)
14 {
15 this.key = key;
16 this.arguments = arguments;
17 }
18
19 public Serializable[] getArguments()
20 {
21 return arguments;
22 }
23
24 public String getKey()
25 {
26 return key;
27 }
28
29 @Override
30 public String toString()
31 {
32 StringBuilder builder = new StringBuilder();
33 builder.append(key);
34 builder.append(": ");
35 for (Serializable argument : arguments)
36 {
37 builder.append(argument);
38 builder.append(",");
39 }
40 return builder.toString();
41 }
42
43 @Override
44 public boolean equals(final Object o)
45 {
46 if (this == o) { return true; }
47 if (!(o instanceof DefaultMessage)) { return false; }
48
49 final DefaultMessage that = (DefaultMessage) o;
50
51 if (!Arrays.equals(arguments, that.arguments)) { return false; }
52 if (key != null ? !key.equals(that.key) : that.key != null) { return false; }
53
54 return true;
55 }
56
57 @Override
58 public int hashCode()
59 {
60 int result = arguments != null ? Arrays.hashCode(arguments) : 0;
61 result = 31 * result + (key != null ? key.hashCode() : 0);
62 return result;
63 }
64 }
65