class AbstractActivity implements Activity {

    @Override
    public void onShutdown() {
        if (this.place == null) {
            throw new IllegalStateException("Activity " + this + " has not been started");
        }
        if (open) {
            throw new IllegalStateException("Activity " + this + " is open");
        }
        this.place = null;
    }

    public  AbstractActivity(final PlaceManager placeManager);

}