class PartyMemberBase implements PartyMember {

  protected Party party;

  @Override
  public void joinedParty(Party party) {
    LOGGER.info("{} joins the party", this);
    this.party = party;
  }

  @Override
  public void partyAction(Action action) {
    LOGGER.info("{} {}", this, action.getDescription());
  }

  @Override
  public void act(Action action) {<FILL_FUNCTION_BODY>}

  @Override
  public abstract String toString();

}

    if (party != null) {
      LOGGER.info("{} {}", this, action);
      party.act(this, action);
    }
  
<no_super_class>