package org.etk.core.rest; import org.etk.core.rest.impl.ApplicationContext; import org.etk.core.rest.impl.ObjectFactory; import org.etk.core.rest.impl.ObjectModel; /** * Provide object instance of components that support singleton lifecycle. * * @param <T> */ public class SingletonObjectFactory<T extends ObjectModel> implements ObjectFactory<T> { /** * @see ObjectModel. */ protected final T model; /** * Component instance. */ protected final Object object; /** * @param model ObjectMode * @param object component instance */ public SingletonObjectFactory(T model, Object object) { this.model = model; this.object = object; } /** * {@inheritDoc} */ public Object getInstance(ApplicationContext context) { // prepared object instance return object; } /** * {@inheritDoc} */ public T getObjectModel() { return model; } }