in container/openejb-jee-accessors/src/main/java/org/apache/openejb/jee/TldTaglib$JAXB.java [80:312]
public static final TldTaglib _read(XoXMLStreamReader reader, RuntimeContext context)
throws Exception
{
// Check for xsi:nil
if (reader.isXsiNil()) {
return null;
}
if (context == null) {
context = new RuntimeContext();
}
TldTaglib tldTaglib = new TldTaglib();
context.beforeUnmarshal(tldTaglib, LifecycleCallback.NONE);
ArrayList<Text> descriptions = null;
ArrayList<Text> displayNames = null;
LocalCollection<Icon> icon = null;
List<Listener> listener = null;
List<Tag> tag = null;
List<TagFile> tagFile = null;
List<Function> function = null;
List<TldExtension> taglibExtension = null;
// Check xsi:type
QName xsiType = reader.getXsiType();
if (xsiType!= null) {
if (("tldTaglibType"!= xsiType.getLocalPart())||("http://java.sun.com/xml/ns/javaee"!= xsiType.getNamespaceURI())) {
return context.unexpectedXsiType(reader, TldTaglib.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, tldTaglib);
tldTaglib.id = id;
} else if (("version" == attribute.getLocalName())&&(("" == attribute.getNamespace())||(attribute.getNamespace() == null))) {
// ATTRIBUTE: version
tldTaglib.version = Adapters.collapsedStringAdapterAdapter.unmarshal(attribute.getValue());
} else if (XMLConstants.W3C_XML_SCHEMA_INSTANCE_NS_URI!= attribute.getNamespace()) {
context.unexpectedAttribute(attribute, new QName("", "id"), new QName("", "version"));
}
}
// Read elements
for (XoXMLStreamReader elementReader: reader.getChildElements()) {
if (("description" == elementReader.getLocalName())&&("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
// ELEMENT: descriptions
Text descriptionsItem = readText(elementReader, context);
if (descriptions == null) {
descriptions = new ArrayList<>();
}
descriptions.add(descriptionsItem);
} else if (("display-name" == elementReader.getLocalName())&&("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
// ELEMENT: displayNames
Text displayNamesItem = readText(elementReader, context);
if (displayNames == null) {
displayNames = new ArrayList<>();
}
displayNames.add(displayNamesItem);
} else if (("icon" == elementReader.getLocalName())&&("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
// ELEMENT: icon
Icon iconItem = readIcon(elementReader, context);
if (icon == null) {
icon = tldTaglib.icon;
if (icon!= null) {
icon.clear();
} else {
icon = new LocalCollection<>();
}
}
icon.add(iconItem);
} else if (("tlib-version" == elementReader.getLocalName())&&("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
// ELEMENT: tlibVersion
String tlibVersionRaw = elementReader.getElementText();
String tlibVersion;
try {
tlibVersion = Adapters.collapsedStringAdapterAdapter.unmarshal(tlibVersionRaw);
} catch (Exception e) {
context.xmlAdapterError(elementReader, CollapsedStringAdapter.class, String.class, String.class, e);
continue;
}
tldTaglib.tlibVersion = tlibVersion;
} else if (("jsp-version" == elementReader.getLocalName())&&("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
// ELEMENT: jspVersion
String jspVersionRaw = elementReader.getElementText();
String jspVersion;
try {
jspVersion = Adapters.collapsedStringAdapterAdapter.unmarshal(jspVersionRaw);
} catch (Exception e) {
context.xmlAdapterError(elementReader, CollapsedStringAdapter.class, String.class, String.class, e);
continue;
}
tldTaglib.jspVersion = jspVersion;
} else if (("short-name" == elementReader.getLocalName())&&("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
// ELEMENT: shortName
String shortNameRaw = elementReader.getElementText();
String shortName;
try {
shortName = Adapters.collapsedStringAdapterAdapter.unmarshal(shortNameRaw);
} catch (Exception e) {
context.xmlAdapterError(elementReader, CollapsedStringAdapter.class, String.class, String.class, e);
continue;
}
tldTaglib.shortName = shortName;
} else if (("uri" == elementReader.getLocalName())&&("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
// ELEMENT: uri
String uriRaw = elementReader.getElementText();
String uri;
try {
uri = Adapters.collapsedStringAdapterAdapter.unmarshal(uriRaw);
} catch (Exception e) {
context.xmlAdapterError(elementReader, CollapsedStringAdapter.class, String.class, String.class, e);
continue;
}
tldTaglib.uri = uri;
} else if (("validator" == elementReader.getLocalName())&&("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
// ELEMENT: validator
Validator validator = readValidator(elementReader, context);
tldTaglib.validator = validator;
} else if (("listener" == elementReader.getLocalName())&&("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
// ELEMENT: listener
Listener listenerItem = readListener(elementReader, context);
if (listener == null) {
listener = tldTaglib.listener;
if (listener!= null) {
listener.clear();
} else {
listener = new ArrayList<>();
}
}
listener.add(listenerItem);
} else if (("tag" == elementReader.getLocalName())&&("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
// ELEMENT: tag
Tag tagItem = readTag(elementReader, context);
if (tag == null) {
tag = tldTaglib.tag;
if (tag!= null) {
tag.clear();
} else {
tag = new ArrayList<>();
}
}
tag.add(tagItem);
} else if (("tag-file" == elementReader.getLocalName())&&("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
// ELEMENT: tagFile
TagFile tagFileItem = readTagFile(elementReader, context);
if (tagFile == null) {
tagFile = tldTaglib.tagFile;
if (tagFile!= null) {
tagFile.clear();
} else {
tagFile = new ArrayList<>();
}
}
tagFile.add(tagFileItem);
} else if (("function" == elementReader.getLocalName())&&("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
// ELEMENT: function
Function functionItem = readFunction(elementReader, context);
if (function == null) {
function = tldTaglib.function;
if (function!= null) {
function.clear();
} else {
function = new ArrayList<>();
}
}
function.add(functionItem);
} else if (("taglib-extension" == elementReader.getLocalName())&&("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
// ELEMENT: taglibExtension
TldExtension taglibExtensionItem = readTldExtension(elementReader, context);
if (taglibExtension == null) {
taglibExtension = tldTaglib.taglibExtension;
if (taglibExtension!= null) {
taglibExtension.clear();
} else {
taglibExtension = new ArrayList<>();
}
}
taglibExtension.add(taglibExtensionItem);
} else {
context.unexpectedElement(elementReader, new QName("http://java.sun.com/xml/ns/javaee", "description"), new QName("http://java.sun.com/xml/ns/javaee", "display-name"), new QName("http://java.sun.com/xml/ns/javaee", "icon"), new QName("http://java.sun.com/xml/ns/javaee", "tlib-version"), new QName("http://java.sun.com/xml/ns/javaee", "jsp-version"), new QName("http://java.sun.com/xml/ns/javaee", "short-name"), new QName("http://java.sun.com/xml/ns/javaee", "uri"), new QName("http://java.sun.com/xml/ns/javaee", "validator"), new QName("http://java.sun.com/xml/ns/javaee", "listener"), new QName("http://java.sun.com/xml/ns/javaee", "tag"), new QName("http://java.sun.com/xml/ns/javaee", "tag-file"), new QName("http://java.sun.com/xml/ns/javaee", "function"), new QName("http://java.sun.com/xml/ns/javaee", "taglib-extension"));
}
}
if (descriptions!= null) {
try {
tldTaglib.setDescriptions(descriptions.toArray(new Text[descriptions.size()] ));
} catch (Exception e) {
context.setterError(reader, TldTaglib.class, "setDescriptions", Text[].class, e);
}
}
if (displayNames!= null) {
try {
tldTaglib.setDisplayNames(displayNames.toArray(new Text[displayNames.size()] ));
} catch (Exception e) {
context.setterError(reader, TldTaglib.class, "setDisplayNames", Text[].class, e);
}
}
if (icon!= null) {
tldTaglib.icon = icon;
}
if (listener!= null) {
tldTaglib.listener = listener;
}
if (tag!= null) {
tldTaglib.tag = tag;
}
if (tagFile!= null) {
tldTaglib.tagFile = tagFile;
}
if (function!= null) {
tldTaglib.function = function;
}
if (taglibExtension!= null) {
tldTaglib.taglibExtension = taglibExtension;
}
context.afterUnmarshal(tldTaglib, LifecycleCallback.NONE);
return tldTaglib;
}