package com.asayama.gwt.angular.client; import com.google.gwt.core.client.GWT; /** * Provides a default implementation of {@code Service} {@link Factory} * interface. This implementation uses {@link ServiceCreator} class, which is a * generated class, to instantiate {@link Service} object. Services created * this way are expected to support default constructor that is publicly * visible. * * @author kyoken74 * @param <S> Service type to be created by this factory. * @see AbstractModule#service(Class) */ public class DefaultFactory<S extends Service> implements Factory<S> { private final Class<S> klass; public DefaultFactory(Class<S> klass) { this.klass = klass; } @Override public S create() { ServiceCreator creator = GWT.create(ServiceCreator.class); return creator.create(this.klass); } @Override public Class<S> getServiceClass() { return klass; } @Override public void onFactoryLoad() { // noop by default } }