package <%= managed_package %>;

import javax.inject.Inject; import javax.inject.Singleton;

<% if options -%> import <%= models_package %>.User;

import com.google.gwt.place.shared.Place;

import <%= gwt_rails_package %>.places.RestfulPlace; <% end -%> import <%= gwt_rails_package %>.places.RestfulPlaceHistoryMapper; <% if options -%> import <%= gwt_rails_package %>.session.SessionManager; <% end -%>

@Singleton public class <%= application_name %>PlaceHistoryMapper extends RestfulPlaceHistoryMapper { <% if options -%>

private final SessionManager<User> manager;

<% end -%>

@Inject
public <%= application_name %>PlaceHistoryMapper(<% if options[:session] -%>SessionManager<User> manager<% end -%>){

<% if options -%>

this.manager = manager;

<% end -%>

}

<% if options -%>

@Override
public Place getPlace(String token) {
    RestfulPlace<?, ?> place = (RestfulPlace<?, ?>) super.getPlace(token);
    // place needs to be different on the level of equals in order to trigger an activity
    place.hasSession = manager.hasSession(); 
    return place;
}

<% end -%> }