in container/openejb-jee-accessors/src/main/java/org/apache/openejb/jee/AssemblyDescriptor$JAXB.java [80:243]
public static final AssemblyDescriptor _read(XoXMLStreamReader reader, RuntimeContext context)
throws Exception
{
// Check for xsi:nil
if (reader.isXsiNil()) {
return null;
}
if (context == null) {
context = new RuntimeContext();
}
AssemblyDescriptor assemblyDescriptor = new AssemblyDescriptor();
context.beforeUnmarshal(assemblyDescriptor, LifecycleCallback.NONE);
List<SecurityRole> securityRole = null;
List<MethodPermission> methodPermission = null;
List<ContainerTransaction> containerTransaction = null;
List<ContainerConcurrency> containerConcurrency = null;
List<InterceptorBinding> interceptorBinding = null;
List<MessageDestination> messageDestination = null;
KeyedCollection<String, ApplicationException> applicationException = null;
// Check xsi:type
QName xsiType = reader.getXsiType();
if (xsiType!= null) {
if (("assembly-descriptorType"!= xsiType.getLocalPart())||("http://java.sun.com/xml/ns/javaee"!= xsiType.getNamespaceURI())) {
return context.unexpectedXsiType(reader, AssemblyDescriptor.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, assemblyDescriptor);
assemblyDescriptor.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 (("security-role" == elementReader.getLocalName())&&("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
// ELEMENT: securityRole
SecurityRole securityRoleItem = readSecurityRole(elementReader, context);
if (securityRole == null) {
securityRole = assemblyDescriptor.securityRole;
if (securityRole!= null) {
securityRole.clear();
} else {
securityRole = new ArrayList<>();
}
}
securityRole.add(securityRoleItem);
} else if (("method-permission" == elementReader.getLocalName())&&("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
// ELEMENT: methodPermission
MethodPermission methodPermissionItem = readMethodPermission(elementReader, context);
if (methodPermission == null) {
methodPermission = assemblyDescriptor.methodPermission;
if (methodPermission!= null) {
methodPermission.clear();
} else {
methodPermission = new ArrayList<>();
}
}
methodPermission.add(methodPermissionItem);
} else if (("container-transaction" == elementReader.getLocalName())&&("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
// ELEMENT: containerTransaction
ContainerTransaction containerTransactionItem = readContainerTransaction(elementReader, context);
if (containerTransaction == null) {
containerTransaction = assemblyDescriptor.containerTransaction;
if (containerTransaction!= null) {
containerTransaction.clear();
} else {
containerTransaction = new ArrayList<>();
}
}
containerTransaction.add(containerTransactionItem);
} else if (("container-concurrency" == elementReader.getLocalName())&&("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
// ELEMENT: containerConcurrency
ContainerConcurrency containerConcurrencyItem = readContainerConcurrency(elementReader, context);
if (containerConcurrency == null) {
containerConcurrency = assemblyDescriptor.containerConcurrency;
if (containerConcurrency!= null) {
containerConcurrency.clear();
} else {
containerConcurrency = new ArrayList<>();
}
}
containerConcurrency.add(containerConcurrencyItem);
} else if (("interceptor-binding" == elementReader.getLocalName())&&("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
// ELEMENT: interceptorBinding
InterceptorBinding interceptorBindingItem = readInterceptorBinding(elementReader, context);
if (interceptorBinding == null) {
interceptorBinding = assemblyDescriptor.interceptorBinding;
if (interceptorBinding!= null) {
interceptorBinding.clear();
} else {
interceptorBinding = new ArrayList<>();
}
}
interceptorBinding.add(interceptorBindingItem);
} else if (("message-destination" == elementReader.getLocalName())&&("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
// ELEMENT: messageDestination
MessageDestination messageDestinationItem = readMessageDestination(elementReader, context);
if (messageDestination == null) {
messageDestination = assemblyDescriptor.messageDestination;
if (messageDestination!= null) {
messageDestination.clear();
} else {
messageDestination = new ArrayList<>();
}
}
messageDestination.add(messageDestinationItem);
} else if (("exclude-list" == elementReader.getLocalName())&&("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
// ELEMENT: excludeList
ExcludeList excludeList = readExcludeList(elementReader, context);
assemblyDescriptor.excludeList = excludeList;
} else if (("application-exception" == elementReader.getLocalName())&&("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
// ELEMENT: applicationException
ApplicationException applicationExceptionItem = readApplicationException(elementReader, context);
if (applicationException == null) {
applicationException = assemblyDescriptor.applicationException;
if (applicationException!= null) {
applicationException.clear();
} else {
applicationException = new KeyedCollection<>();
}
}
applicationException.add(applicationExceptionItem);
} else {
context.unexpectedElement(elementReader, new QName("http://java.sun.com/xml/ns/javaee", "security-role"), new QName("http://java.sun.com/xml/ns/javaee", "method-permission"), new QName("http://java.sun.com/xml/ns/javaee", "container-transaction"), new QName("http://java.sun.com/xml/ns/javaee", "container-concurrency"), new QName("http://java.sun.com/xml/ns/javaee", "interceptor-binding"), new QName("http://java.sun.com/xml/ns/javaee", "message-destination"), new QName("http://java.sun.com/xml/ns/javaee", "exclude-list"), new QName("http://java.sun.com/xml/ns/javaee", "application-exception"));
}
}
if (securityRole!= null) {
assemblyDescriptor.securityRole = securityRole;
}
if (methodPermission!= null) {
assemblyDescriptor.methodPermission = methodPermission;
}
if (containerTransaction!= null) {
assemblyDescriptor.containerTransaction = containerTransaction;
}
if (containerConcurrency!= null) {
assemblyDescriptor.containerConcurrency = containerConcurrency;
}
if (interceptorBinding!= null) {
assemblyDescriptor.interceptorBinding = interceptorBinding;
}
if (messageDestination!= null) {
assemblyDescriptor.messageDestination = messageDestination;
}
if (applicationException!= null) {
assemblyDescriptor.applicationException = applicationException;
}
context.afterUnmarshal(assemblyDescriptor, LifecycleCallback.NONE);
return assemblyDescriptor;
}