1 package org.sourceforge.jemm.collections.internal.map;
2
3 import org.sourceforge.jemm.client.shared.ValueEncoder;
4 import org.sourceforge.jemm.collections.internal.StoredValue;
5 import org.sourceforge.jemm.lifecycle.TypeResponse;
6 import org.sourceforge.jemm.lifecycle.ValueVisitor;
7
8 public class MapPutIfAbsentResponse extends TypeResponse<MapPutIfAbsentResponse> {
9 private static final long serialVersionUID = 1L;
10
11 private final boolean wasPut;
12 private final Object previousValue;
13 private final StoredValue[] possibleMatches;
14 private final Object[] possibleValues;
15
16 public MapPutIfAbsentResponse(StoredValue[] possibleMatches,Object[] possibleValues) {
17 this(false,null,possibleMatches,possibleValues);
18 }
19
20 public MapPutIfAbsentResponse(boolean wasPut, Object previousValue,
21 StoredValue[] possibleMatches,
22 Object[] possibleValues) {
23 this.wasPut = wasPut;
24 this.previousValue = previousValue;
25 this.possibleMatches = possibleMatches;
26 this.possibleValues = possibleValues;
27 }
28
29 @Override
30 public MapPutIfAbsentResponse encode(ValueEncoder encoder) {
31 return new MapPutIfAbsentResponse(wasPut,encoder.encode(previousValue),
32 encoder.encode(possibleMatches),
33 encoder.encode(possibleValues));
34 }
35
36 public StoredValue[] getPossibleMatches() {
37 return possibleMatches;
38 }
39 public Object[] getPossibleValues() {
40 return possibleValues;
41 }
42
43 public boolean wasPut() {
44 return wasPut;
45 }
46
47 public Object getPreviousValue() {
48 return previousValue;
49 }
50 @Override
51 public void visit(ValueVisitor visitor) {
52 visitor.visit(previousValue);
53 visitor.visit(possibleMatches);
54 visitor.visit(possibleValues);
55 }
56 }