@Override @SuppressWarnings("unchecked") // safe since we check whether the type is assignable public <T> T create(Class<?> createdType) { // If we're creating a RemoteService, assume that the result of GWT.create is being assigned // to the async version of that service. Otherwise, assume it's being assigned to the same // type we're creating. Class<?> assignedType = RemoteService.class.isAssignableFrom(createdType) ? getAsyncType((Class<? extends RemoteService>) createdType) : createdType; // First check if we have a GwtMock for this exact being assigned to and use it if so. if (registeredMocks.containsKey(assignedType)) { return (T) registeredMocks.get(assignedType); } // Next check if we have a fake provider that can provide a fake for the type being created. T fake = (T) getFakeFromProviderMap(createdType, registeredProviders); if (fake != null) { return fake; } // If nothing has been registered, just return a new mock for the type being assigned. return (T) mock(assignedType, new ReturnsCustomMocks()); }
@Override @SuppressWarnings("unchecked") // safe since we check whether the type is assignable public <T> T create(Class<?> createdType) { // If we're creating a RemoteService, assume that the result of GWT.create is being assigned // to the async version of that service. Otherwise, assume it's being assigned to the same // type we're creating. Class<?> assignedType = RemoteService.class.isAssignableFrom(createdType) ? getAsyncType((Class<? extends RemoteService>) createdType) : createdType; // First check if we have a GwtMock for this exact being assigned to and use it if so. if (registeredMocks.containsKey(assignedType)) { return (T) registeredMocks.get(assignedType); } // Next check if we have a fake provider that can provide a fake for the type being created. T fake = (T) getFakeFromProviderMap(createdType, registeredProviders); if (fake != null) { return fake; } // If nothing has been registered, just return a new mock for the type being assigned. return (T) mock(assignedType, new ReturnsCustomMocks()); }