01 package dk.deepthought.sidious.explanation;
02
03 import java.util.ArrayList;
04 import java.util.Collection;
05
06
07 import net.jcip.annotations.Immutable;
08
09 /**
10 * Value object for abstracting explanations from the pathfinding algorithm.
11 *
12 * @author Deepthought
13 *
14 */
15 @Immutable
16 public class Explanation {
17
18 /**
19 * The entries of this.
20 */
21 private final Collection<ExplanationEntry> entries;
22
23 /**
24 * Constructor.
25 *
26 * @param entries
27 * the entries
28 */
29 public Explanation(final Collection<ExplanationEntry> entries) {
30 this.entries = new ArrayList<ExplanationEntry>(entries);
31 }
32
33 /**
34 * Gets a defensive copy of the entries of this.
35 *
36 * @return the entries
37 */
38 public Collection<ExplanationEntry> getEntries() {
39 return new ArrayList<ExplanationEntry>(entries);
40 }
41
42 /*
43 * (non-Javadoc)
44 *
45 * @see java.lang.Object#toString()
46 */
47 @Override
48 public String toString() {
49 return getClass().getSimpleName() + "[entries=" + entries + "]";
50 }
51 }
|