/** * Creates ApplicationObjects like NavigationHandler or StateManager and creates * the right wrapping chain of the ApplicationObjects known as the decorator pattern. * @param <T> * @param interfaceClass The class from which the implementation has to inherit from. * @param classNamesIterator All the class names of the actual ApplicationObject implementations * from the faces-config.xml. * @param defaultObject The default implementation for the given ApplicationObject. * @return * @since 1.0.1 */ public static <T> T buildApplicationObject(Class<T> interfaceClass, Collection<String> classNamesIterator, T defaultObject) { return buildApplicationObject(interfaceClass, null, null, classNamesIterator, defaultObject); }