public <T extends Ability> Actor whoCan(T doSomething) { return can(doSomething); }
public Actor actorNamed(String actorName, Ability... abilities) { if (! actors.containsKey(actorName)) { Actor newActor = Actor.named(actorName); for(Ability doSomething : abilities) { newActor.can(doSomething); } assignGeneralAbilitiesTo(newActor); actors.put(actorName, newActor); } return actors.get(actorName); }
@Override public Actor actorNamed(String actorName, Ability... abilities) { Actor newActor = super.actorNamed(actorName, abilities); if (newActor.abilityTo(BrowseTheWeb.class) == null) { newActor.can(BrowseTheWeb.with(theDefaulteBrowserFor(actorName))); } return newActor; }