package com.google.inject.servlet; import java.io.Closeable; /** Object that can be used to apply a request scope to a block of code. */ public interface RequestScoper { /** * Opens up the request scope until the returned object is closed. Implementations should ensure * (e.g. by blocking) that multiple threads cannot open the same request scope concurrently. It is * allowable to open the same request scope on the same thread, as long as open/close calls are * correctly nested. */ CloseableScope open(); /** Closeable subclass that does not throw any exceptions from close. */ public interface CloseableScope extends Closeable { @Override void close(); } }