package com.google.sitebricks.routing; import com.google.inject.Inject; import com.google.inject.Provider; import com.google.sitebricks.headless.Reply; import com.google.sitebricks.headless.Request; import java.util.Map; /** * A simple action that takes a request and returns a Reply which * a subclass needs to provide. * * @author dhanji@gmail.com (Dhanji R. Prasanna) */ public abstract class ServiceAction implements Action { @Inject private Provider<Request> requestProvider; @Override public boolean shouldCall(Request request) { return true; } @Override public final Object call(Request request, Object page, Map<String, String> map) { return call(requestProvider.get(), map); } protected abstract Reply<?> call(Request request, Map<String, String> pathFragments); }