public static TopicDescriptionImpl fromXml()

in sdk/servicebus/azure-messaging-servicebus/src/main/java/com/azure/messaging/servicebus/administration/implementation/models/TopicDescriptionImpl.java [729:835]


    public static TopicDescriptionImpl fromXml(XmlReader xmlReader, String rootElementName) throws XMLStreamException {
        String finalRootElementName = CoreUtils.isNullOrEmpty(rootElementName) ? "TopicDescription" : rootElementName;
        return xmlReader.readObject(SCHEMAS_MICROSOFT_COM_SERVICEBUS_CONNECT, finalRootElementName, reader -> {
            TopicDescriptionImpl deserializedTopicDescription = new TopicDescriptionImpl();
            while (reader.nextElement() != XmlToken.END_ELEMENT) {
                QName elementName = reader.getElementName();

                if ("DefaultMessageTimeToLive".equals(elementName.getLocalPart())
                    && SCHEMAS_MICROSOFT_COM_SERVICEBUS_CONNECT.equals(elementName.getNamespaceURI())) {
                    deserializedTopicDescription.defaultMessageTimeToLive = reader.getNullableElement(Duration::parse);
                } else if ("MaxSizeInMegabytes".equals(elementName.getLocalPart())
                    && SCHEMAS_MICROSOFT_COM_SERVICEBUS_CONNECT.equals(elementName.getNamespaceURI())) {
                    deserializedTopicDescription.maxSizeInMegabytes = reader.getNullableElement(Long::parseLong);
                } else if ("RequiresDuplicateDetection".equals(elementName.getLocalPart())
                    && SCHEMAS_MICROSOFT_COM_SERVICEBUS_CONNECT.equals(elementName.getNamespaceURI())) {
                    deserializedTopicDescription.requiresDuplicateDetection
                        = reader.getNullableElement(Boolean::parseBoolean);
                } else if ("DuplicateDetectionHistoryTimeWindow".equals(elementName.getLocalPart())
                    && SCHEMAS_MICROSOFT_COM_SERVICEBUS_CONNECT.equals(elementName.getNamespaceURI())) {
                    deserializedTopicDescription.duplicateDetectionHistoryTimeWindow
                        = reader.getNullableElement(Duration::parse);
                } else if ("EnableBatchedOperations".equals(elementName.getLocalPart())
                    && SCHEMAS_MICROSOFT_COM_SERVICEBUS_CONNECT.equals(elementName.getNamespaceURI())) {
                    deserializedTopicDescription.enableBatchedOperations
                        = reader.getNullableElement(Boolean::parseBoolean);
                } else if ("SizeInBytes".equals(elementName.getLocalPart())
                    && SCHEMAS_MICROSOFT_COM_SERVICEBUS_CONNECT.equals(elementName.getNamespaceURI())) {
                    deserializedTopicDescription.sizeInBytes = reader.getNullableElement(Long::parseLong);
                } else if ("FilteringMessagesBeforePublishing".equals(elementName.getLocalPart())
                    && SCHEMAS_MICROSOFT_COM_SERVICEBUS_CONNECT.equals(elementName.getNamespaceURI())) {
                    deserializedTopicDescription.filteringMessagesBeforePublishing
                        = reader.getNullableElement(Boolean::parseBoolean);
                } else if ("IsAnonymousAccessible".equals(elementName.getLocalPart())
                    && SCHEMAS_MICROSOFT_COM_SERVICEBUS_CONNECT.equals(elementName.getNamespaceURI())) {
                    deserializedTopicDescription.isAnonymousAccessible
                        = reader.getNullableElement(Boolean::parseBoolean);
                } else if ("AuthorizationRules".equals(elementName.getLocalPart())
                    && SCHEMAS_MICROSOFT_COM_SERVICEBUS_CONNECT.equals(elementName.getNamespaceURI())) {
                    while (reader.nextElement() != XmlToken.END_ELEMENT) {
                        elementName = reader.getElementName();
                        if ("AuthorizationRule".equals(elementName.getLocalPart())
                            && SCHEMAS_MICROSOFT_COM_SERVICEBUS_CONNECT.equals(elementName.getNamespaceURI())) {
                            if (deserializedTopicDescription.authorizationRules == null) {
                                deserializedTopicDescription.authorizationRules = new ArrayList<>();
                            }
                            deserializedTopicDescription.authorizationRules
                                .add(AuthorizationRuleImpl.fromXml(reader, "AuthorizationRule"));
                        } else {
                            reader.skipElement();
                        }
                    }
                } else if ("Status".equals(elementName.getLocalPart())
                    && SCHEMAS_MICROSOFT_COM_SERVICEBUS_CONNECT.equals(elementName.getNamespaceURI())) {
                    deserializedTopicDescription.status = EntityStatus.fromString(reader.getStringElement());
                } else if ("CreatedAt".equals(elementName.getLocalPart())
                    && SCHEMAS_MICROSOFT_COM_SERVICEBUS_CONNECT.equals(elementName.getNamespaceURI())) {
                    deserializedTopicDescription.createdAt
                        = reader.getNullableElement(dateString -> CoreUtils.parseBestOffsetDateTime(dateString));
                } else if ("UpdatedAt".equals(elementName.getLocalPart())
                    && SCHEMAS_MICROSOFT_COM_SERVICEBUS_CONNECT.equals(elementName.getNamespaceURI())) {
                    deserializedTopicDescription.updatedAt
                        = reader.getNullableElement(dateString -> CoreUtils.parseBestOffsetDateTime(dateString));
                } else if ("AccessedAt".equals(elementName.getLocalPart())
                    && SCHEMAS_MICROSOFT_COM_SERVICEBUS_CONNECT.equals(elementName.getNamespaceURI())) {
                    deserializedTopicDescription.accessedAt
                        = reader.getNullableElement(dateString -> CoreUtils.parseBestOffsetDateTime(dateString));
                } else if ("SupportOrdering".equals(elementName.getLocalPart())
                    && SCHEMAS_MICROSOFT_COM_SERVICEBUS_CONNECT.equals(elementName.getNamespaceURI())) {
                    deserializedTopicDescription.supportOrdering = reader.getNullableElement(Boolean::parseBoolean);
                } else if ("CountDetails".equals(elementName.getLocalPart())
                    && SCHEMAS_MICROSOFT_COM_SERVICEBUS_CONNECT.equals(elementName.getNamespaceURI())) {
                    deserializedTopicDescription.messageCountDetails
                        = MessageCountDetailsImpl.fromXml(reader, "CountDetails");
                } else if ("SubscriptionCount".equals(elementName.getLocalPart())
                    && SCHEMAS_MICROSOFT_COM_SERVICEBUS_CONNECT.equals(elementName.getNamespaceURI())) {
                    deserializedTopicDescription.subscriptionCount = reader.getNullableElement(Integer::parseInt);
                } else if ("AutoDeleteOnIdle".equals(elementName.getLocalPart())
                    && SCHEMAS_MICROSOFT_COM_SERVICEBUS_CONNECT.equals(elementName.getNamespaceURI())) {
                    deserializedTopicDescription.autoDeleteOnIdle = reader.getNullableElement(Duration::parse);
                } else if ("EnablePartitioning".equals(elementName.getLocalPart())
                    && SCHEMAS_MICROSOFT_COM_SERVICEBUS_CONNECT.equals(elementName.getNamespaceURI())) {
                    deserializedTopicDescription.enablePartitioning = reader.getNullableElement(Boolean::parseBoolean);
                } else if ("EntityAvailabilityStatus".equals(elementName.getLocalPart())
                    && SCHEMAS_MICROSOFT_COM_SERVICEBUS_CONNECT.equals(elementName.getNamespaceURI())) {
                    deserializedTopicDescription.entityAvailabilityStatus
                        = EntityAvailabilityStatusImpl.fromString(reader.getStringElement());
                } else if ("EnableSubscriptionPartitioning".equals(elementName.getLocalPart())
                    && SCHEMAS_MICROSOFT_COM_SERVICEBUS_CONNECT.equals(elementName.getNamespaceURI())) {
                    deserializedTopicDescription.enableSubscriptionPartitioning
                        = reader.getNullableElement(Boolean::parseBoolean);
                } else if ("EnableExpress".equals(elementName.getLocalPart())
                    && SCHEMAS_MICROSOFT_COM_SERVICEBUS_CONNECT.equals(elementName.getNamespaceURI())) {
                    deserializedTopicDescription.enableExpress = reader.getNullableElement(Boolean::parseBoolean);
                } else if ("UserMetadata".equals(elementName.getLocalPart())
                    && SCHEMAS_MICROSOFT_COM_SERVICEBUS_CONNECT.equals(elementName.getNamespaceURI())) {
                    deserializedTopicDescription.userMetadata = reader.getStringElement();
                } else if ("MaxMessageSizeInKilobytes".equals(elementName.getLocalPart())
                    && SCHEMAS_MICROSOFT_COM_SERVICEBUS_CONNECT.equals(elementName.getNamespaceURI())) {
                    deserializedTopicDescription.maxMessageSizeInKilobytes = reader.getNullableElement(Long::parseLong);
                } else {
                    reader.skipElement();
                }
            }

            return deserializedTopicDescription;
        });
    }