blob: 3d5c3209195fa8ccfd8171ac554661776bcdc117 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.openejb.jee;
import org.metatype.sxc.jaxb.JAXBObject;
import org.metatype.sxc.jaxb.LifecycleCallback;
import org.metatype.sxc.jaxb.RuntimeContext;
import org.metatype.sxc.util.Attribute;
import org.metatype.sxc.util.XoXMLStreamReader;
import org.metatype.sxc.util.XoXMLStreamWriter;
import javax.xml.XMLConstants;
import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
import javax.xml.namespace.QName;
import java.util.ArrayList;
import java.util.List;
import static org.apache.openejb.jee.FacesAbsoluteOrdering$JAXB.readFacesAbsoluteOrdering;
import static org.apache.openejb.jee.FacesAbsoluteOrdering$JAXB.writeFacesAbsoluteOrdering;
import static org.apache.openejb.jee.FacesApplication$JAXB.readFacesApplication;
import static org.apache.openejb.jee.FacesApplication$JAXB.writeFacesApplication;
import static org.apache.openejb.jee.FacesBehavior$JAXB.readFacesBehavior;
import static org.apache.openejb.jee.FacesBehavior$JAXB.writeFacesBehavior;
import static org.apache.openejb.jee.FacesComponent$JAXB.readFacesComponent;
import static org.apache.openejb.jee.FacesComponent$JAXB.writeFacesComponent;
import static org.apache.openejb.jee.FacesConverter$JAXB.readFacesConverter;
import static org.apache.openejb.jee.FacesConverter$JAXB.writeFacesConverter;
import static org.apache.openejb.jee.FacesExtension$JAXB.readFacesExtension;
import static org.apache.openejb.jee.FacesExtension$JAXB.writeFacesExtension;
import static org.apache.openejb.jee.FacesFactory$JAXB.readFacesFactory;
import static org.apache.openejb.jee.FacesFactory$JAXB.writeFacesFactory;
import static org.apache.openejb.jee.FacesLifecycle$JAXB.readFacesLifecycle;
import static org.apache.openejb.jee.FacesLifecycle$JAXB.writeFacesLifecycle;
import static org.apache.openejb.jee.FacesManagedBean$JAXB.readFacesManagedBean;
import static org.apache.openejb.jee.FacesManagedBean$JAXB.writeFacesManagedBean;
import static org.apache.openejb.jee.FacesNavigationRule$JAXB.readFacesNavigationRule;
import static org.apache.openejb.jee.FacesNavigationRule$JAXB.writeFacesNavigationRule;
import static org.apache.openejb.jee.FacesOrdering$JAXB.readFacesOrdering;
import static org.apache.openejb.jee.FacesOrdering$JAXB.writeFacesOrdering;
import static org.apache.openejb.jee.FacesReferencedBean$JAXB.readFacesReferencedBean;
import static org.apache.openejb.jee.FacesReferencedBean$JAXB.writeFacesReferencedBean;
import static org.apache.openejb.jee.FacesRenderKit$JAXB.readFacesRenderKit;
import static org.apache.openejb.jee.FacesRenderKit$JAXB.writeFacesRenderKit;
import static org.apache.openejb.jee.FacesValidator$JAXB.readFacesValidator;
import static org.apache.openejb.jee.FacesValidator$JAXB.writeFacesValidator;
@SuppressWarnings({
"StringEquality"
})
public class FacesConfig$JAXB
extends JAXBObject<FacesConfig> {
public FacesConfig$JAXB() {
super(FacesConfig.class, new QName("http://java.sun.com/xml/ns/javaee".intern(), "faces-config".intern()), new QName("http://java.sun.com/xml/ns/javaee".intern(), "faces-configType".intern()), FacesApplication$JAXB.class, FacesOrdering$JAXB.class, FacesAbsoluteOrdering$JAXB.class, FacesFactory$JAXB.class, FacesComponent$JAXB.class, FacesConverter$JAXB.class, FacesManagedBean$JAXB.class, FacesNavigationRule$JAXB.class, FacesReferencedBean$JAXB.class, FacesRenderKit$JAXB.class, FacesLifecycle$JAXB.class, FacesValidator$JAXB.class, FacesBehavior$JAXB.class, FacesExtension$JAXB.class);
}
public static FacesConfig readFacesConfig(final XoXMLStreamReader reader, final RuntimeContext context)
throws Exception {
return _read(reader, context);
}
public static void writeFacesConfig(final XoXMLStreamWriter writer, final FacesConfig facesConfig, final RuntimeContext context)
throws Exception {
_write(writer, facesConfig, context);
}
public void write(final XoXMLStreamWriter writer, final FacesConfig facesConfig, final RuntimeContext context)
throws Exception {
_write(writer, facesConfig, context);
}
public final static FacesConfig _read(final XoXMLStreamReader reader, RuntimeContext context)
throws Exception {
// Check for xsi:nil
if (reader.isXsiNil()) {
return null;
}
if (context == null) {
context = new RuntimeContext();
}
final FacesConfig facesConfig = new FacesConfig();
context.beforeUnmarshal(facesConfig, LifecycleCallback.NONE);
List<FacesApplication> application = null;
List<FacesOrdering> ordering = null;
List<FacesAbsoluteOrdering> absoluteOrdering = null;
List<FacesFactory> factory = null;
List<FacesComponent> component = null;
List<FacesConverter> converter = null;
List<FacesManagedBean> managedBean = null;
List<String> name = null;
List<FacesNavigationRule> navigationRule = null;
List<FacesReferencedBean> referencedBean = null;
List<FacesRenderKit> renderKit = null;
List<FacesLifecycle> lifecycle = null;
List<FacesValidator> validator = null;
List<FacesBehavior> behavior = null;
List<FacesExtension> facesConfigExtension = null;
// Check xsi:type
final QName xsiType = reader.getXsiType();
if (xsiType != null) {
if (("faces-configType" != xsiType.getLocalPart()) || ("http://java.sun.com/xml/ns/javaee" != xsiType.getNamespaceURI())) {
return context.unexpectedXsiType(reader, FacesConfig.class);
}
}
// Read attributes
for (final Attribute attribute : reader.getAttributes()) {
if (("id" == attribute.getLocalName()) && (("" == attribute.getNamespace()) || (attribute.getNamespace() == null))) {
// ATTRIBUTE: id
final String id = Adapters.collapsedStringAdapterAdapter.unmarshal(attribute.getValue());
context.addXmlId(reader, id, facesConfig);
facesConfig.id = id;
} else if (("version" == attribute.getLocalName()) && (("" == attribute.getNamespace()) || (attribute.getNamespace() == null))) {
// ATTRIBUTE: version
facesConfig.version = Adapters.collapsedStringAdapterAdapter.unmarshal(attribute.getValue());
} else if (("metadata-complete" == attribute.getLocalName()) && (("" == attribute.getNamespace()) || (attribute.getNamespace() == null))) {
// ATTRIBUTE: metadataComplete
final Boolean metadataComplete = ("1".equals(attribute.getValue()) || "true".equals(attribute.getValue()));
facesConfig.metadataComplete = metadataComplete;
} else if (XMLConstants.W3C_XML_SCHEMA_INSTANCE_NS_URI != attribute.getNamespace()) {
context.unexpectedAttribute(attribute, new QName("", "id"), new QName("", "version"), new QName("", "metadata-complete"));
}
}
// Read elements
for (final XoXMLStreamReader elementReader : reader.getChildElements()) {
if (("application" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
// ELEMENT: application
final FacesApplication applicationItem = readFacesApplication(elementReader, context);
if (application == null) {
application = facesConfig.application;
if (application != null) {
application.clear();
} else {
application = new ArrayList<FacesApplication>();
}
}
application.add(applicationItem);
} else if (("ordering" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
// ELEMENT: ordering
final FacesOrdering orderingItem = readFacesOrdering(elementReader, context);
if (ordering == null) {
ordering = facesConfig.ordering;
if (ordering != null) {
ordering.clear();
} else {
ordering = new ArrayList<FacesOrdering>();
}
}
ordering.add(orderingItem);
} else if (("absolute-ordering" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
// ELEMENT: absoluteOrdering
final FacesAbsoluteOrdering absoluteOrderingItem = readFacesAbsoluteOrdering(elementReader, context);
if (absoluteOrdering == null) {
absoluteOrdering = facesConfig.absoluteOrdering;
if (absoluteOrdering != null) {
absoluteOrdering.clear();
} else {
absoluteOrdering = new ArrayList<FacesAbsoluteOrdering>();
}
}
absoluteOrdering.add(absoluteOrderingItem);
} else if (("factory" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
// ELEMENT: factory
final FacesFactory factoryItem = readFacesFactory(elementReader, context);
if (factory == null) {
factory = facesConfig.factory;
if (factory != null) {
factory.clear();
} else {
factory = new ArrayList<FacesFactory>();
}
}
factory.add(factoryItem);
} else if (("component" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
// ELEMENT: component
final FacesComponent componentItem = readFacesComponent(elementReader, context);
if (component == null) {
component = facesConfig.component;
if (component != null) {
component.clear();
} else {
component = new ArrayList<FacesComponent>();
}
}
component.add(componentItem);
} else if (("converter" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
// ELEMENT: converter
final FacesConverter converterItem = readFacesConverter(elementReader, context);
if (converter == null) {
converter = facesConfig.converter;
if (converter != null) {
converter.clear();
} else {
converter = new ArrayList<FacesConverter>();
}
}
converter.add(converterItem);
} else if (("managed-bean" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
// ELEMENT: managedBean
final FacesManagedBean managedBeanItem = readFacesManagedBean(elementReader, context);
if (managedBean == null) {
managedBean = facesConfig.managedBean;
if (managedBean != null) {
managedBean.clear();
} else {
managedBean = new ArrayList<FacesManagedBean>();
}
}
managedBean.add(managedBeanItem);
} else if (("name" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
// ELEMENT: name
String nameItemRaw = null;
if (!elementReader.isXsiNil()) {
nameItemRaw = elementReader.getElementAsString();
}
final String nameItem;
try {
nameItem = Adapters.collapsedStringAdapterAdapter.unmarshal(nameItemRaw);
} catch (final Exception e) {
context.xmlAdapterError(elementReader, CollapsedStringAdapter.class, String.class, String.class, e);
continue;
}
if (name == null) {
name = facesConfig.name;
if (name != null) {
name.clear();
} else {
name = new ArrayList<String>();
}
}
name.add(nameItem);
} else if (("navigation-rule" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
// ELEMENT: navigationRule
final FacesNavigationRule navigationRuleItem = readFacesNavigationRule(elementReader, context);
if (navigationRule == null) {
navigationRule = facesConfig.navigationRule;
if (navigationRule != null) {
navigationRule.clear();
} else {
navigationRule = new ArrayList<FacesNavigationRule>();
}
}
navigationRule.add(navigationRuleItem);
} else if (("referenced-bean" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
// ELEMENT: referencedBean
final FacesReferencedBean referencedBeanItem = readFacesReferencedBean(elementReader, context);
if (referencedBean == null) {
referencedBean = facesConfig.referencedBean;
if (referencedBean != null) {
referencedBean.clear();
} else {
referencedBean = new ArrayList<FacesReferencedBean>();
}
}
referencedBean.add(referencedBeanItem);
} else if (("render-kit" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
// ELEMENT: renderKit
final FacesRenderKit renderKitItem = readFacesRenderKit(elementReader, context);
if (renderKit == null) {
renderKit = facesConfig.renderKit;
if (renderKit != null) {
renderKit.clear();
} else {
renderKit = new ArrayList<FacesRenderKit>();
}
}
renderKit.add(renderKitItem);
} else if (("lifecycle" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
// ELEMENT: lifecycle
final FacesLifecycle lifecycleItem = readFacesLifecycle(elementReader, context);
if (lifecycle == null) {
lifecycle = facesConfig.lifecycle;
if (lifecycle != null) {
lifecycle.clear();
} else {
lifecycle = new ArrayList<FacesLifecycle>();
}
}
lifecycle.add(lifecycleItem);
} else if (("validator" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
// ELEMENT: validator
final FacesValidator validatorItem = readFacesValidator(elementReader, context);
if (validator == null) {
validator = facesConfig.validator;
if (validator != null) {
validator.clear();
} else {
validator = new ArrayList<FacesValidator>();
}
}
validator.add(validatorItem);
} else if (("behavior" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
// ELEMENT: behavior
final FacesBehavior behaviorItem = readFacesBehavior(elementReader, context);
if (behavior == null) {
behavior = facesConfig.behavior;
if (behavior != null) {
behavior.clear();
} else {
behavior = new ArrayList<FacesBehavior>();
}
}
behavior.add(behaviorItem);
} else if (("faces-config-extension" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
// ELEMENT: facesConfigExtension
final FacesExtension facesConfigExtensionItem = readFacesExtension(elementReader, context);
if (facesConfigExtension == null) {
facesConfigExtension = facesConfig.facesConfigExtension;
if (facesConfigExtension != null) {
facesConfigExtension.clear();
} else {
facesConfigExtension = new ArrayList<FacesExtension>();
}
}
facesConfigExtension.add(facesConfigExtensionItem);
} else if ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI()) {
// just here ATM to not prevent users to get JSF 2.2 feature because we can't read it
// TODO: read it if we need it (= classes to add to injectable classes, other file to parse to find them etc...)
} else {
context.unexpectedElement(elementReader, new QName("http://java.sun.com/xml/ns/javaee", "application"), new QName("http://java.sun.com/xml/ns/javaee", "ordering"), new QName("http://java.sun.com/xml/ns/javaee", "absolute-ordering"), new QName("http://java.sun.com/xml/ns/javaee", "factory"), new QName("http://java.sun.com/xml/ns/javaee", "component"), new QName("http://java.sun.com/xml/ns/javaee", "converter"), new QName("http://java.sun.com/xml/ns/javaee", "managed-bean"), new QName("http://java.sun.com/xml/ns/javaee", "name"), new QName("http://java.sun.com/xml/ns/javaee", "navigation-rule"), new QName("http://java.sun.com/xml/ns/javaee", "referenced-bean"), new QName("http://java.sun.com/xml/ns/javaee", "render-kit"), new QName("http://java.sun.com/xml/ns/javaee", "lifecycle"), new QName("http://java.sun.com/xml/ns/javaee", "validator"), new QName("http://java.sun.com/xml/ns/javaee", "behavior"), new QName("http://java.sun.com/xml/ns/javaee", "faces-config-extension"));
}
}
if (application != null) {
facesConfig.application = application;
}
if (ordering != null) {
facesConfig.ordering = ordering;
}
if (absoluteOrdering != null) {
facesConfig.absoluteOrdering = absoluteOrdering;
}
if (factory != null) {
facesConfig.factory = factory;
}
if (component != null) {
facesConfig.component = component;
}
if (converter != null) {
facesConfig.converter = converter;
}
if (managedBean != null) {
facesConfig.managedBean = managedBean;
}
if (name != null) {
facesConfig.name = name;
}
if (navigationRule != null) {
facesConfig.navigationRule = navigationRule;
}
if (referencedBean != null) {
facesConfig.referencedBean = referencedBean;
}
if (renderKit != null) {
facesConfig.renderKit = renderKit;
}
if (lifecycle != null) {
facesConfig.lifecycle = lifecycle;
}
if (validator != null) {
facesConfig.validator = validator;
}
if (behavior != null) {
facesConfig.behavior = behavior;
}
if (facesConfigExtension != null) {
facesConfig.facesConfigExtension = facesConfigExtension;
}
context.afterUnmarshal(facesConfig, LifecycleCallback.NONE);
return facesConfig;
}
public final FacesConfig read(final XoXMLStreamReader reader, final RuntimeContext context)
throws Exception {
return _read(reader, context);
}
public final static void _write(final XoXMLStreamWriter writer, final FacesConfig facesConfig, RuntimeContext context)
throws Exception {
if (facesConfig == null) {
writer.writeXsiNil();
return;
}
if (context == null) {
context = new RuntimeContext();
}
final String prefix = writer.getUniquePrefix("http://java.sun.com/xml/ns/javaee");
if (FacesConfig.class != facesConfig.getClass()) {
context.unexpectedSubclass(writer, facesConfig, FacesConfig.class);
return;
}
context.beforeMarshal(facesConfig, LifecycleCallback.NONE);
// ATTRIBUTE: id
final String idRaw = facesConfig.id;
if (idRaw != null) {
String id = null;
try {
id = Adapters.collapsedStringAdapterAdapter.marshal(idRaw);
} catch (final Exception e) {
context.xmlAdapterError(facesConfig, "id", CollapsedStringAdapter.class, String.class, String.class, e);
}
writer.writeAttribute("", "", "id", id);
}
// ATTRIBUTE: version
final String versionRaw = facesConfig.version;
if (versionRaw != null) {
String version = null;
try {
version = Adapters.collapsedStringAdapterAdapter.marshal(versionRaw);
} catch (final Exception e) {
context.xmlAdapterError(facesConfig, "version", CollapsedStringAdapter.class, String.class, String.class, e);
}
writer.writeAttribute("", "", "version", version);
}
// ATTRIBUTE: metadataComplete
final Boolean metadataComplete = facesConfig.metadataComplete;
if (metadataComplete != null) {
writer.writeAttribute("", "", "metadata-complete", Boolean.toString(metadataComplete));
}
// ELEMENT: application
final List<FacesApplication> application = facesConfig.application;
if (application != null) {
for (final FacesApplication applicationItem : application) {
writer.writeStartElement(prefix, "application", "http://java.sun.com/xml/ns/javaee");
if (applicationItem != null) {
writeFacesApplication(writer, applicationItem, context);
} else {
writer.writeXsiNil();
}
writer.writeEndElement();
}
}
// ELEMENT: ordering
final List<FacesOrdering> ordering = facesConfig.ordering;
if (ordering != null) {
for (final FacesOrdering orderingItem : ordering) {
writer.writeStartElement(prefix, "ordering", "http://java.sun.com/xml/ns/javaee");
if (orderingItem != null) {
writeFacesOrdering(writer, orderingItem, context);
} else {
writer.writeXsiNil();
}
writer.writeEndElement();
}
}
// ELEMENT: absoluteOrdering
final List<FacesAbsoluteOrdering> absoluteOrdering = facesConfig.absoluteOrdering;
if (absoluteOrdering != null) {
for (final FacesAbsoluteOrdering absoluteOrderingItem : absoluteOrdering) {
if (absoluteOrderingItem != null) {
writer.writeStartElement(prefix, "absolute-ordering", "http://java.sun.com/xml/ns/javaee");
writeFacesAbsoluteOrdering(writer, absoluteOrderingItem, context);
writer.writeEndElement();
}
}
}
// ELEMENT: factory
final List<FacesFactory> factory = facesConfig.factory;
if (factory != null) {
for (final FacesFactory factoryItem : factory) {
writer.writeStartElement(prefix, "factory", "http://java.sun.com/xml/ns/javaee");
if (factoryItem != null) {
writeFacesFactory(writer, factoryItem, context);
} else {
writer.writeXsiNil();
}
writer.writeEndElement();
}
}
// ELEMENT: component
final List<FacesComponent> component = facesConfig.component;
if (component != null) {
for (final FacesComponent componentItem : component) {
writer.writeStartElement(prefix, "component", "http://java.sun.com/xml/ns/javaee");
if (componentItem != null) {
writeFacesComponent(writer, componentItem, context);
} else {
writer.writeXsiNil();
}
writer.writeEndElement();
}
}
// ELEMENT: converter
final List<FacesConverter> converter = facesConfig.converter;
if (converter != null) {
for (final FacesConverter converterItem : converter) {
writer.writeStartElement(prefix, "converter", "http://java.sun.com/xml/ns/javaee");
if (converterItem != null) {
writeFacesConverter(writer, converterItem, context);
} else {
writer.writeXsiNil();
}
writer.writeEndElement();
}
}
// ELEMENT: managedBean
final List<FacesManagedBean> managedBean = facesConfig.managedBean;
if (managedBean != null) {
for (final FacesManagedBean managedBeanItem : managedBean) {
if (managedBeanItem != null) {
writer.writeStartElement(prefix, "managed-bean", "http://java.sun.com/xml/ns/javaee");
writeFacesManagedBean(writer, managedBeanItem, context);
writer.writeEndElement();
}
}
}
// ELEMENT: name
final List<String> nameRaw = facesConfig.name;
if (nameRaw != null) {
for (final String nameItem : nameRaw) {
String name = null;
try {
name = Adapters.collapsedStringAdapterAdapter.marshal(nameItem);
} catch (final Exception e) {
context.xmlAdapterError(facesConfig, "name", CollapsedStringAdapter.class, List.class, List.class, e);
}
writer.writeStartElement(prefix, "name", "http://java.sun.com/xml/ns/javaee");
if (name != null) {
writer.writeCharacters(name);
} else {
writer.writeXsiNil();
}
writer.writeEndElement();
}
}
// ELEMENT: navigationRule
final List<FacesNavigationRule> navigationRule = facesConfig.navigationRule;
if (navigationRule != null) {
for (final FacesNavigationRule navigationRuleItem : navigationRule) {
if (navigationRuleItem != null) {
writer.writeStartElement(prefix, "navigation-rule", "http://java.sun.com/xml/ns/javaee");
writeFacesNavigationRule(writer, navigationRuleItem, context);
writer.writeEndElement();
}
}
}
// ELEMENT: referencedBean
final List<FacesReferencedBean> referencedBean = facesConfig.referencedBean;
if (referencedBean != null) {
for (final FacesReferencedBean referencedBeanItem : referencedBean) {
if (referencedBeanItem != null) {
writer.writeStartElement(prefix, "referenced-bean", "http://java.sun.com/xml/ns/javaee");
writeFacesReferencedBean(writer, referencedBeanItem, context);
writer.writeEndElement();
}
}
}
// ELEMENT: renderKit
final List<FacesRenderKit> renderKit = facesConfig.renderKit;
if (renderKit != null) {
for (final FacesRenderKit renderKitItem : renderKit) {
if (renderKitItem != null) {
writer.writeStartElement(prefix, "render-kit", "http://java.sun.com/xml/ns/javaee");
writeFacesRenderKit(writer, renderKitItem, context);
writer.writeEndElement();
}
}
}
// ELEMENT: lifecycle
final List<FacesLifecycle> lifecycle = facesConfig.lifecycle;
if (lifecycle != null) {
for (final FacesLifecycle lifecycleItem : lifecycle) {
writer.writeStartElement(prefix, "lifecycle", "http://java.sun.com/xml/ns/javaee");
if (lifecycleItem != null) {
writeFacesLifecycle(writer, lifecycleItem, context);
} else {
writer.writeXsiNil();
}
writer.writeEndElement();
}
}
// ELEMENT: validator
final List<FacesValidator> validator = facesConfig.validator;
if (validator != null) {
for (final FacesValidator validatorItem : validator) {
writer.writeStartElement(prefix, "validator", "http://java.sun.com/xml/ns/javaee");
if (validatorItem != null) {
writeFacesValidator(writer, validatorItem, context);
} else {
writer.writeXsiNil();
}
writer.writeEndElement();
}
}
// ELEMENT: behavior
final List<FacesBehavior> behavior = facesConfig.behavior;
if (behavior != null) {
for (final FacesBehavior behaviorItem : behavior) {
writer.writeStartElement(prefix, "behavior", "http://java.sun.com/xml/ns/javaee");
if (behaviorItem != null) {
writeFacesBehavior(writer, behaviorItem, context);
} else {
writer.writeXsiNil();
}
writer.writeEndElement();
}
}
// ELEMENT: facesConfigExtension
final List<FacesExtension> facesConfigExtension = facesConfig.facesConfigExtension;
if (facesConfigExtension != null) {
for (final FacesExtension facesConfigExtensionItem : facesConfigExtension) {
if (facesConfigExtensionItem != null) {
writer.writeStartElement(prefix, "faces-config-extension", "http://java.sun.com/xml/ns/javaee");
writeFacesExtension(writer, facesConfigExtensionItem, context);
writer.writeEndElement();
}
}
}
context.afterMarshal(facesConfig, LifecycleCallback.NONE);
}
}