package org.jrebirth.af.core.ui.fxml; import org.jrebirth.af.api.log.JRLogger; import org.jrebirth.af.api.ui.Model; import org.jrebirth.af.api.ui.View; import org.jrebirth.af.api.ui.fxml.FXMLController; import org.jrebirth.af.core.log.JRLoggerFactory; /** * The class <strong>DefaultFXMLControllerFactory</strong>. * * @author Sébastien Bordes */ public class DefaultFXMLControllerFactory extends AbstractFXMLControllerFactory { /** The class logger. */ private static final JRLogger LOGGER = JRLoggerFactory.getLogger(DefaultFXMLControllerFactory.class); /** * {@inheritDoc} */ @SuppressWarnings("unchecked") @Override public Object call(final Class<?> controllerClass) { FXMLController<Model, View<Model, ?, ?>> controller = null; try { controller = (FXMLController<Model, View<Model, ?, ?>>) controllerClass.newInstance(); controller.setModel(getRelatedModel()); } catch (InstantiationException | IllegalAccessException e) { LOGGER.log(FXMLMessages.DEFAULT_CTRLR_CREATION_ERROR, e, e.getMessage()); } return controller; } }