1 | package geniusweb.actions;
|
---|
2 |
|
---|
3 | import com.fasterxml.jackson.annotation.JsonSubTypes;
|
---|
4 | import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
---|
5 | import com.fasterxml.jackson.annotation.JsonTypeInfo.As;
|
---|
6 | import com.fasterxml.jackson.annotation.JsonTypeInfo.Id;
|
---|
7 |
|
---|
8 | /**
|
---|
9 | * An action represents a "promise" made by a participant in the negotiation. It
|
---|
10 | * can not be retracted and is immutable. But it can be followed by other
|
---|
11 | * actions that override it or make it outdated.
|
---|
12 | */
|
---|
13 | @JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = As.WRAPPER_OBJECT)
|
---|
14 | @JsonSubTypes({ @JsonSubTypes.Type(value = EndNegotiation.class),
|
---|
15 | @JsonSubTypes.Type(value = Offer.class),
|
---|
16 | @JsonSubTypes.Type(value = Accept.class),
|
---|
17 | @JsonSubTypes.Type(value = Comparison.class),
|
---|
18 | @JsonSubTypes.Type(value = ElicitComparison.class),
|
---|
19 | @JsonSubTypes.Type(value = Vote.class),
|
---|
20 | @JsonSubTypes.Type(value = Votes.class),
|
---|
21 | @JsonSubTypes.Type(value = VoteWithValue.class),
|
---|
22 | @JsonSubTypes.Type(value = VotesWithValue.class),
|
---|
23 | @JsonSubTypes.Type(value = LearningDone.class) })
|
---|
24 | public interface Action {
|
---|
25 | /**
|
---|
26 | *
|
---|
27 | * @return the {@link Id} of the actor of this action.
|
---|
28 | */
|
---|
29 | PartyId getActor();
|
---|
30 |
|
---|
31 | }
|
---|