public static final FacesApplication _read()

in container/openejb-jee-accessors/src/main/java/org/apache/openejb/jee/FacesApplication$JAXB.java [74:452]


    public static final FacesApplication _read(XoXMLStreamReader reader, RuntimeContext context)
        throws Exception
    {

        // Check for xsi:nil
        if (reader.isXsiNil()) {
            return null;
        }

        if (context == null) {
            context = new RuntimeContext();
        }

        FacesApplication facesApplication = new FacesApplication();
        context.beforeUnmarshal(facesApplication, LifecycleCallback.NONE);

        List<String> actionListener = null;
        List<String> defaultRenderKitId = null;
        List<String> messageBundle = null;
        List<String> navigationHandler = null;
        List<String> viewHandler = null;
        List<String> stateManager = null;
        List<String> elResolver = null;
        List<String> propertyResolver = null;
        List<String> variableResolver = null;
        List<String> resourceHandler = null;
        List<FacesSystemEventListener> systemEventListener = null;
        List<FacesLocaleConfig> localeConfig = null;
        List<FacesApplicationExtension> applicationExtension = null;
        List<FacesValidator> defaultValidators = null;
        List<Object> others = null;

        // Check xsi:type
        QName xsiType = reader.getXsiType();
        if (xsiType!= null) {
            if (("faces-config-applicationType"!= xsiType.getLocalPart())||("http://java.sun.com/xml/ns/javaee"!= xsiType.getNamespaceURI())) {
                return context.unexpectedXsiType(reader, FacesApplication.class);
            }
        }

        // Read attributes
        for (Attribute attribute: reader.getAttributes()) {
            if (("id" == attribute.getLocalName())&&(("" == attribute.getNamespace())||(attribute.getNamespace() == null))) {
                // ATTRIBUTE: id
                String id = Adapters.collapsedStringAdapterAdapter.unmarshal(attribute.getValue());
                context.addXmlId(reader, id, facesApplication);
                facesApplication.id = id;
            } else if (XMLConstants.W3C_XML_SCHEMA_INSTANCE_NS_URI!= attribute.getNamespace()) {
                context.unexpectedAttribute(attribute, new QName("", "id"));
            }
        }

        // Read elements
        for (XoXMLStreamReader elementReader: reader.getChildElements()) {
            if (("action-listener" == elementReader.getLocalName())&&("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
                // ELEMENT: actionListener
                String actionListenerItemRaw = elementReader.getElementText();

                String actionListenerItem;
                try {
                    actionListenerItem = Adapters.collapsedStringAdapterAdapter.unmarshal(actionListenerItemRaw);
                } catch (Exception e) {
                    context.xmlAdapterError(elementReader, CollapsedStringAdapter.class, String.class, String.class, e);
                    continue;
                }

                if (actionListener == null) {
                    actionListener = facesApplication.actionListener;
                    if (actionListener!= null) {
                        actionListener.clear();
                    } else {
                        actionListener = new ArrayList<>();
                    }
                }
                actionListener.add(actionListenerItem);
            } else if (("default-render-kit-id" == elementReader.getLocalName())&&("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
                // ELEMENT: defaultRenderKitId
                String defaultRenderKitIdItemRaw = elementReader.getElementText();

                String defaultRenderKitIdItem;
                try {
                    defaultRenderKitIdItem = Adapters.collapsedStringAdapterAdapter.unmarshal(defaultRenderKitIdItemRaw);
                } catch (Exception e) {
                    context.xmlAdapterError(elementReader, CollapsedStringAdapter.class, String.class, String.class, e);
                    continue;
                }

                if (defaultRenderKitId == null) {
                    defaultRenderKitId = facesApplication.defaultRenderKitId;
                    if (defaultRenderKitId!= null) {
                        defaultRenderKitId.clear();
                    } else {
                        defaultRenderKitId = new ArrayList<>();
                    }
                }
                defaultRenderKitId.add(defaultRenderKitIdItem);
            } else if (("message-bundle" == elementReader.getLocalName())&&("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
                // ELEMENT: messageBundle
                String messageBundleItemRaw = elementReader.getElementText();

                String messageBundleItem;
                try {
                    messageBundleItem = Adapters.collapsedStringAdapterAdapter.unmarshal(messageBundleItemRaw);
                } catch (Exception e) {
                    context.xmlAdapterError(elementReader, CollapsedStringAdapter.class, String.class, String.class, e);
                    continue;
                }

                if (messageBundle == null) {
                    messageBundle = facesApplication.messageBundle;
                    if (messageBundle!= null) {
                        messageBundle.clear();
                    } else {
                        messageBundle = new ArrayList<>();
                    }
                }
                messageBundle.add(messageBundleItem);
            } else if (("navigation-handler" == elementReader.getLocalName())&&("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
                // ELEMENT: navigationHandler
                String navigationHandlerItemRaw = elementReader.getElementText();

                String navigationHandlerItem;
                try {
                    navigationHandlerItem = Adapters.collapsedStringAdapterAdapter.unmarshal(navigationHandlerItemRaw);
                } catch (Exception e) {
                    context.xmlAdapterError(elementReader, CollapsedStringAdapter.class, String.class, String.class, e);
                    continue;
                }

                if (navigationHandler == null) {
                    navigationHandler = facesApplication.navigationHandler;
                    if (navigationHandler!= null) {
                        navigationHandler.clear();
                    } else {
                        navigationHandler = new ArrayList<>();
                    }
                }
                navigationHandler.add(navigationHandlerItem);
            } else if (("view-handler" == elementReader.getLocalName())&&("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
                // ELEMENT: viewHandler
                String viewHandlerItemRaw = elementReader.getElementText();

                String viewHandlerItem;
                try {
                    viewHandlerItem = Adapters.collapsedStringAdapterAdapter.unmarshal(viewHandlerItemRaw);
                } catch (Exception e) {
                    context.xmlAdapterError(elementReader, CollapsedStringAdapter.class, String.class, String.class, e);
                    continue;
                }

                if (viewHandler == null) {
                    viewHandler = facesApplication.viewHandler;
                    if (viewHandler!= null) {
                        viewHandler.clear();
                    } else {
                        viewHandler = new ArrayList<>();
                    }
                }
                viewHandler.add(viewHandlerItem);
            } else if (("state-manager" == elementReader.getLocalName())&&("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
                // ELEMENT: stateManager
                String stateManagerItemRaw = elementReader.getElementText();

                String stateManagerItem;
                try {
                    stateManagerItem = Adapters.collapsedStringAdapterAdapter.unmarshal(stateManagerItemRaw);
                } catch (Exception e) {
                    context.xmlAdapterError(elementReader, CollapsedStringAdapter.class, String.class, String.class, e);
                    continue;
                }

                if (stateManager == null) {
                    stateManager = facesApplication.stateManager;
                    if (stateManager!= null) {
                        stateManager.clear();
                    } else {
                        stateManager = new ArrayList<>();
                    }
                }
                stateManager.add(stateManagerItem);
            } else if (("el-resolver" == elementReader.getLocalName())&&("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
                // ELEMENT: elResolver
                String elResolverItemRaw = elementReader.getElementText();

                String elResolverItem;
                try {
                    elResolverItem = Adapters.collapsedStringAdapterAdapter.unmarshal(elResolverItemRaw);
                } catch (Exception e) {
                    context.xmlAdapterError(elementReader, CollapsedStringAdapter.class, String.class, String.class, e);
                    continue;
                }

                if (elResolver == null) {
                    elResolver = facesApplication.elResolver;
                    if (elResolver!= null) {
                        elResolver.clear();
                    } else {
                        elResolver = new ArrayList<>();
                    }
                }
                elResolver.add(elResolverItem);
            } else if (("property-resolver" == elementReader.getLocalName())&&("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
                // ELEMENT: propertyResolver
                String propertyResolverItemRaw = elementReader.getElementText();

                String propertyResolverItem;
                try {
                    propertyResolverItem = Adapters.collapsedStringAdapterAdapter.unmarshal(propertyResolverItemRaw);
                } catch (Exception e) {
                    context.xmlAdapterError(elementReader, CollapsedStringAdapter.class, String.class, String.class, e);
                    continue;
                }

                if (propertyResolver == null) {
                    propertyResolver = facesApplication.propertyResolver;
                    if (propertyResolver!= null) {
                        propertyResolver.clear();
                    } else {
                        propertyResolver = new ArrayList<>();
                    }
                }
                propertyResolver.add(propertyResolverItem);
            } else if (("variable-resolver" == elementReader.getLocalName())&&("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
                // ELEMENT: variableResolver
                String variableResolverItemRaw = elementReader.getElementText();

                String variableResolverItem;
                try {
                    variableResolverItem = Adapters.collapsedStringAdapterAdapter.unmarshal(variableResolverItemRaw);
                } catch (Exception e) {
                    context.xmlAdapterError(elementReader, CollapsedStringAdapter.class, String.class, String.class, e);
                    continue;
                }

                if (variableResolver == null) {
                    variableResolver = facesApplication.variableResolver;
                    if (variableResolver!= null) {
                        variableResolver.clear();
                    } else {
                        variableResolver = new ArrayList<>();
                    }
                }
                variableResolver.add(variableResolverItem);
            } else if (("resource-handler" == elementReader.getLocalName())&&("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
                // ELEMENT: resourceHandler
                String resourceHandlerItemRaw = elementReader.getElementText();

                String resourceHandlerItem;
                try {
                    resourceHandlerItem = Adapters.collapsedStringAdapterAdapter.unmarshal(resourceHandlerItemRaw);
                } catch (Exception e) {
                    context.xmlAdapterError(elementReader, CollapsedStringAdapter.class, String.class, String.class, e);
                    continue;
                }

                if (resourceHandler == null) {
                    resourceHandler = facesApplication.resourceHandler;
                    if (resourceHandler!= null) {
                        resourceHandler.clear();
                    } else {
                        resourceHandler = new ArrayList<>();
                    }
                }
                resourceHandler.add(resourceHandlerItem);
            } else if (("system-event-listener" == elementReader.getLocalName())&&("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
                // ELEMENT: systemEventListener
                FacesSystemEventListener systemEventListenerItem = readFacesSystemEventListener(elementReader, context);
                if (systemEventListener == null) {
                    systemEventListener = facesApplication.systemEventListener;
                    if (systemEventListener!= null) {
                        systemEventListener.clear();
                    } else {
                        systemEventListener = new ArrayList<>();
                    }
                }
                systemEventListener.add(systemEventListenerItem);
            } else if (("locale-config" == elementReader.getLocalName())&&("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
                // ELEMENT: localeConfig
                FacesLocaleConfig localeConfigItem = readFacesLocaleConfig(elementReader, context);
                if (localeConfig == null) {
                    localeConfig = facesApplication.localeConfig;
                    if (localeConfig!= null) {
                        localeConfig.clear();
                    } else {
                        localeConfig = new ArrayList<>();
                    }
                }
                localeConfig.add(localeConfigItem);
            } else if (("resource-bundle" == elementReader.getLocalName())&&("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
                // ELEMENT: resourceBundle
                FacesApplicationResourceBundle resourceBundle = readFacesApplicationResourceBundle(elementReader, context);
                facesApplication.resourceBundle = resourceBundle;
            } else if (("application-extension" == elementReader.getLocalName())&&("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
                // ELEMENT: applicationExtension
                FacesApplicationExtension applicationExtensionItem = readFacesApplicationExtension(elementReader, context);
                if (applicationExtension == null) {
                    applicationExtension = facesApplication.applicationExtension;
                    if (applicationExtension!= null) {
                        applicationExtension.clear();
                    } else {
                        applicationExtension = new ArrayList<>();
                    }
                }
                applicationExtension.add(applicationExtensionItem);
            } else if (("default-validators" == elementReader.getLocalName())&&("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
                // ELEMENT: defaultValidators
                FacesValidator defaultValidatorsItem = readFacesValidator(elementReader, context);
                if (defaultValidators == null) {
                    defaultValidators = facesApplication.defaultValidators;
                    if (defaultValidators!= null) {
                        defaultValidators.clear();
                    } else {
                        defaultValidators = new ArrayList<>();
                    }
                }
                defaultValidators.add(defaultValidatorsItem);
            } else {
                // ELEMENT_REF: others
                if (others == null) {
                    others = facesApplication.others;
                    if (others!= null) {
                        others.clear();
                    } else {
                        others = new ArrayList<>();
                    }
                }
                others.add(context.readXmlAny(elementReader, Object.class, false));
            }
        }
        if (actionListener!= null) {
            facesApplication.actionListener = actionListener;
        }
        if (defaultRenderKitId!= null) {
            facesApplication.defaultRenderKitId = defaultRenderKitId;
        }
        if (messageBundle!= null) {
            facesApplication.messageBundle = messageBundle;
        }
        if (navigationHandler!= null) {
            facesApplication.navigationHandler = navigationHandler;
        }
        if (viewHandler!= null) {
            facesApplication.viewHandler = viewHandler;
        }
        if (stateManager!= null) {
            facesApplication.stateManager = stateManager;
        }
        if (elResolver!= null) {
            facesApplication.elResolver = elResolver;
        }
        if (propertyResolver!= null) {
            facesApplication.propertyResolver = propertyResolver;
        }
        if (variableResolver!= null) {
            facesApplication.variableResolver = variableResolver;
        }
        if (resourceHandler!= null) {
            facesApplication.resourceHandler = resourceHandler;
        }
        if (systemEventListener!= null) {
            facesApplication.systemEventListener = systemEventListener;
        }
        if (localeConfig!= null) {
            facesApplication.localeConfig = localeConfig;
        }
        if (applicationExtension!= null) {
            facesApplication.applicationExtension = applicationExtension;
        }
        if (defaultValidators!= null) {
            facesApplication.defaultValidators = defaultValidators;
        }
        if (others!= null) {
            facesApplication.others = others;
        }

        context.afterUnmarshal(facesApplication, LifecycleCallback.NONE);

        return facesApplication;
    }