22 lines
664 B
Java
22 lines
664 B
Java
package tc.oc.pgm.goals;
|
|
|
|
import java.util.Optional;
|
|
import javax.annotation.Nullable;
|
|
|
|
import tc.oc.pgm.teams.TeamFactory;
|
|
|
|
/**
|
|
* Definition of a goal that may be "owned" by a particular team. The ramifications of
|
|
* ownership depend entirely on the type of goal. Some goals are pursued by their
|
|
* owner, some are defended by their owner. The only thing the base class does with
|
|
* the owner is store it and use it as part of the default ID.
|
|
*/
|
|
public interface OwnableGoalDefinition<G extends Goal<?>> extends GoalDefinition<G> {
|
|
|
|
Optional<TeamFactory> owner();
|
|
|
|
default @Nullable TeamFactory getOwner() {
|
|
return owner().orElse(null);
|
|
}
|
|
}
|