[42] | 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 | }
|
---|