public static final TldTaglib _read()

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;
    }