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 private final Serializable[] arguments;
10 private String key;
11
12 public DefaultMessage(String key, Serializable... arguments) {
13 this.key = key;
14 this.arguments = arguments;
15 }
16
17 public Serializable[] getArguments() {
18 return arguments;
19 }
20
21 public String getKey() {
22 return key;
23 }
24
25 @Override
26 public String toString() {
27 StringBuilder builder = new StringBuilder();
28 builder.append(key);
29 builder.append(": ");
30 for (Serializable argument : arguments) {
31 builder.append(argument);
32 builder.append(",");
33 }
34 return builder.toString();
35 }
36
37 @Override
38 public boolean equals(final Object o) {
39 if (this == o) {
40 return true;
41 }
42 if (!(o instanceof DefaultMessage)) {
43 return false;
44 }
45
46 final DefaultMessage that = (DefaultMessage) o;
47
48 if (!Arrays.equals(arguments, that.arguments)) {
49 return false;
50 }
51 if (key != null ? !key.equals(that.key) : that.key != null) {
52 return false;
53 }
54
55 return true;
56 }
57
58 @Override
59 public int hashCode() {
60 int result = arguments != null ? Arrays.hashCode(arguments) : 0;
61 result = 31 * result + (key != null ? key.hashCode() : 0);
62 return result;
63 }
64 }
65