Example usage for javax.xml.bind DatatypeConverter parseInt

List of usage examples for javax.xml.bind DatatypeConverter parseInt

Introduction

In this page you can find the example usage for javax.xml.bind DatatypeConverter parseInt.

Prototype

public static int parseInt(String lexicalXSDInt) 

Source Link

Document

Convert the string argument into an int value.

Usage

From source file:com.microsoft.windowsazure.management.servicebus.TopicOperationsImpl.java

/**
* Updates a topic.  (see//from   www .j ava2s.co  m
* http://msdn.microsoft.com/en-us/library/windowsazure/jj839740.aspx for
* more information)
*
* @param namespaceName Required. The namespace name.
* @param topic Required. The Service Bus topic.
* @throws ParserConfigurationException Thrown if there was an error
* configuring the parser for the response body.
* @throws SAXException Thrown if there was an error parsing the response
* body.
* @throws TransformerException Thrown if there was an error creating the
* DOM transformer.
* @throws IOException Signals that an I/O exception of some sort has
* occurred. This class is the general class of exceptions produced by
* failed or interrupted I/O operations.
* @throws ServiceException Thrown if an unexpected response is found.
* @return A response to a request for a particular topic.
*/
@Override
public ServiceBusTopicResponse update(String namespaceName, ServiceBusTopic topic)
        throws ParserConfigurationException, SAXException, TransformerException, IOException, ServiceException {
    // Validate
    if (namespaceName == null) {
        throw new NullPointerException("namespaceName");
    }
    if (topic == null) {
        throw new NullPointerException("topic");
    }

    // Tracing
    boolean shouldTrace = CloudTracing.getIsEnabled();
    String invocationId = null;
    if (shouldTrace) {
        invocationId = Long.toString(CloudTracing.getNextInvocationId());
        HashMap<String, Object> tracingParameters = new HashMap<String, Object>();
        tracingParameters.put("namespaceName", namespaceName);
        tracingParameters.put("topic", topic);
        CloudTracing.enter(invocationId, this, "updateAsync", tracingParameters);
    }

    // Construct URL
    String url = "";
    url = url + "/";
    if (this.getClient().getCredentials().getSubscriptionId() != null) {
        url = url + URLEncoder.encode(this.getClient().getCredentials().getSubscriptionId(), "UTF-8");
    }
    url = url + "/services/servicebus/namespaces/";
    url = url + URLEncoder.encode(namespaceName, "UTF-8");
    url = url + "/topics/";
    if (topic.getName() != null) {
        url = url + URLEncoder.encode(topic.getName(), "UTF-8");
    }
    url = url + "/";
    String baseUrl = this.getClient().getBaseUri().toString();
    // Trim '/' character from the end of baseUrl and beginning of url.
    if (baseUrl.charAt(baseUrl.length() - 1) == '/') {
        baseUrl = baseUrl.substring(0, (baseUrl.length() - 1) + 0);
    }
    if (url.charAt(0) == '/') {
        url = url.substring(1);
    }
    url = baseUrl + "/" + url;
    url = url.replace(" ", "%20");

    // Create HTTP transport objects
    HttpPut httpRequest = new HttpPut(url);

    // Set Headers
    httpRequest.setHeader("Content-Type", "application/atom+xml");
    httpRequest.setHeader("if-match", "*");
    httpRequest.setHeader("type", "entry");
    httpRequest.setHeader("x-ms-version", "2013-08-01");
    httpRequest.setHeader("x-process-at", "ServiceBus");

    // Serialize Request
    String requestContent = null;
    DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
    DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
    Document requestDoc = documentBuilder.newDocument();

    Element entryElement = requestDoc.createElementNS("http://www.w3.org/2005/Atom", "entry");
    requestDoc.appendChild(entryElement);

    Element contentElement = requestDoc.createElementNS("http://www.w3.org/2005/Atom", "content");
    entryElement.appendChild(contentElement);

    Attr typeAttribute = requestDoc.createAttribute("type");
    typeAttribute.setValue("application/atom+xml;type=entry;charset=utf-8");
    contentElement.setAttributeNode(typeAttribute);

    Element topicDescriptionElement = requestDoc.createElementNS(
            "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect", "TopicDescription");
    contentElement.appendChild(topicDescriptionElement);

    if (topic.getDefaultMessageTimeToLive() != null) {
        Element defaultMessageTimeToLiveElement = requestDoc.createElementNS(
                "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                "DefaultMessageTimeToLive");
        defaultMessageTimeToLiveElement
                .appendChild(requestDoc.createTextNode(topic.getDefaultMessageTimeToLive()));
        topicDescriptionElement.appendChild(defaultMessageTimeToLiveElement);
    }

    Element maxSizeInMegabytesElement = requestDoc.createElementNS(
            "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect", "MaxSizeInMegabytes");
    maxSizeInMegabytesElement
            .appendChild(requestDoc.createTextNode(Integer.toString(topic.getMaxSizeInMegabytes())));
    topicDescriptionElement.appendChild(maxSizeInMegabytesElement);

    Element requiresDuplicateDetectionElement = requestDoc.createElementNS(
            "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
            "RequiresDuplicateDetection");
    requiresDuplicateDetectionElement.appendChild(
            requestDoc.createTextNode(Boolean.toString(topic.isRequiresDuplicateDetection()).toLowerCase()));
    topicDescriptionElement.appendChild(requiresDuplicateDetectionElement);

    if (topic.getDuplicateDetectionHistoryTimeWindow() != null) {
        Element duplicateDetectionHistoryTimeWindowElement = requestDoc.createElementNS(
                "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                "DuplicateDetectionHistoryTimeWindow");
        duplicateDetectionHistoryTimeWindowElement
                .appendChild(requestDoc.createTextNode(topic.getDuplicateDetectionHistoryTimeWindow()));
        topicDescriptionElement.appendChild(duplicateDetectionHistoryTimeWindowElement);
    }

    Element enableBatchedOperationsElement = requestDoc.createElementNS(
            "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect", "EnableBatchedOperations");
    enableBatchedOperationsElement.appendChild(
            requestDoc.createTextNode(Boolean.toString(topic.isEnableBatchedOperations()).toLowerCase()));
    topicDescriptionElement.appendChild(enableBatchedOperationsElement);

    Element sizeInBytesElement = requestDoc.createElementNS(
            "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect", "SizeInBytes");
    sizeInBytesElement.appendChild(requestDoc.createTextNode(Integer.toString(topic.getSizeInBytes())));
    topicDescriptionElement.appendChild(sizeInBytesElement);

    Element filteringMessagesBeforePublishingElement = requestDoc.createElementNS(
            "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
            "FilteringMessagesBeforePublishing");
    filteringMessagesBeforePublishingElement.appendChild(requestDoc
            .createTextNode(Boolean.toString(topic.isFilteringMessagesBeforePublishing()).toLowerCase()));
    topicDescriptionElement.appendChild(filteringMessagesBeforePublishingElement);

    Element isAnonymousAccessibleElement = requestDoc.createElementNS(
            "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect", "IsAnonymousAccessible");
    isAnonymousAccessibleElement.appendChild(
            requestDoc.createTextNode(Boolean.toString(topic.isAnonymousAccessible()).toLowerCase()));
    topicDescriptionElement.appendChild(isAnonymousAccessibleElement);

    if (topic.getAuthorizationRules() != null) {
        if (topic.getAuthorizationRules() instanceof LazyCollection == false
                || ((LazyCollection) topic.getAuthorizationRules()).isInitialized()) {
            Element authorizationRulesSequenceElement = requestDoc.createElementNS(
                    "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                    "AuthorizationRules");
            for (ServiceBusSharedAccessAuthorizationRule authorizationRulesItem : topic
                    .getAuthorizationRules()) {
                Element authorizationRuleElement = requestDoc.createElementNS(
                        "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                        "AuthorizationRule");
                authorizationRulesSequenceElement.appendChild(authorizationRuleElement);

                Attr typeAttribute2 = requestDoc.createAttributeNS("http://www.w3.org/2001/XMLSchema-instance",
                        "type");
                typeAttribute2.setValue("SharedAccessAuthorizationRule");
                authorizationRuleElement.setAttributeNode(typeAttribute2);

                if (authorizationRulesItem.getClaimType() != null) {
                    Element claimTypeElement = requestDoc.createElementNS(
                            "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect", "ClaimType");
                    claimTypeElement
                            .appendChild(requestDoc.createTextNode(authorizationRulesItem.getClaimType()));
                    authorizationRuleElement.appendChild(claimTypeElement);
                }

                if (authorizationRulesItem.getClaimValue() != null) {
                    Element claimValueElement = requestDoc.createElementNS(
                            "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                            "ClaimValue");
                    claimValueElement
                            .appendChild(requestDoc.createTextNode(authorizationRulesItem.getClaimValue()));
                    authorizationRuleElement.appendChild(claimValueElement);
                }

                if (authorizationRulesItem.getRights() != null) {
                    if (authorizationRulesItem.getRights() instanceof LazyCollection == false
                            || ((LazyCollection) authorizationRulesItem.getRights()).isInitialized()) {
                        Element rightsSequenceElement = requestDoc.createElementNS(
                                "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                                "Rights");
                        for (AccessRight rightsItem : authorizationRulesItem.getRights()) {
                            Element rightsItemElement = requestDoc.createElementNS(
                                    "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                                    "AccessRights");
                            rightsItemElement.appendChild(requestDoc.createTextNode(rightsItem.toString()));
                            rightsSequenceElement.appendChild(rightsItemElement);
                        }
                        authorizationRuleElement.appendChild(rightsSequenceElement);
                    }
                }

                Element createdTimeElement = requestDoc.createElementNS(
                        "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect", "CreatedTime");
                SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSSSS'Z'");
                simpleDateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
                createdTimeElement.appendChild(requestDoc.createTextNode(
                        simpleDateFormat.format(authorizationRulesItem.getCreatedTime().getTime())));
                authorizationRuleElement.appendChild(createdTimeElement);

                if (authorizationRulesItem.getKeyName() != null) {
                    Element keyNameElement = requestDoc.createElementNS(
                            "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect", "KeyName");
                    keyNameElement.appendChild(requestDoc.createTextNode(authorizationRulesItem.getKeyName()));
                    authorizationRuleElement.appendChild(keyNameElement);
                }

                Element modifiedTimeElement = requestDoc.createElementNS(
                        "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect", "ModifiedTime");
                SimpleDateFormat simpleDateFormat2 = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSSSS'Z'");
                simpleDateFormat2.setTimeZone(TimeZone.getTimeZone("UTC"));
                modifiedTimeElement.appendChild(requestDoc.createTextNode(
                        simpleDateFormat2.format(authorizationRulesItem.getModifiedTime().getTime())));
                authorizationRuleElement.appendChild(modifiedTimeElement);

                if (authorizationRulesItem.getPrimaryKey() != null) {
                    Element primaryKeyElement = requestDoc.createElementNS(
                            "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                            "PrimaryKey");
                    primaryKeyElement
                            .appendChild(requestDoc.createTextNode(authorizationRulesItem.getPrimaryKey()));
                    authorizationRuleElement.appendChild(primaryKeyElement);
                }

                if (authorizationRulesItem.getSecondaryKey() != null) {
                    Element secondaryKeyElement = requestDoc.createElementNS(
                            "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                            "SecondaryKey");
                    secondaryKeyElement
                            .appendChild(requestDoc.createTextNode(authorizationRulesItem.getSecondaryKey()));
                    authorizationRuleElement.appendChild(secondaryKeyElement);
                }
            }
            topicDescriptionElement.appendChild(authorizationRulesSequenceElement);
        }
    }

    if (topic.getStatus() != null) {
        Element statusElement = requestDoc.createElementNS(
                "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect", "Status");
        statusElement.appendChild(requestDoc.createTextNode(topic.getStatus()));
        topicDescriptionElement.appendChild(statusElement);
    }

    Element createdAtElement = requestDoc.createElementNS(
            "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect", "CreatedAt");
    SimpleDateFormat simpleDateFormat3 = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSSSS'Z'");
    simpleDateFormat3.setTimeZone(TimeZone.getTimeZone("UTC"));
    createdAtElement
            .appendChild(requestDoc.createTextNode(simpleDateFormat3.format(topic.getCreatedAt().getTime())));
    topicDescriptionElement.appendChild(createdAtElement);

    Element updatedAtElement = requestDoc.createElementNS(
            "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect", "UpdatedAt");
    SimpleDateFormat simpleDateFormat4 = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSSSS'Z'");
    simpleDateFormat4.setTimeZone(TimeZone.getTimeZone("UTC"));
    updatedAtElement
            .appendChild(requestDoc.createTextNode(simpleDateFormat4.format(topic.getUpdatedAt().getTime())));
    topicDescriptionElement.appendChild(updatedAtElement);

    Element accessedAtElement = requestDoc.createElementNS(
            "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect", "AccessedAt");
    SimpleDateFormat simpleDateFormat5 = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSSSS'Z'");
    simpleDateFormat5.setTimeZone(TimeZone.getTimeZone("UTC"));
    accessedAtElement
            .appendChild(requestDoc.createTextNode(simpleDateFormat5.format(topic.getAccessedAt().getTime())));
    topicDescriptionElement.appendChild(accessedAtElement);

    Element supportOrderingElement = requestDoc.createElementNS(
            "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect", "SupportOrdering");
    supportOrderingElement
            .appendChild(requestDoc.createTextNode(Boolean.toString(topic.isSupportOrdering()).toLowerCase()));
    topicDescriptionElement.appendChild(supportOrderingElement);

    if (topic.getCountDetails() != null) {
        Element countDetailsElement = requestDoc.createElementNS(
                "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect", "CountDetails");
        topicDescriptionElement.appendChild(countDetailsElement);

        Element activeMessageCountElement = requestDoc.createElementNS(
                "http://schemas.microsoft.com/netservices/2011/06/servicebus", "ActiveMessageCount");
        activeMessageCountElement.appendChild(
                requestDoc.createTextNode(Integer.toString(topic.getCountDetails().getActiveMessageCount())));
        countDetailsElement.appendChild(activeMessageCountElement);

        Element deadLetterMessageCountElement = requestDoc.createElementNS(
                "http://schemas.microsoft.com/netservices/2011/06/servicebus", "DeadLetterMessageCount");
        deadLetterMessageCountElement.appendChild(requestDoc
                .createTextNode(Integer.toString(topic.getCountDetails().getDeadLetterMessageCount())));
        countDetailsElement.appendChild(deadLetterMessageCountElement);

        Element scheduledMessageCountElement = requestDoc.createElementNS(
                "http://schemas.microsoft.com/netservices/2011/06/servicebus", "ScheduledMessageCount");
        scheduledMessageCountElement.appendChild(requestDoc
                .createTextNode(Integer.toString(topic.getCountDetails().getScheduledMessageCount())));
        countDetailsElement.appendChild(scheduledMessageCountElement);

        Element transferDeadLetterMessageCountElement = requestDoc.createElementNS(
                "http://schemas.microsoft.com/netservices/2011/06/servicebus",
                "TransferDeadLetterMessageCount");
        transferDeadLetterMessageCountElement.appendChild(requestDoc
                .createTextNode(Integer.toString(topic.getCountDetails().getTransferDeadLetterMessageCount())));
        countDetailsElement.appendChild(transferDeadLetterMessageCountElement);

        Element transferMessageCountElement = requestDoc.createElementNS(
                "http://schemas.microsoft.com/netservices/2011/06/servicebus", "TransferMessageCount");
        transferMessageCountElement.appendChild(
                requestDoc.createTextNode(Integer.toString(topic.getCountDetails().getTransferMessageCount())));
        countDetailsElement.appendChild(transferMessageCountElement);
    }

    Element subscriptionCountElement = requestDoc.createElementNS(
            "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect", "SubscriptionCount");
    subscriptionCountElement
            .appendChild(requestDoc.createTextNode(Integer.toString(topic.getSubscriptionCount())));
    topicDescriptionElement.appendChild(subscriptionCountElement);

    if (topic.getAutoDeleteOnIdle() != null) {
        Element autoDeleteOnIdleElement = requestDoc.createElementNS(
                "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect", "AutoDeleteOnIdle");
        autoDeleteOnIdleElement.appendChild(requestDoc.createTextNode(topic.getAutoDeleteOnIdle()));
        topicDescriptionElement.appendChild(autoDeleteOnIdleElement);
    }

    if (topic.getEntityAvailabilityStatus() != null) {
        Element entityAvailabilityStatusElement = requestDoc.createElementNS(
                "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                "EntityAvailabilityStatus");
        entityAvailabilityStatusElement
                .appendChild(requestDoc.createTextNode(topic.getEntityAvailabilityStatus()));
        topicDescriptionElement.appendChild(entityAvailabilityStatusElement);
    }

    DOMSource domSource = new DOMSource(requestDoc);
    StringWriter stringWriter = new StringWriter();
    StreamResult streamResult = new StreamResult(stringWriter);
    TransformerFactory transformerFactory = TransformerFactory.newInstance();
    Transformer transformer = transformerFactory.newTransformer();
    transformer.transform(domSource, streamResult);
    requestContent = stringWriter.toString();
    StringEntity entity = new StringEntity(requestContent);
    httpRequest.setEntity(entity);
    httpRequest.setHeader("Content-Type", "application/atom+xml");

    // Send Request
    HttpResponse httpResponse = null;
    try {
        if (shouldTrace) {
            CloudTracing.sendRequest(invocationId, httpRequest);
        }
        httpResponse = this.getClient().getHttpClient().execute(httpRequest);
        if (shouldTrace) {
            CloudTracing.receiveResponse(invocationId, httpResponse);
        }
        int statusCode = httpResponse.getStatusLine().getStatusCode();
        if (statusCode != HttpStatus.SC_OK) {
            ServiceException ex = ServiceException.createFromXml(httpRequest, requestContent, httpResponse,
                    httpResponse.getEntity());
            if (shouldTrace) {
                CloudTracing.error(invocationId, ex);
            }
            throw ex;
        }

        // Create Result
        ServiceBusTopicResponse result = null;
        // Deserialize Response
        if (statusCode == HttpStatus.SC_OK) {
            InputStream responseContent = httpResponse.getEntity().getContent();
            result = new ServiceBusTopicResponse();
            DocumentBuilderFactory documentBuilderFactory2 = DocumentBuilderFactory.newInstance();
            documentBuilderFactory2.setNamespaceAware(true);
            DocumentBuilder documentBuilder2 = documentBuilderFactory2.newDocumentBuilder();
            Document responseDoc = documentBuilder2.parse(new BOMInputStream(responseContent));

            Element entryElement2 = XmlUtility.getElementByTagNameNS(responseDoc, "http://www.w3.org/2005/Atom",
                    "entry");
            if (entryElement2 != null) {
                Element titleElement = XmlUtility.getElementByTagNameNS(entryElement2,
                        "http://www.w3.org/2005/Atom", "title");
                if (titleElement != null) {
                }

                Element contentElement2 = XmlUtility.getElementByTagNameNS(entryElement2,
                        "http://www.w3.org/2005/Atom", "content");
                if (contentElement2 != null) {
                    Element topicDescriptionElement2 = XmlUtility.getElementByTagNameNS(contentElement2,
                            "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                            "TopicDescription");
                    if (topicDescriptionElement2 != null) {
                        ServiceBusTopic topicDescriptionInstance = new ServiceBusTopic();
                        result.setTopic(topicDescriptionInstance);

                        Element defaultMessageTimeToLiveElement2 = XmlUtility.getElementByTagNameNS(
                                topicDescriptionElement2,
                                "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                                "DefaultMessageTimeToLive");
                        if (defaultMessageTimeToLiveElement2 != null) {
                            String defaultMessageTimeToLiveInstance;
                            defaultMessageTimeToLiveInstance = defaultMessageTimeToLiveElement2
                                    .getTextContent();
                            topicDescriptionInstance
                                    .setDefaultMessageTimeToLive(defaultMessageTimeToLiveInstance);
                        }

                        Element maxSizeInMegabytesElement2 = XmlUtility.getElementByTagNameNS(
                                topicDescriptionElement2,
                                "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                                "MaxSizeInMegabytes");
                        if (maxSizeInMegabytesElement2 != null) {
                            int maxSizeInMegabytesInstance;
                            maxSizeInMegabytesInstance = DatatypeConverter
                                    .parseInt(maxSizeInMegabytesElement2.getTextContent());
                            topicDescriptionInstance.setMaxSizeInMegabytes(maxSizeInMegabytesInstance);
                        }

                        Element requiresDuplicateDetectionElement2 = XmlUtility.getElementByTagNameNS(
                                topicDescriptionElement2,
                                "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                                "RequiresDuplicateDetection");
                        if (requiresDuplicateDetectionElement2 != null) {
                            boolean requiresDuplicateDetectionInstance;
                            requiresDuplicateDetectionInstance = DatatypeConverter.parseBoolean(
                                    requiresDuplicateDetectionElement2.getTextContent().toLowerCase());
                            topicDescriptionInstance
                                    .setRequiresDuplicateDetection(requiresDuplicateDetectionInstance);
                        }

                        Element duplicateDetectionHistoryTimeWindowElement2 = XmlUtility.getElementByTagNameNS(
                                topicDescriptionElement2,
                                "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                                "DuplicateDetectionHistoryTimeWindow");
                        if (duplicateDetectionHistoryTimeWindowElement2 != null) {
                            String duplicateDetectionHistoryTimeWindowInstance;
                            duplicateDetectionHistoryTimeWindowInstance = duplicateDetectionHistoryTimeWindowElement2
                                    .getTextContent();
                            topicDescriptionInstance.setDuplicateDetectionHistoryTimeWindow(
                                    duplicateDetectionHistoryTimeWindowInstance);
                        }

                        Element enableBatchedOperationsElement2 = XmlUtility.getElementByTagNameNS(
                                topicDescriptionElement2,
                                "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                                "EnableBatchedOperations");
                        if (enableBatchedOperationsElement2 != null) {
                            boolean enableBatchedOperationsInstance;
                            enableBatchedOperationsInstance = DatatypeConverter.parseBoolean(
                                    enableBatchedOperationsElement2.getTextContent().toLowerCase());
                            topicDescriptionInstance
                                    .setEnableBatchedOperations(enableBatchedOperationsInstance);
                        }

                        Element sizeInBytesElement2 = XmlUtility.getElementByTagNameNS(topicDescriptionElement2,
                                "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                                "SizeInBytes");
                        if (sizeInBytesElement2 != null) {
                            int sizeInBytesInstance;
                            sizeInBytesInstance = DatatypeConverter
                                    .parseInt(sizeInBytesElement2.getTextContent());
                            topicDescriptionInstance.setSizeInBytes(sizeInBytesInstance);
                        }

                        Element filteringMessagesBeforePublishingElement2 = XmlUtility.getElementByTagNameNS(
                                topicDescriptionElement2,
                                "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                                "FilteringMessagesBeforePublishing");
                        if (filteringMessagesBeforePublishingElement2 != null) {
                            boolean filteringMessagesBeforePublishingInstance;
                            filteringMessagesBeforePublishingInstance = DatatypeConverter.parseBoolean(
                                    filteringMessagesBeforePublishingElement2.getTextContent().toLowerCase());
                            topicDescriptionInstance.setFilteringMessagesBeforePublishing(
                                    filteringMessagesBeforePublishingInstance);
                        }

                        Element isAnonymousAccessibleElement2 = XmlUtility.getElementByTagNameNS(
                                topicDescriptionElement2,
                                "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                                "IsAnonymousAccessible");
                        if (isAnonymousAccessibleElement2 != null) {
                            boolean isAnonymousAccessibleInstance;
                            isAnonymousAccessibleInstance = DatatypeConverter
                                    .parseBoolean(isAnonymousAccessibleElement2.getTextContent().toLowerCase());
                            topicDescriptionInstance.setIsAnonymousAccessible(isAnonymousAccessibleInstance);
                        }

                        Element authorizationRulesSequenceElement2 = XmlUtility.getElementByTagNameNS(
                                topicDescriptionElement2,
                                "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                                "AuthorizationRules");
                        if (authorizationRulesSequenceElement2 != null) {
                            for (int i1 = 0; i1 < com.microsoft.windowsazure.core.utils.XmlUtility
                                    .getElementsByTagNameNS(authorizationRulesSequenceElement2,
                                            "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                                            "AuthorizationRule")
                                    .size(); i1 = i1 + 1) {
                                org.w3c.dom.Element authorizationRulesElement = ((org.w3c.dom.Element) com.microsoft.windowsazure.core.utils.XmlUtility
                                        .getElementsByTagNameNS(authorizationRulesSequenceElement2,
                                                "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                                                "AuthorizationRule")
                                        .get(i1));
                                ServiceBusSharedAccessAuthorizationRule authorizationRuleInstance = new ServiceBusSharedAccessAuthorizationRule();
                                topicDescriptionInstance.getAuthorizationRules().add(authorizationRuleInstance);

                                Element claimTypeElement2 = XmlUtility.getElementByTagNameNS(
                                        authorizationRulesElement,
                                        "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                                        "ClaimType");
                                if (claimTypeElement2 != null) {
                                    String claimTypeInstance;
                                    claimTypeInstance = claimTypeElement2.getTextContent();
                                    authorizationRuleInstance.setClaimType(claimTypeInstance);
                                }

                                Element claimValueElement2 = XmlUtility.getElementByTagNameNS(
                                        authorizationRulesElement,
                                        "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                                        "ClaimValue");
                                if (claimValueElement2 != null) {
                                    String claimValueInstance;
                                    claimValueInstance = claimValueElement2.getTextContent();
                                    authorizationRuleInstance.setClaimValue(claimValueInstance);
                                }

                                Element rightsSequenceElement2 = XmlUtility.getElementByTagNameNS(
                                        authorizationRulesElement,
                                        "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                                        "Rights");
                                if (rightsSequenceElement2 != null) {
                                    for (int i2 = 0; i2 < com.microsoft.windowsazure.core.utils.XmlUtility
                                            .getElementsByTagNameNS(rightsSequenceElement2,
                                                    "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                                                    "AccessRights")
                                            .size(); i2 = i2 + 1) {
                                        org.w3c.dom.Element rightsElement = ((org.w3c.dom.Element) com.microsoft.windowsazure.core.utils.XmlUtility
                                                .getElementsByTagNameNS(rightsSequenceElement2,
                                                        "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                                                        "AccessRights")
                                                .get(i2));
                                        authorizationRuleInstance.getRights()
                                                .add(AccessRight.valueOf(rightsElement.getTextContent()));
                                    }
                                }

                                Element createdTimeElement2 = XmlUtility.getElementByTagNameNS(
                                        authorizationRulesElement,
                                        "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                                        "CreatedTime");
                                if (createdTimeElement2 != null) {
                                    Calendar createdTimeInstance;
                                    createdTimeInstance = DatatypeConverter
                                            .parseDateTime(createdTimeElement2.getTextContent());
                                    authorizationRuleInstance.setCreatedTime(createdTimeInstance);
                                }

                                Element keyNameElement2 = XmlUtility.getElementByTagNameNS(
                                        authorizationRulesElement,
                                        "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                                        "KeyName");
                                if (keyNameElement2 != null) {
                                    String keyNameInstance;
                                    keyNameInstance = keyNameElement2.getTextContent();
                                    authorizationRuleInstance.setKeyName(keyNameInstance);
                                }

                                Element modifiedTimeElement2 = XmlUtility.getElementByTagNameNS(
                                        authorizationRulesElement,
                                        "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                                        "ModifiedTime");
                                if (modifiedTimeElement2 != null) {
                                    Calendar modifiedTimeInstance;
                                    modifiedTimeInstance = DatatypeConverter
                                            .parseDateTime(modifiedTimeElement2.getTextContent());
                                    authorizationRuleInstance.setModifiedTime(modifiedTimeInstance);
                                }

                                Element primaryKeyElement2 = XmlUtility.getElementByTagNameNS(
                                        authorizationRulesElement,
                                        "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                                        "PrimaryKey");
                                if (primaryKeyElement2 != null) {
                                    String primaryKeyInstance;
                                    primaryKeyInstance = primaryKeyElement2.getTextContent();
                                    authorizationRuleInstance.setPrimaryKey(primaryKeyInstance);
                                }

                                Element secondaryKeyElement2 = XmlUtility.getElementByTagNameNS(
                                        authorizationRulesElement,
                                        "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                                        "SecondaryKey");
                                if (secondaryKeyElement2 != null) {
                                    String secondaryKeyInstance;
                                    secondaryKeyInstance = secondaryKeyElement2.getTextContent();
                                    authorizationRuleInstance.setSecondaryKey(secondaryKeyInstance);
                                }
                            }
                        }

                        Element statusElement2 = XmlUtility.getElementByTagNameNS(topicDescriptionElement2,
                                "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                                "Status");
                        if (statusElement2 != null) {
                            String statusInstance;
                            statusInstance = statusElement2.getTextContent();
                            topicDescriptionInstance.setStatus(statusInstance);
                        }

                        Element createdAtElement2 = XmlUtility.getElementByTagNameNS(topicDescriptionElement2,
                                "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                                "CreatedAt");
                        if (createdAtElement2 != null) {
                            Calendar createdAtInstance;
                            createdAtInstance = DatatypeConverter
                                    .parseDateTime(createdAtElement2.getTextContent());
                            topicDescriptionInstance.setCreatedAt(createdAtInstance);
                        }

                        Element updatedAtElement2 = XmlUtility.getElementByTagNameNS(topicDescriptionElement2,
                                "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                                "UpdatedAt");
                        if (updatedAtElement2 != null) {
                            Calendar updatedAtInstance;
                            updatedAtInstance = DatatypeConverter
                                    .parseDateTime(updatedAtElement2.getTextContent());
                            topicDescriptionInstance.setUpdatedAt(updatedAtInstance);
                        }

                        Element accessedAtElement2 = XmlUtility.getElementByTagNameNS(topicDescriptionElement2,
                                "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                                "AccessedAt");
                        if (accessedAtElement2 != null) {
                            Calendar accessedAtInstance;
                            accessedAtInstance = DatatypeConverter
                                    .parseDateTime(accessedAtElement2.getTextContent());
                            topicDescriptionInstance.setAccessedAt(accessedAtInstance);
                        }

                        Element supportOrderingElement2 = XmlUtility.getElementByTagNameNS(
                                topicDescriptionElement2,
                                "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                                "SupportOrdering");
                        if (supportOrderingElement2 != null) {
                            boolean supportOrderingInstance;
                            supportOrderingInstance = DatatypeConverter
                                    .parseBoolean(supportOrderingElement2.getTextContent().toLowerCase());
                            topicDescriptionInstance.setSupportOrdering(supportOrderingInstance);
                        }

                        Element countDetailsElement2 = XmlUtility.getElementByTagNameNS(
                                topicDescriptionElement2,
                                "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                                "CountDetails");
                        if (countDetailsElement2 != null) {
                            CountDetails countDetailsInstance = new CountDetails();
                            topicDescriptionInstance.setCountDetails(countDetailsInstance);
                        }

                        Element subscriptionCountElement2 = XmlUtility.getElementByTagNameNS(
                                topicDescriptionElement2,
                                "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                                "SubscriptionCount");
                        if (subscriptionCountElement2 != null) {
                            int subscriptionCountInstance;
                            subscriptionCountInstance = DatatypeConverter
                                    .parseInt(subscriptionCountElement2.getTextContent());
                            topicDescriptionInstance.setSubscriptionCount(subscriptionCountInstance);
                        }

                        Element autoDeleteOnIdleElement2 = XmlUtility.getElementByTagNameNS(
                                topicDescriptionElement2,
                                "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                                "AutoDeleteOnIdle");
                        if (autoDeleteOnIdleElement2 != null) {
                            String autoDeleteOnIdleInstance;
                            autoDeleteOnIdleInstance = autoDeleteOnIdleElement2.getTextContent();
                            topicDescriptionInstance.setAutoDeleteOnIdle(autoDeleteOnIdleInstance);
                        }

                        Element entityAvailabilityStatusElement2 = XmlUtility.getElementByTagNameNS(
                                topicDescriptionElement2,
                                "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                                "EntityAvailabilityStatus");
                        if (entityAvailabilityStatusElement2 != null) {
                            String entityAvailabilityStatusInstance;
                            entityAvailabilityStatusInstance = entityAvailabilityStatusElement2
                                    .getTextContent();
                            topicDescriptionInstance
                                    .setEntityAvailabilityStatus(entityAvailabilityStatusInstance);
                        }
                    }
                }
            }

        }
        result.setStatusCode(statusCode);
        if (httpResponse.getHeaders("x-ms-request-id").length > 0) {
            result.setRequestId(httpResponse.getFirstHeader("x-ms-request-id").getValue());
        }

        if (shouldTrace) {
            CloudTracing.exit(invocationId, result);
        }
        return result;
    } finally {
        if (httpResponse != null && httpResponse.getEntity() != null) {
            httpResponse.getEntity().getContent().close();
        }
    }
}

From source file:com.microsoft.windowsazure.management.servicebus.NamespaceOperationsImpl.java

/**
* The update authorization rule operation updates an authorization rule for
* a namespace.//  w ww .j av  a2s .  co  m
*
* @param namespaceName Required. The namespace name.
* @param rule Optional. Updated access authorization rule.
* @throws ParserConfigurationException Thrown if there was an error
* configuring the parser for the response body.
* @throws SAXException Thrown if there was an error parsing the response
* body.
* @throws TransformerException Thrown if there was an error creating the
* DOM transformer.
* @throws IOException Signals that an I/O exception of some sort has
* occurred. This class is the general class of exceptions produced by
* failed or interrupted I/O operations.
* @throws ServiceException Thrown if an unexpected response is found.
* @return A response to a request for a particular authorization rule.
*/
@Override
public ServiceBusAuthorizationRuleResponse updateAuthorizationRule(String namespaceName,
        ServiceBusSharedAccessAuthorizationRule rule)
        throws ParserConfigurationException, SAXException, TransformerException, IOException, ServiceException {
    // Validate
    if (namespaceName == null) {
        throw new NullPointerException("namespaceName");
    }

    // Tracing
    boolean shouldTrace = CloudTracing.getIsEnabled();
    String invocationId = null;
    if (shouldTrace) {
        invocationId = Long.toString(CloudTracing.getNextInvocationId());
        HashMap<String, Object> tracingParameters = new HashMap<String, Object>();
        tracingParameters.put("namespaceName", namespaceName);
        tracingParameters.put("rule", rule);
        CloudTracing.enter(invocationId, this, "updateAuthorizationRuleAsync", tracingParameters);
    }

    // Construct URL
    String url = "";
    url = url + "/";
    if (this.getClient().getCredentials().getSubscriptionId() != null) {
        url = url + URLEncoder.encode(this.getClient().getCredentials().getSubscriptionId(), "UTF-8");
    }
    url = url + "/services/servicebus/namespaces/";
    url = url + URLEncoder.encode(namespaceName, "UTF-8");
    url = url + "/AuthorizationRules/";
    if (rule != null && rule.getKeyName() != null) {
        url = url + URLEncoder.encode(rule.getKeyName(), "UTF-8");
    }
    String baseUrl = this.getClient().getBaseUri().toString();
    // Trim '/' character from the end of baseUrl and beginning of url.
    if (baseUrl.charAt(baseUrl.length() - 1) == '/') {
        baseUrl = baseUrl.substring(0, (baseUrl.length() - 1) + 0);
    }
    if (url.charAt(0) == '/') {
        url = url.substring(1);
    }
    url = baseUrl + "/" + url;
    url = url.replace(" ", "%20");

    // Create HTTP transport objects
    HttpPut httpRequest = new HttpPut(url);

    // Set Headers
    httpRequest.setHeader("Accept", "application/atom+xml");
    httpRequest.setHeader("Content-Type", "application/atom+xml");
    httpRequest.setHeader("if-match", "*");
    httpRequest.setHeader("type", "entry");
    httpRequest.setHeader("x-ms-version", "2012-03-01");

    // Serialize Request
    String requestContent = null;
    DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
    DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
    Document requestDoc = documentBuilder.newDocument();

    if (rule != null) {
        Element entryElement = requestDoc.createElementNS("http://www.w3.org/2005/Atom", "entry");
        requestDoc.appendChild(entryElement);

        Element contentElement = requestDoc.createElementNS("http://www.w3.org/2005/Atom", "content");
        entryElement.appendChild(contentElement);

        Attr typeAttribute = requestDoc.createAttribute("type");
        typeAttribute.setValue("application/atom+xml");
        contentElement.setAttributeNode(typeAttribute);

        Element sharedAccessAuthorizationRuleElement = requestDoc.createElementNS(
                "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                "SharedAccessAuthorizationRule");
        contentElement.appendChild(sharedAccessAuthorizationRuleElement);

        if (rule.getClaimType() != null) {
            Element claimTypeElement = requestDoc.createElementNS(
                    "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect", "ClaimType");
            claimTypeElement.appendChild(requestDoc.createTextNode(rule.getClaimType()));
            sharedAccessAuthorizationRuleElement.appendChild(claimTypeElement);
        }

        if (rule.getClaimValue() != null) {
            Element claimValueElement = requestDoc.createElementNS(
                    "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect", "ClaimValue");
            claimValueElement.appendChild(requestDoc.createTextNode(rule.getClaimValue()));
            sharedAccessAuthorizationRuleElement.appendChild(claimValueElement);
        }

        if (rule.getRights() != null) {
            if (rule.getRights() instanceof LazyCollection == false
                    || ((LazyCollection) rule.getRights()).isInitialized()) {
                Element rightsSequenceElement = requestDoc.createElementNS(
                        "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect", "Rights");
                for (AccessRight rightsItem : rule.getRights()) {
                    Element rightsItemElement = requestDoc.createElementNS(
                            "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                            "AccessRights");
                    rightsItemElement.appendChild(requestDoc.createTextNode(rightsItem.toString()));
                    rightsSequenceElement.appendChild(rightsItemElement);
                }
                sharedAccessAuthorizationRuleElement.appendChild(rightsSequenceElement);
            }
        }

        Element createdTimeElement = requestDoc.createElementNS(
                "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect", "CreatedTime");
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSSSS'Z'");
        simpleDateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
        createdTimeElement.appendChild(
                requestDoc.createTextNode(simpleDateFormat.format(rule.getCreatedTime().getTime())));
        sharedAccessAuthorizationRuleElement.appendChild(createdTimeElement);

        Element modifiedTimeElement = requestDoc.createElementNS(
                "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect", "ModifiedTime");
        SimpleDateFormat simpleDateFormat2 = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSSSS'Z'");
        simpleDateFormat2.setTimeZone(TimeZone.getTimeZone("UTC"));
        modifiedTimeElement.appendChild(
                requestDoc.createTextNode(simpleDateFormat2.format(rule.getModifiedTime().getTime())));
        sharedAccessAuthorizationRuleElement.appendChild(modifiedTimeElement);

        Element revisionElement = requestDoc.createElementNS(
                "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect", "Revision");
        revisionElement.appendChild(requestDoc.createTextNode(Integer.toString(rule.getRevision())));
        sharedAccessAuthorizationRuleElement.appendChild(revisionElement);

        if (rule.getKeyName() != null) {
            Element keyNameElement = requestDoc.createElementNS(
                    "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect", "KeyName");
            keyNameElement.appendChild(requestDoc.createTextNode(rule.getKeyName()));
            sharedAccessAuthorizationRuleElement.appendChild(keyNameElement);
        }

        if (rule.getPrimaryKey() != null) {
            Element primaryKeyElement = requestDoc.createElementNS(
                    "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect", "PrimaryKey");
            primaryKeyElement.appendChild(requestDoc.createTextNode(rule.getPrimaryKey()));
            sharedAccessAuthorizationRuleElement.appendChild(primaryKeyElement);
        }
    }

    DOMSource domSource = new DOMSource(requestDoc);
    StringWriter stringWriter = new StringWriter();
    StreamResult streamResult = new StreamResult(stringWriter);
    TransformerFactory transformerFactory = TransformerFactory.newInstance();
    Transformer transformer = transformerFactory.newTransformer();
    transformer.transform(domSource, streamResult);
    requestContent = stringWriter.toString();
    StringEntity entity = new StringEntity(requestContent);
    httpRequest.setEntity(entity);
    httpRequest.setHeader("Content-Type", "application/atom+xml");

    // Send Request
    HttpResponse httpResponse = null;
    try {
        if (shouldTrace) {
            CloudTracing.sendRequest(invocationId, httpRequest);
        }
        httpResponse = this.getClient().getHttpClient().execute(httpRequest);
        if (shouldTrace) {
            CloudTracing.receiveResponse(invocationId, httpResponse);
        }
        int statusCode = httpResponse.getStatusLine().getStatusCode();
        if (statusCode != HttpStatus.SC_CREATED) {
            ServiceException ex = ServiceException.createFromXml(httpRequest, requestContent, httpResponse,
                    httpResponse.getEntity());
            if (shouldTrace) {
                CloudTracing.error(invocationId, ex);
            }
            throw ex;
        }

        // Create Result
        ServiceBusAuthorizationRuleResponse result = null;
        // Deserialize Response
        if (statusCode == HttpStatus.SC_CREATED) {
            InputStream responseContent = httpResponse.getEntity().getContent();
            result = new ServiceBusAuthorizationRuleResponse();
            DocumentBuilderFactory documentBuilderFactory2 = DocumentBuilderFactory.newInstance();
            documentBuilderFactory2.setNamespaceAware(true);
            DocumentBuilder documentBuilder2 = documentBuilderFactory2.newDocumentBuilder();
            Document responseDoc = documentBuilder2.parse(new BOMInputStream(responseContent));

            Element entryElement2 = XmlUtility.getElementByTagNameNS(responseDoc, "http://www.w3.org/2005/Atom",
                    "entry");
            if (entryElement2 != null) {
                Element contentElement2 = XmlUtility.getElementByTagNameNS(entryElement2,
                        "http://www.w3.org/2005/Atom", "content");
                if (contentElement2 != null) {
                    Element sharedAccessAuthorizationRuleElement2 = XmlUtility.getElementByTagNameNS(
                            contentElement2,
                            "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                            "SharedAccessAuthorizationRule");
                    if (sharedAccessAuthorizationRuleElement2 != null) {
                        ServiceBusSharedAccessAuthorizationRule sharedAccessAuthorizationRuleInstance = new ServiceBusSharedAccessAuthorizationRule();
                        result.setAuthorizationRule(sharedAccessAuthorizationRuleInstance);

                        Element claimTypeElement2 = XmlUtility.getElementByTagNameNS(
                                sharedAccessAuthorizationRuleElement2,
                                "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                                "ClaimType");
                        if (claimTypeElement2 != null) {
                            String claimTypeInstance;
                            claimTypeInstance = claimTypeElement2.getTextContent();
                            sharedAccessAuthorizationRuleInstance.setClaimType(claimTypeInstance);
                        }

                        Element claimValueElement2 = XmlUtility.getElementByTagNameNS(
                                sharedAccessAuthorizationRuleElement2,
                                "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                                "ClaimValue");
                        if (claimValueElement2 != null) {
                            String claimValueInstance;
                            claimValueInstance = claimValueElement2.getTextContent();
                            sharedAccessAuthorizationRuleInstance.setClaimValue(claimValueInstance);
                        }

                        Element rightsSequenceElement2 = XmlUtility.getElementByTagNameNS(
                                sharedAccessAuthorizationRuleElement2,
                                "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                                "Rights");
                        if (rightsSequenceElement2 != null) {
                            for (int i1 = 0; i1 < com.microsoft.windowsazure.core.utils.XmlUtility
                                    .getElementsByTagNameNS(rightsSequenceElement2,
                                            "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                                            "AccessRights")
                                    .size(); i1 = i1 + 1) {
                                org.w3c.dom.Element rightsElement = ((org.w3c.dom.Element) com.microsoft.windowsazure.core.utils.XmlUtility
                                        .getElementsByTagNameNS(rightsSequenceElement2,
                                                "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                                                "AccessRights")
                                        .get(i1));
                                sharedAccessAuthorizationRuleInstance.getRights()
                                        .add(AccessRight.valueOf(rightsElement.getTextContent()));
                            }
                        }

                        Element createdTimeElement2 = XmlUtility.getElementByTagNameNS(
                                sharedAccessAuthorizationRuleElement2,
                                "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                                "CreatedTime");
                        if (createdTimeElement2 != null) {
                            Calendar createdTimeInstance;
                            createdTimeInstance = DatatypeConverter
                                    .parseDateTime(createdTimeElement2.getTextContent());
                            sharedAccessAuthorizationRuleInstance.setCreatedTime(createdTimeInstance);
                        }

                        Element modifiedTimeElement2 = XmlUtility.getElementByTagNameNS(
                                sharedAccessAuthorizationRuleElement2,
                                "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                                "ModifiedTime");
                        if (modifiedTimeElement2 != null) {
                            Calendar modifiedTimeInstance;
                            modifiedTimeInstance = DatatypeConverter
                                    .parseDateTime(modifiedTimeElement2.getTextContent());
                            sharedAccessAuthorizationRuleInstance.setModifiedTime(modifiedTimeInstance);
                        }

                        Element keyNameElement2 = XmlUtility.getElementByTagNameNS(
                                sharedAccessAuthorizationRuleElement2,
                                "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                                "KeyName");
                        if (keyNameElement2 != null) {
                            String keyNameInstance;
                            keyNameInstance = keyNameElement2.getTextContent();
                            sharedAccessAuthorizationRuleInstance.setKeyName(keyNameInstance);
                        }

                        Element primaryKeyElement2 = XmlUtility.getElementByTagNameNS(
                                sharedAccessAuthorizationRuleElement2,
                                "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                                "PrimaryKey");
                        if (primaryKeyElement2 != null) {
                            String primaryKeyInstance;
                            primaryKeyInstance = primaryKeyElement2.getTextContent();
                            sharedAccessAuthorizationRuleInstance.setPrimaryKey(primaryKeyInstance);
                        }

                        Element secondaryKeyElement = XmlUtility.getElementByTagNameNS(
                                sharedAccessAuthorizationRuleElement2,
                                "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                                "SecondaryKey");
                        if (secondaryKeyElement != null) {
                            String secondaryKeyInstance;
                            secondaryKeyInstance = secondaryKeyElement.getTextContent();
                            sharedAccessAuthorizationRuleInstance.setSecondaryKey(secondaryKeyInstance);
                        }

                        Element revisionElement2 = XmlUtility.getElementByTagNameNS(
                                sharedAccessAuthorizationRuleElement2,
                                "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                                "Revision");
                        if (revisionElement2 != null) {
                            int revisionInstance;
                            revisionInstance = DatatypeConverter.parseInt(revisionElement2.getTextContent());
                            sharedAccessAuthorizationRuleInstance.setRevision(revisionInstance);
                        }
                    }
                }
            }

        }
        result.setStatusCode(statusCode);
        if (httpResponse.getHeaders("x-ms-request-id").length > 0) {
            result.setRequestId(httpResponse.getFirstHeader("x-ms-request-id").getValue());
        }

        if (shouldTrace) {
            CloudTracing.exit(invocationId, result);
        }
        return result;
    } finally {
        if (httpResponse != null && httpResponse.getEntity() != null) {
            httpResponse.getEntity().getContent().close();
        }
    }
}

From source file:com.microsoft.windowsazure.management.servicebus.QueueOperationsImpl.java

/**
* Updates the queue description and makes a call to update corresponding DB
* entries.  (see/*from  w w  w  . ja v  a2s  .  c o  m*/
* http://msdn.microsoft.com/en-us/library/windowsazure/jj856305.aspx for
* more information)
*
* @param namespaceName Required. The namespace name.
* @param queue Required. The service bus queue.
* @throws ParserConfigurationException Thrown if there was an error
* configuring the parser for the response body.
* @throws SAXException Thrown if there was an error parsing the response
* body.
* @throws TransformerException Thrown if there was an error creating the
* DOM transformer.
* @throws IOException Signals that an I/O exception of some sort has
* occurred. This class is the general class of exceptions produced by
* failed or interrupted I/O operations.
* @throws ServiceException Thrown if an unexpected response is found.
* @return A response to a request for a particular queue.
*/
@Override
public ServiceBusQueueResponse update(String namespaceName, ServiceBusQueue queue)
        throws ParserConfigurationException, SAXException, TransformerException, IOException, ServiceException {
    // Validate
    if (namespaceName == null) {
        throw new NullPointerException("namespaceName");
    }
    if (queue == null) {
        throw new NullPointerException("queue");
    }

    // Tracing
    boolean shouldTrace = CloudTracing.getIsEnabled();
    String invocationId = null;
    if (shouldTrace) {
        invocationId = Long.toString(CloudTracing.getNextInvocationId());
        HashMap<String, Object> tracingParameters = new HashMap<String, Object>();
        tracingParameters.put("namespaceName", namespaceName);
        tracingParameters.put("queue", queue);
        CloudTracing.enter(invocationId, this, "updateAsync", tracingParameters);
    }

    // Construct URL
    String url = "";
    url = url + "/";
    if (this.getClient().getCredentials().getSubscriptionId() != null) {
        url = url + URLEncoder.encode(this.getClient().getCredentials().getSubscriptionId(), "UTF-8");
    }
    url = url + "/services/servicebus/namespaces/";
    url = url + URLEncoder.encode(namespaceName, "UTF-8");
    url = url + "/queues/";
    if (queue.getName() != null) {
        url = url + URLEncoder.encode(queue.getName(), "UTF-8");
    }
    url = url + "/";
    String baseUrl = this.getClient().getBaseUri().toString();
    // Trim '/' character from the end of baseUrl and beginning of url.
    if (baseUrl.charAt(baseUrl.length() - 1) == '/') {
        baseUrl = baseUrl.substring(0, (baseUrl.length() - 1) + 0);
    }
    if (url.charAt(0) == '/') {
        url = url.substring(1);
    }
    url = baseUrl + "/" + url;
    url = url.replace(" ", "%20");

    // Create HTTP transport objects
    HttpPut httpRequest = new HttpPut(url);

    // Set Headers
    httpRequest.setHeader("Content-Type", "application/atom+xml");
    httpRequest.setHeader("if-match", "*");
    httpRequest.setHeader("type", "entry");
    httpRequest.setHeader("x-ms-version", "2013-08-01");
    httpRequest.setHeader("x-process-at", "ServiceBus");

    // Serialize Request
    String requestContent = null;
    DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
    DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
    Document requestDoc = documentBuilder.newDocument();

    Element entryElement = requestDoc.createElementNS("http://www.w3.org/2005/Atom", "entry");
    requestDoc.appendChild(entryElement);

    Element contentElement = requestDoc.createElementNS("http://www.w3.org/2005/Atom", "content");
    entryElement.appendChild(contentElement);

    Attr typeAttribute = requestDoc.createAttribute("type");
    typeAttribute.setValue("application/atom+xml;type=entry;charset=utf-8");
    contentElement.setAttributeNode(typeAttribute);

    Element queueDescriptionElement = requestDoc.createElementNS(
            "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect", "QueueDescription");
    contentElement.appendChild(queueDescriptionElement);

    if (queue.getLockDuration() != null) {
        Element lockDurationElement = requestDoc.createElementNS(
                "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect", "LockDuration");
        lockDurationElement.appendChild(requestDoc.createTextNode(queue.getLockDuration()));
        queueDescriptionElement.appendChild(lockDurationElement);
    }

    Element maxSizeInMegabytesElement = requestDoc.createElementNS(
            "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect", "MaxSizeInMegabytes");
    maxSizeInMegabytesElement
            .appendChild(requestDoc.createTextNode(Integer.toString(queue.getMaxSizeInMegabytes())));
    queueDescriptionElement.appendChild(maxSizeInMegabytesElement);

    Element requiresDuplicateDetectionElement = requestDoc.createElementNS(
            "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
            "RequiresDuplicateDetection");
    requiresDuplicateDetectionElement.appendChild(
            requestDoc.createTextNode(Boolean.toString(queue.isRequiresDuplicateDetection()).toLowerCase()));
    queueDescriptionElement.appendChild(requiresDuplicateDetectionElement);

    Element requiresSessionElement = requestDoc.createElementNS(
            "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect", "RequiresSession");
    requiresSessionElement
            .appendChild(requestDoc.createTextNode(Boolean.toString(queue.isRequiresSession()).toLowerCase()));
    queueDescriptionElement.appendChild(requiresSessionElement);

    if (queue.getDefaultMessageTimeToLive() != null) {
        Element defaultMessageTimeToLiveElement = requestDoc.createElementNS(
                "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                "DefaultMessageTimeToLive");
        defaultMessageTimeToLiveElement
                .appendChild(requestDoc.createTextNode(queue.getDefaultMessageTimeToLive()));
        queueDescriptionElement.appendChild(defaultMessageTimeToLiveElement);
    }

    Element deadLetteringOnMessageExpirationElement = requestDoc.createElementNS(
            "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
            "DeadLetteringOnMessageExpiration");
    deadLetteringOnMessageExpirationElement.appendChild(requestDoc
            .createTextNode(Boolean.toString(queue.isDeadLetteringOnMessageExpiration()).toLowerCase()));
    queueDescriptionElement.appendChild(deadLetteringOnMessageExpirationElement);

    if (queue.getDuplicateDetectionHistoryTimeWindow() != null) {
        Element duplicateDetectionHistoryTimeWindowElement = requestDoc.createElementNS(
                "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                "DuplicateDetectionHistoryTimeWindow");
        duplicateDetectionHistoryTimeWindowElement
                .appendChild(requestDoc.createTextNode(queue.getDuplicateDetectionHistoryTimeWindow()));
        queueDescriptionElement.appendChild(duplicateDetectionHistoryTimeWindowElement);
    }

    Element enableBatchedOperationsElement = requestDoc.createElementNS(
            "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect", "EnableBatchedOperations");
    enableBatchedOperationsElement.appendChild(
            requestDoc.createTextNode(Boolean.toString(queue.isEnableBatchedOperations()).toLowerCase()));
    queueDescriptionElement.appendChild(enableBatchedOperationsElement);

    Element sizeInBytesElement = requestDoc.createElementNS(
            "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect", "SizeInBytes");
    sizeInBytesElement.appendChild(requestDoc.createTextNode(Integer.toString(queue.getSizeInBytes())));
    queueDescriptionElement.appendChild(sizeInBytesElement);

    Element messageCountElement = requestDoc.createElementNS(
            "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect", "MessageCount");
    messageCountElement.appendChild(requestDoc.createTextNode(Integer.toString(queue.getMessageCount())));
    queueDescriptionElement.appendChild(messageCountElement);

    Element isAnonymousAccessibleElement = requestDoc.createElementNS(
            "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect", "IsAnonymousAccessible");
    isAnonymousAccessibleElement.appendChild(
            requestDoc.createTextNode(Boolean.toString(queue.isAnonymousAccessible()).toLowerCase()));
    queueDescriptionElement.appendChild(isAnonymousAccessibleElement);

    if (queue.getAuthorizationRules() != null) {
        if (queue.getAuthorizationRules() instanceof LazyCollection == false
                || ((LazyCollection) queue.getAuthorizationRules()).isInitialized()) {
            Element authorizationRulesSequenceElement = requestDoc.createElementNS(
                    "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                    "AuthorizationRules");
            for (ServiceBusSharedAccessAuthorizationRule authorizationRulesItem : queue
                    .getAuthorizationRules()) {
                Element authorizationRuleElement = requestDoc.createElementNS(
                        "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                        "AuthorizationRule");
                authorizationRulesSequenceElement.appendChild(authorizationRuleElement);

                Attr typeAttribute2 = requestDoc.createAttributeNS("http://www.w3.org/2001/XMLSchema-instance",
                        "type");
                typeAttribute2.setValue("SharedAccessAuthorizationRule");
                authorizationRuleElement.setAttributeNode(typeAttribute2);

                if (authorizationRulesItem.getClaimType() != null) {
                    Element claimTypeElement = requestDoc.createElementNS(
                            "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect", "ClaimType");
                    claimTypeElement
                            .appendChild(requestDoc.createTextNode(authorizationRulesItem.getClaimType()));
                    authorizationRuleElement.appendChild(claimTypeElement);
                }

                if (authorizationRulesItem.getClaimValue() != null) {
                    Element claimValueElement = requestDoc.createElementNS(
                            "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                            "ClaimValue");
                    claimValueElement
                            .appendChild(requestDoc.createTextNode(authorizationRulesItem.getClaimValue()));
                    authorizationRuleElement.appendChild(claimValueElement);
                }

                if (authorizationRulesItem.getRights() != null) {
                    if (authorizationRulesItem.getRights() instanceof LazyCollection == false
                            || ((LazyCollection) authorizationRulesItem.getRights()).isInitialized()) {
                        Element rightsSequenceElement = requestDoc.createElementNS(
                                "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                                "Rights");
                        for (AccessRight rightsItem : authorizationRulesItem.getRights()) {
                            Element rightsItemElement = requestDoc.createElementNS(
                                    "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                                    "AccessRights");
                            rightsItemElement.appendChild(requestDoc.createTextNode(rightsItem.toString()));
                            rightsSequenceElement.appendChild(rightsItemElement);
                        }
                        authorizationRuleElement.appendChild(rightsSequenceElement);
                    }
                }

                Element createdTimeElement = requestDoc.createElementNS(
                        "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect", "CreatedTime");
                SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSSSS'Z'");
                simpleDateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
                createdTimeElement.appendChild(requestDoc.createTextNode(
                        simpleDateFormat.format(authorizationRulesItem.getCreatedTime().getTime())));
                authorizationRuleElement.appendChild(createdTimeElement);

                if (authorizationRulesItem.getKeyName() != null) {
                    Element keyNameElement = requestDoc.createElementNS(
                            "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect", "KeyName");
                    keyNameElement.appendChild(requestDoc.createTextNode(authorizationRulesItem.getKeyName()));
                    authorizationRuleElement.appendChild(keyNameElement);
                }

                Element modifiedTimeElement = requestDoc.createElementNS(
                        "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect", "ModifiedTime");
                SimpleDateFormat simpleDateFormat2 = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSSSS'Z'");
                simpleDateFormat2.setTimeZone(TimeZone.getTimeZone("UTC"));
                modifiedTimeElement.appendChild(requestDoc.createTextNode(
                        simpleDateFormat2.format(authorizationRulesItem.getModifiedTime().getTime())));
                authorizationRuleElement.appendChild(modifiedTimeElement);

                if (authorizationRulesItem.getPrimaryKey() != null) {
                    Element primaryKeyElement = requestDoc.createElementNS(
                            "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                            "PrimaryKey");
                    primaryKeyElement
                            .appendChild(requestDoc.createTextNode(authorizationRulesItem.getPrimaryKey()));
                    authorizationRuleElement.appendChild(primaryKeyElement);
                }

                if (authorizationRulesItem.getSecondaryKey() != null) {
                    Element secondaryKeyElement = requestDoc.createElementNS(
                            "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                            "SecondaryKey");
                    secondaryKeyElement
                            .appendChild(requestDoc.createTextNode(authorizationRulesItem.getSecondaryKey()));
                    authorizationRuleElement.appendChild(secondaryKeyElement);
                }
            }
            queueDescriptionElement.appendChild(authorizationRulesSequenceElement);
        }
    }

    if (queue.getStatus() != null) {
        Element statusElement = requestDoc.createElementNS(
                "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect", "Status");
        statusElement.appendChild(requestDoc.createTextNode(queue.getStatus()));
        queueDescriptionElement.appendChild(statusElement);
    }

    Element supportOrderingElement = requestDoc.createElementNS(
            "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect", "SupportOrdering");
    supportOrderingElement
            .appendChild(requestDoc.createTextNode(Boolean.toString(queue.isSupportOrdering()).toLowerCase()));
    queueDescriptionElement.appendChild(supportOrderingElement);

    if (queue.getCountDetails() != null) {
        Element countDetailsElement = requestDoc.createElementNS(
                "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect", "CountDetails");
        queueDescriptionElement.appendChild(countDetailsElement);

        Element activeMessageCountElement = requestDoc.createElementNS(
                "http://schemas.microsoft.com/netservices/2011/06/servicebus", "ActiveMessageCount");
        activeMessageCountElement.appendChild(
                requestDoc.createTextNode(Integer.toString(queue.getCountDetails().getActiveMessageCount())));
        countDetailsElement.appendChild(activeMessageCountElement);

        Element deadLetterMessageCountElement = requestDoc.createElementNS(
                "http://schemas.microsoft.com/netservices/2011/06/servicebus", "DeadLetterMessageCount");
        deadLetterMessageCountElement.appendChild(requestDoc
                .createTextNode(Integer.toString(queue.getCountDetails().getDeadLetterMessageCount())));
        countDetailsElement.appendChild(deadLetterMessageCountElement);

        Element scheduledMessageCountElement = requestDoc.createElementNS(
                "http://schemas.microsoft.com/netservices/2011/06/servicebus", "ScheduledMessageCount");
        scheduledMessageCountElement.appendChild(requestDoc
                .createTextNode(Integer.toString(queue.getCountDetails().getScheduledMessageCount())));
        countDetailsElement.appendChild(scheduledMessageCountElement);

        Element transferDeadLetterMessageCountElement = requestDoc.createElementNS(
                "http://schemas.microsoft.com/netservices/2011/06/servicebus",
                "TransferDeadLetterMessageCount");
        transferDeadLetterMessageCountElement.appendChild(requestDoc
                .createTextNode(Integer.toString(queue.getCountDetails().getTransferDeadLetterMessageCount())));
        countDetailsElement.appendChild(transferDeadLetterMessageCountElement);

        Element transferMessageCountElement = requestDoc.createElementNS(
                "http://schemas.microsoft.com/netservices/2011/06/servicebus", "TransferMessageCount");
        transferMessageCountElement.appendChild(
                requestDoc.createTextNode(Integer.toString(queue.getCountDetails().getTransferMessageCount())));
        countDetailsElement.appendChild(transferMessageCountElement);
    }

    if (queue.getAutoDeleteOnIdle() != null) {
        Element autoDeleteOnIdleElement = requestDoc.createElementNS(
                "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect", "AutoDeleteOnIdle");
        autoDeleteOnIdleElement.appendChild(requestDoc.createTextNode(queue.getAutoDeleteOnIdle()));
        queueDescriptionElement.appendChild(autoDeleteOnIdleElement);
    }

    if (queue.getEntityAvailabilityStatus() != null) {
        Element entityAvailabilityStatusElement = requestDoc.createElementNS(
                "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                "EntityAvailabilityStatus");
        entityAvailabilityStatusElement
                .appendChild(requestDoc.createTextNode(queue.getEntityAvailabilityStatus()));
        queueDescriptionElement.appendChild(entityAvailabilityStatusElement);
    }

    DOMSource domSource = new DOMSource(requestDoc);
    StringWriter stringWriter = new StringWriter();
    StreamResult streamResult = new StreamResult(stringWriter);
    TransformerFactory transformerFactory = TransformerFactory.newInstance();
    Transformer transformer = transformerFactory.newTransformer();
    transformer.transform(domSource, streamResult);
    requestContent = stringWriter.toString();
    StringEntity entity = new StringEntity(requestContent);
    httpRequest.setEntity(entity);
    httpRequest.setHeader("Content-Type", "application/atom+xml");

    // Send Request
    HttpResponse httpResponse = null;
    try {
        if (shouldTrace) {
            CloudTracing.sendRequest(invocationId, httpRequest);
        }
        httpResponse = this.getClient().getHttpClient().execute(httpRequest);
        if (shouldTrace) {
            CloudTracing.receiveResponse(invocationId, httpResponse);
        }
        int statusCode = httpResponse.getStatusLine().getStatusCode();
        if (statusCode != HttpStatus.SC_OK) {
            ServiceException ex = ServiceException.createFromXml(httpRequest, requestContent, httpResponse,
                    httpResponse.getEntity());
            if (shouldTrace) {
                CloudTracing.error(invocationId, ex);
            }
            throw ex;
        }

        // Create Result
        ServiceBusQueueResponse result = null;
        // Deserialize Response
        if (statusCode == HttpStatus.SC_OK) {
            InputStream responseContent = httpResponse.getEntity().getContent();
            result = new ServiceBusQueueResponse();
            DocumentBuilderFactory documentBuilderFactory2 = DocumentBuilderFactory.newInstance();
            documentBuilderFactory2.setNamespaceAware(true);
            DocumentBuilder documentBuilder2 = documentBuilderFactory2.newDocumentBuilder();
            Document responseDoc = documentBuilder2.parse(new BOMInputStream(responseContent));

            Element entryElement2 = XmlUtility.getElementByTagNameNS(responseDoc, "http://www.w3.org/2005/Atom",
                    "entry");
            if (entryElement2 != null) {
                Element titleElement = XmlUtility.getElementByTagNameNS(entryElement2,
                        "http://www.w3.org/2005/Atom", "title");
                if (titleElement != null) {
                }

                Element contentElement2 = XmlUtility.getElementByTagNameNS(entryElement2,
                        "http://www.w3.org/2005/Atom", "content");
                if (contentElement2 != null) {
                    Element queueDescriptionElement2 = XmlUtility.getElementByTagNameNS(contentElement2,
                            "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                            "QueueDescription");
                    if (queueDescriptionElement2 != null) {
                        ServiceBusQueue queueDescriptionInstance = new ServiceBusQueue();
                        result.setQueue(queueDescriptionInstance);

                        Element lockDurationElement2 = XmlUtility.getElementByTagNameNS(
                                queueDescriptionElement2,
                                "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                                "LockDuration");
                        if (lockDurationElement2 != null) {
                            String lockDurationInstance;
                            lockDurationInstance = lockDurationElement2.getTextContent();
                            queueDescriptionInstance.setLockDuration(lockDurationInstance);
                        }

                        Element maxSizeInMegabytesElement2 = XmlUtility.getElementByTagNameNS(
                                queueDescriptionElement2,
                                "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                                "MaxSizeInMegabytes");
                        if (maxSizeInMegabytesElement2 != null) {
                            int maxSizeInMegabytesInstance;
                            maxSizeInMegabytesInstance = DatatypeConverter
                                    .parseInt(maxSizeInMegabytesElement2.getTextContent());
                            queueDescriptionInstance.setMaxSizeInMegabytes(maxSizeInMegabytesInstance);
                        }

                        Element requiresDuplicateDetectionElement2 = XmlUtility.getElementByTagNameNS(
                                queueDescriptionElement2,
                                "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                                "RequiresDuplicateDetection");
                        if (requiresDuplicateDetectionElement2 != null) {
                            boolean requiresDuplicateDetectionInstance;
                            requiresDuplicateDetectionInstance = DatatypeConverter.parseBoolean(
                                    requiresDuplicateDetectionElement2.getTextContent().toLowerCase());
                            queueDescriptionInstance
                                    .setRequiresDuplicateDetection(requiresDuplicateDetectionInstance);
                        }

                        Element requiresSessionElement2 = XmlUtility.getElementByTagNameNS(
                                queueDescriptionElement2,
                                "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                                "RequiresSession");
                        if (requiresSessionElement2 != null) {
                            boolean requiresSessionInstance;
                            requiresSessionInstance = DatatypeConverter
                                    .parseBoolean(requiresSessionElement2.getTextContent().toLowerCase());
                            queueDescriptionInstance.setRequiresSession(requiresSessionInstance);
                        }

                        Element defaultMessageTimeToLiveElement2 = XmlUtility.getElementByTagNameNS(
                                queueDescriptionElement2,
                                "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                                "DefaultMessageTimeToLive");
                        if (defaultMessageTimeToLiveElement2 != null) {
                            String defaultMessageTimeToLiveInstance;
                            defaultMessageTimeToLiveInstance = defaultMessageTimeToLiveElement2
                                    .getTextContent();
                            queueDescriptionInstance
                                    .setDefaultMessageTimeToLive(defaultMessageTimeToLiveInstance);
                        }

                        Element deadLetteringOnMessageExpirationElement2 = XmlUtility.getElementByTagNameNS(
                                queueDescriptionElement2,
                                "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                                "DeadLetteringOnMessageExpiration");
                        if (deadLetteringOnMessageExpirationElement2 != null) {
                            boolean deadLetteringOnMessageExpirationInstance;
                            deadLetteringOnMessageExpirationInstance = DatatypeConverter.parseBoolean(
                                    deadLetteringOnMessageExpirationElement2.getTextContent().toLowerCase());
                            queueDescriptionInstance.setDeadLetteringOnMessageExpiration(
                                    deadLetteringOnMessageExpirationInstance);
                        }

                        Element duplicateDetectionHistoryTimeWindowElement2 = XmlUtility.getElementByTagNameNS(
                                queueDescriptionElement2,
                                "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                                "DuplicateDetectionHistoryTimeWindow");
                        if (duplicateDetectionHistoryTimeWindowElement2 != null) {
                            String duplicateDetectionHistoryTimeWindowInstance;
                            duplicateDetectionHistoryTimeWindowInstance = duplicateDetectionHistoryTimeWindowElement2
                                    .getTextContent();
                            queueDescriptionInstance.setDuplicateDetectionHistoryTimeWindow(
                                    duplicateDetectionHistoryTimeWindowInstance);
                        }

                        Element maxDeliveryCountElement = XmlUtility.getElementByTagNameNS(
                                queueDescriptionElement2,
                                "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                                "MaxDeliveryCount");
                        if (maxDeliveryCountElement != null) {
                            int maxDeliveryCountInstance;
                            maxDeliveryCountInstance = DatatypeConverter
                                    .parseInt(maxDeliveryCountElement.getTextContent());
                            queueDescriptionInstance.setMaxDeliveryCount(maxDeliveryCountInstance);
                        }

                        Element enableBatchedOperationsElement2 = XmlUtility.getElementByTagNameNS(
                                queueDescriptionElement2,
                                "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                                "EnableBatchedOperations");
                        if (enableBatchedOperationsElement2 != null) {
                            boolean enableBatchedOperationsInstance;
                            enableBatchedOperationsInstance = DatatypeConverter.parseBoolean(
                                    enableBatchedOperationsElement2.getTextContent().toLowerCase());
                            queueDescriptionInstance
                                    .setEnableBatchedOperations(enableBatchedOperationsInstance);
                        }

                        Element sizeInBytesElement2 = XmlUtility.getElementByTagNameNS(queueDescriptionElement2,
                                "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                                "SizeInBytes");
                        if (sizeInBytesElement2 != null) {
                            int sizeInBytesInstance;
                            sizeInBytesInstance = DatatypeConverter
                                    .parseInt(sizeInBytesElement2.getTextContent());
                            queueDescriptionInstance.setSizeInBytes(sizeInBytesInstance);
                        }

                        Element messageCountElement2 = XmlUtility.getElementByTagNameNS(
                                queueDescriptionElement2,
                                "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                                "MessageCount");
                        if (messageCountElement2 != null) {
                            int messageCountInstance;
                            messageCountInstance = DatatypeConverter
                                    .parseInt(messageCountElement2.getTextContent());
                            queueDescriptionInstance.setMessageCount(messageCountInstance);
                        }

                        Element isAnonymousAccessibleElement2 = XmlUtility.getElementByTagNameNS(
                                queueDescriptionElement2,
                                "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                                "IsAnonymousAccessible");
                        if (isAnonymousAccessibleElement2 != null) {
                            boolean isAnonymousAccessibleInstance;
                            isAnonymousAccessibleInstance = DatatypeConverter
                                    .parseBoolean(isAnonymousAccessibleElement2.getTextContent().toLowerCase());
                            queueDescriptionInstance.setIsAnonymousAccessible(isAnonymousAccessibleInstance);
                        }

                        Element authorizationRulesSequenceElement2 = XmlUtility.getElementByTagNameNS(
                                queueDescriptionElement2,
                                "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                                "AuthorizationRules");
                        if (authorizationRulesSequenceElement2 != null) {
                            for (int i1 = 0; i1 < com.microsoft.windowsazure.core.utils.XmlUtility
                                    .getElementsByTagNameNS(authorizationRulesSequenceElement2,
                                            "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                                            "AuthorizationRule")
                                    .size(); i1 = i1 + 1) {
                                org.w3c.dom.Element authorizationRulesElement = ((org.w3c.dom.Element) com.microsoft.windowsazure.core.utils.XmlUtility
                                        .getElementsByTagNameNS(authorizationRulesSequenceElement2,
                                                "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                                                "AuthorizationRule")
                                        .get(i1));
                                ServiceBusSharedAccessAuthorizationRule authorizationRuleInstance = new ServiceBusSharedAccessAuthorizationRule();
                                queueDescriptionInstance.getAuthorizationRules().add(authorizationRuleInstance);

                                Element claimTypeElement2 = XmlUtility.getElementByTagNameNS(
                                        authorizationRulesElement,
                                        "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                                        "ClaimType");
                                if (claimTypeElement2 != null) {
                                    String claimTypeInstance;
                                    claimTypeInstance = claimTypeElement2.getTextContent();
                                    authorizationRuleInstance.setClaimType(claimTypeInstance);
                                }

                                Element claimValueElement2 = XmlUtility.getElementByTagNameNS(
                                        authorizationRulesElement,
                                        "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                                        "ClaimValue");
                                if (claimValueElement2 != null) {
                                    String claimValueInstance;
                                    claimValueInstance = claimValueElement2.getTextContent();
                                    authorizationRuleInstance.setClaimValue(claimValueInstance);
                                }

                                Element rightsSequenceElement2 = XmlUtility.getElementByTagNameNS(
                                        authorizationRulesElement,
                                        "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                                        "Rights");
                                if (rightsSequenceElement2 != null) {
                                    for (int i2 = 0; i2 < com.microsoft.windowsazure.core.utils.XmlUtility
                                            .getElementsByTagNameNS(rightsSequenceElement2,
                                                    "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                                                    "AccessRights")
                                            .size(); i2 = i2 + 1) {
                                        org.w3c.dom.Element rightsElement = ((org.w3c.dom.Element) com.microsoft.windowsazure.core.utils.XmlUtility
                                                .getElementsByTagNameNS(rightsSequenceElement2,
                                                        "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                                                        "AccessRights")
                                                .get(i2));
                                        authorizationRuleInstance.getRights()
                                                .add(AccessRight.valueOf(rightsElement.getTextContent()));
                                    }
                                }

                                Element createdTimeElement2 = XmlUtility.getElementByTagNameNS(
                                        authorizationRulesElement,
                                        "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                                        "CreatedTime");
                                if (createdTimeElement2 != null) {
                                    Calendar createdTimeInstance;
                                    createdTimeInstance = DatatypeConverter
                                            .parseDateTime(createdTimeElement2.getTextContent());
                                    authorizationRuleInstance.setCreatedTime(createdTimeInstance);
                                }

                                Element keyNameElement2 = XmlUtility.getElementByTagNameNS(
                                        authorizationRulesElement,
                                        "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                                        "KeyName");
                                if (keyNameElement2 != null) {
                                    String keyNameInstance;
                                    keyNameInstance = keyNameElement2.getTextContent();
                                    authorizationRuleInstance.setKeyName(keyNameInstance);
                                }

                                Element modifiedTimeElement2 = XmlUtility.getElementByTagNameNS(
                                        authorizationRulesElement,
                                        "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                                        "ModifiedTime");
                                if (modifiedTimeElement2 != null) {
                                    Calendar modifiedTimeInstance;
                                    modifiedTimeInstance = DatatypeConverter
                                            .parseDateTime(modifiedTimeElement2.getTextContent());
                                    authorizationRuleInstance.setModifiedTime(modifiedTimeInstance);
                                }

                                Element primaryKeyElement2 = XmlUtility.getElementByTagNameNS(
                                        authorizationRulesElement,
                                        "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                                        "PrimaryKey");
                                if (primaryKeyElement2 != null) {
                                    String primaryKeyInstance;
                                    primaryKeyInstance = primaryKeyElement2.getTextContent();
                                    authorizationRuleInstance.setPrimaryKey(primaryKeyInstance);
                                }

                                Element secondaryKeyElement2 = XmlUtility.getElementByTagNameNS(
                                        authorizationRulesElement,
                                        "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                                        "SecondaryKey");
                                if (secondaryKeyElement2 != null) {
                                    String secondaryKeyInstance;
                                    secondaryKeyInstance = secondaryKeyElement2.getTextContent();
                                    authorizationRuleInstance.setSecondaryKey(secondaryKeyInstance);
                                }
                            }
                        }

                        Element statusElement2 = XmlUtility.getElementByTagNameNS(queueDescriptionElement2,
                                "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                                "Status");
                        if (statusElement2 != null) {
                            String statusInstance;
                            statusInstance = statusElement2.getTextContent();
                            queueDescriptionInstance.setStatus(statusInstance);
                        }

                        Element createdAtElement = XmlUtility.getElementByTagNameNS(queueDescriptionElement2,
                                "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                                "CreatedAt");
                        if (createdAtElement != null) {
                            Calendar createdAtInstance;
                            createdAtInstance = DatatypeConverter
                                    .parseDateTime(createdAtElement.getTextContent());
                            queueDescriptionInstance.setCreatedAt(createdAtInstance);
                        }

                        Element updatedAtElement = XmlUtility.getElementByTagNameNS(queueDescriptionElement2,
                                "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                                "UpdatedAt");
                        if (updatedAtElement != null) {
                            Calendar updatedAtInstance;
                            updatedAtInstance = DatatypeConverter
                                    .parseDateTime(updatedAtElement.getTextContent());
                            queueDescriptionInstance.setUpdatedAt(updatedAtInstance);
                        }

                        Element accessedAtElement = XmlUtility.getElementByTagNameNS(queueDescriptionElement2,
                                "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                                "AccessedAt");
                        if (accessedAtElement != null) {
                            Calendar accessedAtInstance;
                            accessedAtInstance = DatatypeConverter
                                    .parseDateTime(accessedAtElement.getTextContent());
                            queueDescriptionInstance.setAccessedAt(accessedAtInstance);
                        }

                        Element supportOrderingElement2 = XmlUtility.getElementByTagNameNS(
                                queueDescriptionElement2,
                                "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                                "SupportOrdering");
                        if (supportOrderingElement2 != null) {
                            boolean supportOrderingInstance;
                            supportOrderingInstance = DatatypeConverter
                                    .parseBoolean(supportOrderingElement2.getTextContent().toLowerCase());
                            queueDescriptionInstance.setSupportOrdering(supportOrderingInstance);
                        }

                        Element countDetailsElement2 = XmlUtility.getElementByTagNameNS(
                                queueDescriptionElement2,
                                "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                                "CountDetails");
                        if (countDetailsElement2 != null) {
                            CountDetails countDetailsInstance = new CountDetails();
                            queueDescriptionInstance.setCountDetails(countDetailsInstance);

                            Element activeMessageCountElement2 = XmlUtility.getElementByTagNameNS(
                                    countDetailsElement2,
                                    "http://schemas.microsoft.com/netservices/2011/06/servicebus",
                                    "ActiveMessageCount");
                            if (activeMessageCountElement2 != null) {
                                int activeMessageCountInstance;
                                activeMessageCountInstance = DatatypeConverter
                                        .parseInt(activeMessageCountElement2.getTextContent());
                                countDetailsInstance.setActiveMessageCount(activeMessageCountInstance);
                            }

                            Element deadLetterMessageCountElement2 = XmlUtility.getElementByTagNameNS(
                                    countDetailsElement2,
                                    "http://schemas.microsoft.com/netservices/2011/06/servicebus",
                                    "DeadLetterMessageCount");
                            if (deadLetterMessageCountElement2 != null) {
                                int deadLetterMessageCountInstance;
                                deadLetterMessageCountInstance = DatatypeConverter
                                        .parseInt(deadLetterMessageCountElement2.getTextContent());
                                countDetailsInstance.setDeadLetterMessageCount(deadLetterMessageCountInstance);
                            }

                            Element scheduledMessageCountElement2 = XmlUtility.getElementByTagNameNS(
                                    countDetailsElement2,
                                    "http://schemas.microsoft.com/netservices/2011/06/servicebus",
                                    "ScheduledMessageCount");
                            if (scheduledMessageCountElement2 != null) {
                                int scheduledMessageCountInstance;
                                scheduledMessageCountInstance = DatatypeConverter
                                        .parseInt(scheduledMessageCountElement2.getTextContent());
                                countDetailsInstance.setScheduledMessageCount(scheduledMessageCountInstance);
                            }

                            Element transferDeadLetterMessageCountElement2 = XmlUtility.getElementByTagNameNS(
                                    countDetailsElement2,
                                    "http://schemas.microsoft.com/netservices/2011/06/servicebus",
                                    "TransferDeadLetterMessageCount");
                            if (transferDeadLetterMessageCountElement2 != null) {
                                int transferDeadLetterMessageCountInstance;
                                transferDeadLetterMessageCountInstance = DatatypeConverter
                                        .parseInt(transferDeadLetterMessageCountElement2.getTextContent());
                                countDetailsInstance.setTransferDeadLetterMessageCount(
                                        transferDeadLetterMessageCountInstance);
                            }

                            Element transferMessageCountElement2 = XmlUtility.getElementByTagNameNS(
                                    countDetailsElement2,
                                    "http://schemas.microsoft.com/netservices/2011/06/servicebus",
                                    "TransferMessageCount");
                            if (transferMessageCountElement2 != null) {
                                int transferMessageCountInstance;
                                transferMessageCountInstance = DatatypeConverter
                                        .parseInt(transferMessageCountElement2.getTextContent());
                                countDetailsInstance.setTransferMessageCount(transferMessageCountInstance);
                            }
                        }

                        Element autoDeleteOnIdleElement2 = XmlUtility.getElementByTagNameNS(
                                queueDescriptionElement2,
                                "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                                "AutoDeleteOnIdle");
                        if (autoDeleteOnIdleElement2 != null) {
                            String autoDeleteOnIdleInstance;
                            autoDeleteOnIdleInstance = autoDeleteOnIdleElement2.getTextContent();
                            queueDescriptionInstance.setAutoDeleteOnIdle(autoDeleteOnIdleInstance);
                        }

                        Element entityAvailabilityStatusElement2 = XmlUtility.getElementByTagNameNS(
                                queueDescriptionElement2,
                                "http://schemas.microsoft.com/netservices/2010/10/servicebus/connect",
                                "EntityAvailabilityStatus");
                        if (entityAvailabilityStatusElement2 != null) {
                            String entityAvailabilityStatusInstance;
                            entityAvailabilityStatusInstance = entityAvailabilityStatusElement2
                                    .getTextContent();
                            queueDescriptionInstance
                                    .setEntityAvailabilityStatus(entityAvailabilityStatusInstance);
                        }
                    }
                }
            }

        }
        result.setStatusCode(statusCode);
        if (httpResponse.getHeaders("x-ms-request-id").length > 0) {
            result.setRequestId(httpResponse.getFirstHeader("x-ms-request-id").getValue());
        }

        if (shouldTrace) {
            CloudTracing.exit(invocationId, result);
        }
        return result;
    } finally {
        if (httpResponse != null && httpResponse.getEntity() != null) {
            httpResponse.getEntity().getContent().close();
        }
    }
}

From source file:com.microsoft.azure.management.sql.DatabaseActivationOperationsImpl.java

/**
* Start an Azure SQL Data Warehouse database resume operation. To determine
* the status of the operation call GetDatabaseActivationOperationStatus.
*
* @param resourceGroupName Required. The name of the Resource Group to
* which the Azure SQL Server belongs.//from  w  ww  . ja  va 2 s  .com
* @param serverName Required. The name of the Azure SQL Server on which the
* data warehouse database is hosted.
* @param databaseName Required. The name of the Azure SQL Data Warehouse
* database to resume.
* @throws IOException Signals that an I/O exception of some sort has
* occurred. This class is the general class of exceptions produced by
* failed or interrupted I/O operations.
* @throws ServiceException Thrown if an unexpected response is found.
* @return Response for long running Azure Sql Database operations.
*/
@Override
public DatabaseCreateOrUpdateResponse beginResume(String resourceGroupName, String serverName,
        String databaseName) throws IOException, ServiceException {
    // Validate
    if (resourceGroupName == null) {
        throw new NullPointerException("resourceGroupName");
    }
    if (serverName == null) {
        throw new NullPointerException("serverName");
    }
    if (databaseName == null) {
        throw new NullPointerException("databaseName");
    }

    // Tracing
    boolean shouldTrace = CloudTracing.getIsEnabled();
    String invocationId = null;
    if (shouldTrace) {
        invocationId = Long.toString(CloudTracing.getNextInvocationId());
        HashMap<String, Object> tracingParameters = new HashMap<String, Object>();
        tracingParameters.put("resourceGroupName", resourceGroupName);
        tracingParameters.put("serverName", serverName);
        tracingParameters.put("databaseName", databaseName);
        CloudTracing.enter(invocationId, this, "beginResumeAsync", tracingParameters);
    }

    // Construct URL
    String url = "";
    url = url + "/subscriptions/";
    if (this.getClient().getCredentials().getSubscriptionId() != null) {
        url = url + URLEncoder.encode(this.getClient().getCredentials().getSubscriptionId(), "UTF-8");
    }
    url = url + "/resourceGroups/";
    url = url + URLEncoder.encode(resourceGroupName, "UTF-8");
    url = url + "/providers/";
    url = url + "Microsoft.Sql";
    url = url + "/servers/";
    url = url + URLEncoder.encode(serverName, "UTF-8");
    url = url + "/databases/";
    url = url + URLEncoder.encode(databaseName, "UTF-8");
    url = url + "/resume";
    ArrayList<String> queryParameters = new ArrayList<String>();
    queryParameters.add("api-version=" + "2014-04-01");
    if (queryParameters.size() > 0) {
        url = url + "?" + CollectionStringBuilder.join(queryParameters, "&");
    }
    String baseUrl = this.getClient().getBaseUri().toString();
    // Trim '/' character from the end of baseUrl and beginning of url.
    if (baseUrl.charAt(baseUrl.length() - 1) == '/') {
        baseUrl = baseUrl.substring(0, (baseUrl.length() - 1) + 0);
    }
    if (url.charAt(0) == '/') {
        url = url.substring(1);
    }
    url = baseUrl + "/" + url;
    url = url.replace(" ", "%20");

    // Create HTTP transport objects
    HttpPost httpRequest = new HttpPost(url);

    // Set Headers
    httpRequest.setHeader("Content-Type", "application/json; charset=utf-8");

    // Send Request
    HttpResponse httpResponse = null;
    try {
        if (shouldTrace) {
            CloudTracing.sendRequest(invocationId, httpRequest);
        }
        httpResponse = this.getClient().getHttpClient().execute(httpRequest);
        if (shouldTrace) {
            CloudTracing.receiveResponse(invocationId, httpResponse);
        }
        int statusCode = httpResponse.getStatusLine().getStatusCode();
        if (statusCode != HttpStatus.SC_OK && statusCode != HttpStatus.SC_ACCEPTED) {
            ServiceException ex = ServiceException.createFromJson(httpRequest, null, httpResponse,
                    httpResponse.getEntity());
            if (shouldTrace) {
                CloudTracing.error(invocationId, ex);
            }
            throw ex;
        }

        // Create Result
        DatabaseCreateOrUpdateResponse result = null;
        // Deserialize Response
        if (statusCode == HttpStatus.SC_OK || statusCode == HttpStatus.SC_ACCEPTED) {
            InputStream responseContent = httpResponse.getEntity().getContent();
            result = new DatabaseCreateOrUpdateResponse();
            ObjectMapper objectMapper = new ObjectMapper();
            JsonNode responseDoc = null;
            String responseDocContent = IOUtils.toString(responseContent);
            if (responseDocContent == null == false && responseDocContent.length() > 0) {
                responseDoc = objectMapper.readTree(responseDocContent);
            }

            if (responseDoc != null && responseDoc instanceof NullNode == false) {
                ErrorResponse errorInstance = new ErrorResponse();
                result.setError(errorInstance);

                JsonNode codeValue = responseDoc.get("code");
                if (codeValue != null && codeValue instanceof NullNode == false) {
                    String codeInstance;
                    codeInstance = codeValue.getTextValue();
                    errorInstance.setCode(codeInstance);
                }

                JsonNode messageValue = responseDoc.get("message");
                if (messageValue != null && messageValue instanceof NullNode == false) {
                    String messageInstance;
                    messageInstance = messageValue.getTextValue();
                    errorInstance.setMessage(messageInstance);
                }

                JsonNode targetValue = responseDoc.get("target");
                if (targetValue != null && targetValue instanceof NullNode == false) {
                    String targetInstance;
                    targetInstance = targetValue.getTextValue();
                    errorInstance.setTarget(targetInstance);
                }

                Database databaseInstance = new Database();
                result.setDatabase(databaseInstance);

                JsonNode propertiesValue = responseDoc.get("properties");
                if (propertiesValue != null && propertiesValue instanceof NullNode == false) {
                    DatabaseProperties propertiesInstance = new DatabaseProperties();
                    databaseInstance.setProperties(propertiesInstance);

                    JsonNode collationValue = propertiesValue.get("collation");
                    if (collationValue != null && collationValue instanceof NullNode == false) {
                        String collationInstance;
                        collationInstance = collationValue.getTextValue();
                        propertiesInstance.setCollation(collationInstance);
                    }

                    JsonNode creationDateValue = propertiesValue.get("creationDate");
                    if (creationDateValue != null && creationDateValue instanceof NullNode == false) {
                        Calendar creationDateInstance;
                        creationDateInstance = DatatypeConverter
                                .parseDateTime(creationDateValue.getTextValue());
                        propertiesInstance.setCreationDate(creationDateInstance);
                    }

                    JsonNode currentServiceObjectiveIdValue = propertiesValue.get("currentServiceObjectiveId");
                    if (currentServiceObjectiveIdValue != null
                            && currentServiceObjectiveIdValue instanceof NullNode == false) {
                        String currentServiceObjectiveIdInstance;
                        currentServiceObjectiveIdInstance = currentServiceObjectiveIdValue.getTextValue();
                        propertiesInstance.setCurrentServiceObjectiveId(currentServiceObjectiveIdInstance);
                    }

                    JsonNode databaseIdValue = propertiesValue.get("databaseId");
                    if (databaseIdValue != null && databaseIdValue instanceof NullNode == false) {
                        String databaseIdInstance;
                        databaseIdInstance = databaseIdValue.getTextValue();
                        propertiesInstance.setDatabaseId(databaseIdInstance);
                    }

                    JsonNode earliestRestoreDateValue = propertiesValue.get("earliestRestoreDate");
                    if (earliestRestoreDateValue != null
                            && earliestRestoreDateValue instanceof NullNode == false) {
                        Calendar earliestRestoreDateInstance;
                        earliestRestoreDateInstance = DatatypeConverter
                                .parseDateTime(earliestRestoreDateValue.getTextValue());
                        propertiesInstance.setEarliestRestoreDate(earliestRestoreDateInstance);
                    }

                    JsonNode editionValue = propertiesValue.get("edition");
                    if (editionValue != null && editionValue instanceof NullNode == false) {
                        String editionInstance;
                        editionInstance = editionValue.getTextValue();
                        propertiesInstance.setEdition(editionInstance);
                    }

                    JsonNode maxSizeBytesValue = propertiesValue.get("maxSizeBytes");
                    if (maxSizeBytesValue != null && maxSizeBytesValue instanceof NullNode == false) {
                        long maxSizeBytesInstance;
                        maxSizeBytesInstance = maxSizeBytesValue.getLongValue();
                        propertiesInstance.setMaxSizeBytes(maxSizeBytesInstance);
                    }

                    JsonNode requestedServiceObjectiveIdValue = propertiesValue
                            .get("requestedServiceObjectiveId");
                    if (requestedServiceObjectiveIdValue != null
                            && requestedServiceObjectiveIdValue instanceof NullNode == false) {
                        String requestedServiceObjectiveIdInstance;
                        requestedServiceObjectiveIdInstance = requestedServiceObjectiveIdValue.getTextValue();
                        propertiesInstance.setRequestedServiceObjectiveId(requestedServiceObjectiveIdInstance);
                    }

                    JsonNode requestedServiceObjectiveNameValue = propertiesValue
                            .get("requestedServiceObjectiveName");
                    if (requestedServiceObjectiveNameValue != null
                            && requestedServiceObjectiveNameValue instanceof NullNode == false) {
                        String requestedServiceObjectiveNameInstance;
                        requestedServiceObjectiveNameInstance = requestedServiceObjectiveNameValue
                                .getTextValue();
                        propertiesInstance
                                .setRequestedServiceObjectiveName(requestedServiceObjectiveNameInstance);
                    }

                    JsonNode serviceLevelObjectiveValue = propertiesValue.get("serviceLevelObjective");
                    if (serviceLevelObjectiveValue != null
                            && serviceLevelObjectiveValue instanceof NullNode == false) {
                        String serviceLevelObjectiveInstance;
                        serviceLevelObjectiveInstance = serviceLevelObjectiveValue.getTextValue();
                        propertiesInstance.setServiceObjective(serviceLevelObjectiveInstance);
                    }

                    JsonNode statusValue = propertiesValue.get("status");
                    if (statusValue != null && statusValue instanceof NullNode == false) {
                        String statusInstance;
                        statusInstance = statusValue.getTextValue();
                        propertiesInstance.setStatus(statusInstance);
                    }

                    JsonNode elasticPoolNameValue = propertiesValue.get("elasticPoolName");
                    if (elasticPoolNameValue != null && elasticPoolNameValue instanceof NullNode == false) {
                        String elasticPoolNameInstance;
                        elasticPoolNameInstance = elasticPoolNameValue.getTextValue();
                        propertiesInstance.setElasticPoolName(elasticPoolNameInstance);
                    }

                    JsonNode serviceTierAdvisorsArray = propertiesValue.get("serviceTierAdvisors");
                    if (serviceTierAdvisorsArray != null
                            && serviceTierAdvisorsArray instanceof NullNode == false) {
                        for (JsonNode serviceTierAdvisorsValue : ((ArrayNode) serviceTierAdvisorsArray)) {
                            ServiceTierAdvisor serviceTierAdvisorInstance = new ServiceTierAdvisor();
                            propertiesInstance.getServiceTierAdvisors().add(serviceTierAdvisorInstance);

                            JsonNode propertiesValue2 = serviceTierAdvisorsValue.get("properties");
                            if (propertiesValue2 != null && propertiesValue2 instanceof NullNode == false) {
                                ServiceTierAdvisorProperties propertiesInstance2 = new ServiceTierAdvisorProperties();
                                serviceTierAdvisorInstance.setProperties(propertiesInstance2);

                                JsonNode observationPeriodStartValue = propertiesValue2
                                        .get("observationPeriodStart");
                                if (observationPeriodStartValue != null
                                        && observationPeriodStartValue instanceof NullNode == false) {
                                    Calendar observationPeriodStartInstance;
                                    observationPeriodStartInstance = DatatypeConverter
                                            .parseDateTime(observationPeriodStartValue.getTextValue());
                                    propertiesInstance2
                                            .setObservationPeriodStart(observationPeriodStartInstance);
                                }

                                JsonNode observationPeriodEndValue = propertiesValue2
                                        .get("observationPeriodEnd");
                                if (observationPeriodEndValue != null
                                        && observationPeriodEndValue instanceof NullNode == false) {
                                    Calendar observationPeriodEndInstance;
                                    observationPeriodEndInstance = DatatypeConverter
                                            .parseDateTime(observationPeriodEndValue.getTextValue());
                                    propertiesInstance2.setObservationPeriodEnd(observationPeriodEndInstance);
                                }

                                JsonNode activeTimeRatioValue = propertiesValue2.get("activeTimeRatio");
                                if (activeTimeRatioValue != null
                                        && activeTimeRatioValue instanceof NullNode == false) {
                                    double activeTimeRatioInstance;
                                    activeTimeRatioInstance = activeTimeRatioValue.getDoubleValue();
                                    propertiesInstance2.setActiveTimeRatio(activeTimeRatioInstance);
                                }

                                JsonNode minDtuValue = propertiesValue2.get("minDtu");
                                if (minDtuValue != null && minDtuValue instanceof NullNode == false) {
                                    double minDtuInstance;
                                    minDtuInstance = minDtuValue.getDoubleValue();
                                    propertiesInstance2.setMinDtu(minDtuInstance);
                                }

                                JsonNode avgDtuValue = propertiesValue2.get("avgDtu");
                                if (avgDtuValue != null && avgDtuValue instanceof NullNode == false) {
                                    double avgDtuInstance;
                                    avgDtuInstance = avgDtuValue.getDoubleValue();
                                    propertiesInstance2.setAvgDtu(avgDtuInstance);
                                }

                                JsonNode maxDtuValue = propertiesValue2.get("maxDtu");
                                if (maxDtuValue != null && maxDtuValue instanceof NullNode == false) {
                                    double maxDtuInstance;
                                    maxDtuInstance = maxDtuValue.getDoubleValue();
                                    propertiesInstance2.setMaxDtu(maxDtuInstance);
                                }

                                JsonNode maxSizeInGBValue = propertiesValue2.get("maxSizeInGB");
                                if (maxSizeInGBValue != null && maxSizeInGBValue instanceof NullNode == false) {
                                    double maxSizeInGBInstance;
                                    maxSizeInGBInstance = maxSizeInGBValue.getDoubleValue();
                                    propertiesInstance2.setMaxSizeInGB(maxSizeInGBInstance);
                                }

                                JsonNode serviceLevelObjectiveUsageMetricsArray = propertiesValue2
                                        .get("serviceLevelObjectiveUsageMetrics");
                                if (serviceLevelObjectiveUsageMetricsArray != null
                                        && serviceLevelObjectiveUsageMetricsArray instanceof NullNode == false) {
                                    for (JsonNode serviceLevelObjectiveUsageMetricsValue : ((ArrayNode) serviceLevelObjectiveUsageMetricsArray)) {
                                        SloUsageMetric sloUsageMetricInstance = new SloUsageMetric();
                                        propertiesInstance2.getServiceLevelObjectiveUsageMetrics()
                                                .add(sloUsageMetricInstance);

                                        JsonNode serviceLevelObjectiveValue2 = serviceLevelObjectiveUsageMetricsValue
                                                .get("serviceLevelObjective");
                                        if (serviceLevelObjectiveValue2 != null
                                                && serviceLevelObjectiveValue2 instanceof NullNode == false) {
                                            String serviceLevelObjectiveInstance2;
                                            serviceLevelObjectiveInstance2 = serviceLevelObjectiveValue2
                                                    .getTextValue();
                                            sloUsageMetricInstance
                                                    .setServiceLevelObjective(serviceLevelObjectiveInstance2);
                                        }

                                        JsonNode serviceLevelObjectiveIdValue = serviceLevelObjectiveUsageMetricsValue
                                                .get("serviceLevelObjectiveId");
                                        if (serviceLevelObjectiveIdValue != null
                                                && serviceLevelObjectiveIdValue instanceof NullNode == false) {
                                            String serviceLevelObjectiveIdInstance;
                                            serviceLevelObjectiveIdInstance = serviceLevelObjectiveIdValue
                                                    .getTextValue();
                                            sloUsageMetricInstance.setServiceLevelObjectiveId(
                                                    serviceLevelObjectiveIdInstance);
                                        }

                                        JsonNode inRangeTimeRatioValue = serviceLevelObjectiveUsageMetricsValue
                                                .get("inRangeTimeRatio");
                                        if (inRangeTimeRatioValue != null
                                                && inRangeTimeRatioValue instanceof NullNode == false) {
                                            double inRangeTimeRatioInstance;
                                            inRangeTimeRatioInstance = inRangeTimeRatioValue.getDoubleValue();
                                            sloUsageMetricInstance
                                                    .setInRangeTimeRatio(inRangeTimeRatioInstance);
                                        }

                                        JsonNode idValue = serviceLevelObjectiveUsageMetricsValue.get("id");
                                        if (idValue != null && idValue instanceof NullNode == false) {
                                            String idInstance;
                                            idInstance = idValue.getTextValue();
                                            sloUsageMetricInstance.setId(idInstance);
                                        }

                                        JsonNode nameValue = serviceLevelObjectiveUsageMetricsValue.get("name");
                                        if (nameValue != null && nameValue instanceof NullNode == false) {
                                            String nameInstance;
                                            nameInstance = nameValue.getTextValue();
                                            sloUsageMetricInstance.setName(nameInstance);
                                        }

                                        JsonNode typeValue = serviceLevelObjectiveUsageMetricsValue.get("type");
                                        if (typeValue != null && typeValue instanceof NullNode == false) {
                                            String typeInstance;
                                            typeInstance = typeValue.getTextValue();
                                            sloUsageMetricInstance.setType(typeInstance);
                                        }

                                        JsonNode locationValue = serviceLevelObjectiveUsageMetricsValue
                                                .get("location");
                                        if (locationValue != null
                                                && locationValue instanceof NullNode == false) {
                                            String locationInstance;
                                            locationInstance = locationValue.getTextValue();
                                            sloUsageMetricInstance.setLocation(locationInstance);
                                        }

                                        JsonNode tagsSequenceElement = ((JsonNode) serviceLevelObjectiveUsageMetricsValue
                                                .get("tags"));
                                        if (tagsSequenceElement != null
                                                && tagsSequenceElement instanceof NullNode == false) {
                                            Iterator<Map.Entry<String, JsonNode>> itr = tagsSequenceElement
                                                    .getFields();
                                            while (itr.hasNext()) {
                                                Map.Entry<String, JsonNode> property = itr.next();
                                                String tagsKey = property.getKey();
                                                String tagsValue = property.getValue().getTextValue();
                                                sloUsageMetricInstance.getTags().put(tagsKey, tagsValue);
                                            }
                                        }
                                    }
                                }

                                JsonNode currentServiceLevelObjectiveValue = propertiesValue2
                                        .get("currentServiceLevelObjective");
                                if (currentServiceLevelObjectiveValue != null
                                        && currentServiceLevelObjectiveValue instanceof NullNode == false) {
                                    String currentServiceLevelObjectiveInstance;
                                    currentServiceLevelObjectiveInstance = currentServiceLevelObjectiveValue
                                            .getTextValue();
                                    propertiesInstance2.setCurrentServiceLevelObjective(
                                            currentServiceLevelObjectiveInstance);
                                }

                                JsonNode currentServiceLevelObjectiveIdValue = propertiesValue2
                                        .get("currentServiceLevelObjectiveId");
                                if (currentServiceLevelObjectiveIdValue != null
                                        && currentServiceLevelObjectiveIdValue instanceof NullNode == false) {
                                    String currentServiceLevelObjectiveIdInstance;
                                    currentServiceLevelObjectiveIdInstance = currentServiceLevelObjectiveIdValue
                                            .getTextValue();
                                    propertiesInstance2.setCurrentServiceLevelObjectiveId(
                                            currentServiceLevelObjectiveIdInstance);
                                }

                                JsonNode usageBasedRecommendationServiceLevelObjectiveValue = propertiesValue2
                                        .get("usageBasedRecommendationServiceLevelObjective");
                                if (usageBasedRecommendationServiceLevelObjectiveValue != null
                                        && usageBasedRecommendationServiceLevelObjectiveValue instanceof NullNode == false) {
                                    String usageBasedRecommendationServiceLevelObjectiveInstance;
                                    usageBasedRecommendationServiceLevelObjectiveInstance = usageBasedRecommendationServiceLevelObjectiveValue
                                            .getTextValue();
                                    propertiesInstance2.setUsageBasedRecommendationServiceLevelObjective(
                                            usageBasedRecommendationServiceLevelObjectiveInstance);
                                }

                                JsonNode usageBasedRecommendationServiceLevelObjectiveIdValue = propertiesValue2
                                        .get("usageBasedRecommendationServiceLevelObjectiveId");
                                if (usageBasedRecommendationServiceLevelObjectiveIdValue != null
                                        && usageBasedRecommendationServiceLevelObjectiveIdValue instanceof NullNode == false) {
                                    String usageBasedRecommendationServiceLevelObjectiveIdInstance;
                                    usageBasedRecommendationServiceLevelObjectiveIdInstance = usageBasedRecommendationServiceLevelObjectiveIdValue
                                            .getTextValue();
                                    propertiesInstance2.setUsageBasedRecommendationServiceLevelObjectiveId(
                                            usageBasedRecommendationServiceLevelObjectiveIdInstance);
                                }

                                JsonNode databaseSizeBasedRecommendationServiceLevelObjectiveValue = propertiesValue2
                                        .get("databaseSizeBasedRecommendationServiceLevelObjective");
                                if (databaseSizeBasedRecommendationServiceLevelObjectiveValue != null
                                        && databaseSizeBasedRecommendationServiceLevelObjectiveValue instanceof NullNode == false) {
                                    String databaseSizeBasedRecommendationServiceLevelObjectiveInstance;
                                    databaseSizeBasedRecommendationServiceLevelObjectiveInstance = databaseSizeBasedRecommendationServiceLevelObjectiveValue
                                            .getTextValue();
                                    propertiesInstance2.setDatabaseSizeBasedRecommendationServiceLevelObjective(
                                            databaseSizeBasedRecommendationServiceLevelObjectiveInstance);
                                }

                                JsonNode databaseSizeBasedRecommendationServiceLevelObjectiveIdValue = propertiesValue2
                                        .get("databaseSizeBasedRecommendationServiceLevelObjectiveId");
                                if (databaseSizeBasedRecommendationServiceLevelObjectiveIdValue != null
                                        && databaseSizeBasedRecommendationServiceLevelObjectiveIdValue instanceof NullNode == false) {
                                    String databaseSizeBasedRecommendationServiceLevelObjectiveIdInstance;
                                    databaseSizeBasedRecommendationServiceLevelObjectiveIdInstance = databaseSizeBasedRecommendationServiceLevelObjectiveIdValue
                                            .getTextValue();
                                    propertiesInstance2
                                            .setDatabaseSizeBasedRecommendationServiceLevelObjectiveId(
                                                    databaseSizeBasedRecommendationServiceLevelObjectiveIdInstance);
                                }

                                JsonNode disasterPlanBasedRecommendationServiceLevelObjectiveValue = propertiesValue2
                                        .get("disasterPlanBasedRecommendationServiceLevelObjective");
                                if (disasterPlanBasedRecommendationServiceLevelObjectiveValue != null
                                        && disasterPlanBasedRecommendationServiceLevelObjectiveValue instanceof NullNode == false) {
                                    String disasterPlanBasedRecommendationServiceLevelObjectiveInstance;
                                    disasterPlanBasedRecommendationServiceLevelObjectiveInstance = disasterPlanBasedRecommendationServiceLevelObjectiveValue
                                            .getTextValue();
                                    propertiesInstance2.setDisasterPlanBasedRecommendationServiceLevelObjective(
                                            disasterPlanBasedRecommendationServiceLevelObjectiveInstance);
                                }

                                JsonNode disasterPlanBasedRecommendationServiceLevelObjectiveIdValue = propertiesValue2
                                        .get("disasterPlanBasedRecommendationServiceLevelObjectiveId");
                                if (disasterPlanBasedRecommendationServiceLevelObjectiveIdValue != null
                                        && disasterPlanBasedRecommendationServiceLevelObjectiveIdValue instanceof NullNode == false) {
                                    String disasterPlanBasedRecommendationServiceLevelObjectiveIdInstance;
                                    disasterPlanBasedRecommendationServiceLevelObjectiveIdInstance = disasterPlanBasedRecommendationServiceLevelObjectiveIdValue
                                            .getTextValue();
                                    propertiesInstance2
                                            .setDisasterPlanBasedRecommendationServiceLevelObjectiveId(
                                                    disasterPlanBasedRecommendationServiceLevelObjectiveIdInstance);
                                }

                                JsonNode overallRecommendationServiceLevelObjectiveValue = propertiesValue2
                                        .get("overallRecommendationServiceLevelObjective");
                                if (overallRecommendationServiceLevelObjectiveValue != null
                                        && overallRecommendationServiceLevelObjectiveValue instanceof NullNode == false) {
                                    String overallRecommendationServiceLevelObjectiveInstance;
                                    overallRecommendationServiceLevelObjectiveInstance = overallRecommendationServiceLevelObjectiveValue
                                            .getTextValue();
                                    propertiesInstance2.setOverallRecommendationServiceLevelObjective(
                                            overallRecommendationServiceLevelObjectiveInstance);
                                }

                                JsonNode overallRecommendationServiceLevelObjectiveIdValue = propertiesValue2
                                        .get("overallRecommendationServiceLevelObjectiveId");
                                if (overallRecommendationServiceLevelObjectiveIdValue != null
                                        && overallRecommendationServiceLevelObjectiveIdValue instanceof NullNode == false) {
                                    String overallRecommendationServiceLevelObjectiveIdInstance;
                                    overallRecommendationServiceLevelObjectiveIdInstance = overallRecommendationServiceLevelObjectiveIdValue
                                            .getTextValue();
                                    propertiesInstance2.setOverallRecommendationServiceLevelObjectiveId(
                                            overallRecommendationServiceLevelObjectiveIdInstance);
                                }

                                JsonNode confidenceValue = propertiesValue2.get("confidence");
                                if (confidenceValue != null && confidenceValue instanceof NullNode == false) {
                                    double confidenceInstance;
                                    confidenceInstance = confidenceValue.getDoubleValue();
                                    propertiesInstance2.setConfidence(confidenceInstance);
                                }
                            }

                            JsonNode idValue2 = serviceTierAdvisorsValue.get("id");
                            if (idValue2 != null && idValue2 instanceof NullNode == false) {
                                String idInstance2;
                                idInstance2 = idValue2.getTextValue();
                                serviceTierAdvisorInstance.setId(idInstance2);
                            }

                            JsonNode nameValue2 = serviceTierAdvisorsValue.get("name");
                            if (nameValue2 != null && nameValue2 instanceof NullNode == false) {
                                String nameInstance2;
                                nameInstance2 = nameValue2.getTextValue();
                                serviceTierAdvisorInstance.setName(nameInstance2);
                            }

                            JsonNode typeValue2 = serviceTierAdvisorsValue.get("type");
                            if (typeValue2 != null && typeValue2 instanceof NullNode == false) {
                                String typeInstance2;
                                typeInstance2 = typeValue2.getTextValue();
                                serviceTierAdvisorInstance.setType(typeInstance2);
                            }

                            JsonNode locationValue2 = serviceTierAdvisorsValue.get("location");
                            if (locationValue2 != null && locationValue2 instanceof NullNode == false) {
                                String locationInstance2;
                                locationInstance2 = locationValue2.getTextValue();
                                serviceTierAdvisorInstance.setLocation(locationInstance2);
                            }

                            JsonNode tagsSequenceElement2 = ((JsonNode) serviceTierAdvisorsValue.get("tags"));
                            if (tagsSequenceElement2 != null
                                    && tagsSequenceElement2 instanceof NullNode == false) {
                                Iterator<Map.Entry<String, JsonNode>> itr2 = tagsSequenceElement2.getFields();
                                while (itr2.hasNext()) {
                                    Map.Entry<String, JsonNode> property2 = itr2.next();
                                    String tagsKey2 = property2.getKey();
                                    String tagsValue2 = property2.getValue().getTextValue();
                                    serviceTierAdvisorInstance.getTags().put(tagsKey2, tagsValue2);
                                }
                            }
                        }
                    }

                    JsonNode upgradeHintValue = propertiesValue.get("upgradeHint");
                    if (upgradeHintValue != null && upgradeHintValue instanceof NullNode == false) {
                        UpgradeHint upgradeHintInstance = new UpgradeHint();
                        propertiesInstance.setUpgradeHint(upgradeHintInstance);

                        JsonNode targetServiceLevelObjectiveValue = upgradeHintValue
                                .get("targetServiceLevelObjective");
                        if (targetServiceLevelObjectiveValue != null
                                && targetServiceLevelObjectiveValue instanceof NullNode == false) {
                            String targetServiceLevelObjectiveInstance;
                            targetServiceLevelObjectiveInstance = targetServiceLevelObjectiveValue
                                    .getTextValue();
                            upgradeHintInstance
                                    .setTargetServiceLevelObjective(targetServiceLevelObjectiveInstance);
                        }

                        JsonNode targetServiceLevelObjectiveIdValue = upgradeHintValue
                                .get("targetServiceLevelObjectiveId");
                        if (targetServiceLevelObjectiveIdValue != null
                                && targetServiceLevelObjectiveIdValue instanceof NullNode == false) {
                            String targetServiceLevelObjectiveIdInstance;
                            targetServiceLevelObjectiveIdInstance = targetServiceLevelObjectiveIdValue
                                    .getTextValue();
                            upgradeHintInstance
                                    .setTargetServiceLevelObjectiveId(targetServiceLevelObjectiveIdInstance);
                        }

                        JsonNode idValue3 = upgradeHintValue.get("id");
                        if (idValue3 != null && idValue3 instanceof NullNode == false) {
                            String idInstance3;
                            idInstance3 = idValue3.getTextValue();
                            upgradeHintInstance.setId(idInstance3);
                        }

                        JsonNode nameValue3 = upgradeHintValue.get("name");
                        if (nameValue3 != null && nameValue3 instanceof NullNode == false) {
                            String nameInstance3;
                            nameInstance3 = nameValue3.getTextValue();
                            upgradeHintInstance.setName(nameInstance3);
                        }

                        JsonNode typeValue3 = upgradeHintValue.get("type");
                        if (typeValue3 != null && typeValue3 instanceof NullNode == false) {
                            String typeInstance3;
                            typeInstance3 = typeValue3.getTextValue();
                            upgradeHintInstance.setType(typeInstance3);
                        }

                        JsonNode locationValue3 = upgradeHintValue.get("location");
                        if (locationValue3 != null && locationValue3 instanceof NullNode == false) {
                            String locationInstance3;
                            locationInstance3 = locationValue3.getTextValue();
                            upgradeHintInstance.setLocation(locationInstance3);
                        }

                        JsonNode tagsSequenceElement3 = ((JsonNode) upgradeHintValue.get("tags"));
                        if (tagsSequenceElement3 != null && tagsSequenceElement3 instanceof NullNode == false) {
                            Iterator<Map.Entry<String, JsonNode>> itr3 = tagsSequenceElement3.getFields();
                            while (itr3.hasNext()) {
                                Map.Entry<String, JsonNode> property3 = itr3.next();
                                String tagsKey3 = property3.getKey();
                                String tagsValue3 = property3.getValue().getTextValue();
                                upgradeHintInstance.getTags().put(tagsKey3, tagsValue3);
                            }
                        }
                    }

                    JsonNode schemasArray = propertiesValue.get("schemas");
                    if (schemasArray != null && schemasArray instanceof NullNode == false) {
                        for (JsonNode schemasValue : ((ArrayNode) schemasArray)) {
                            Schema schemaInstance = new Schema();
                            propertiesInstance.getSchemas().add(schemaInstance);

                            JsonNode propertiesValue3 = schemasValue.get("properties");
                            if (propertiesValue3 != null && propertiesValue3 instanceof NullNode == false) {
                                SchemaProperties propertiesInstance3 = new SchemaProperties();
                                schemaInstance.setProperties(propertiesInstance3);

                                JsonNode tablesArray = propertiesValue3.get("tables");
                                if (tablesArray != null && tablesArray instanceof NullNode == false) {
                                    for (JsonNode tablesValue : ((ArrayNode) tablesArray)) {
                                        Table tableInstance = new Table();
                                        propertiesInstance3.getTables().add(tableInstance);

                                        JsonNode propertiesValue4 = tablesValue.get("properties");
                                        if (propertiesValue4 != null
                                                && propertiesValue4 instanceof NullNode == false) {
                                            TableProperties propertiesInstance4 = new TableProperties();
                                            tableInstance.setProperties(propertiesInstance4);

                                            JsonNode tableTypeValue = propertiesValue4.get("tableType");
                                            if (tableTypeValue != null
                                                    && tableTypeValue instanceof NullNode == false) {
                                                String tableTypeInstance;
                                                tableTypeInstance = tableTypeValue.getTextValue();
                                                propertiesInstance4.setTableType(tableTypeInstance);
                                            }

                                            JsonNode columnsArray = propertiesValue4.get("columns");
                                            if (columnsArray != null
                                                    && columnsArray instanceof NullNode == false) {
                                                for (JsonNode columnsValue : ((ArrayNode) columnsArray)) {
                                                    Column columnInstance = new Column();
                                                    propertiesInstance4.getColumns().add(columnInstance);

                                                    JsonNode propertiesValue5 = columnsValue.get("properties");
                                                    if (propertiesValue5 != null
                                                            && propertiesValue5 instanceof NullNode == false) {
                                                        ColumnProperties propertiesInstance5 = new ColumnProperties();
                                                        columnInstance.setProperties(propertiesInstance5);

                                                        JsonNode columnTypeValue = propertiesValue5
                                                                .get("columnType");
                                                        if (columnTypeValue != null
                                                                && columnTypeValue instanceof NullNode == false) {
                                                            String columnTypeInstance;
                                                            columnTypeInstance = columnTypeValue.getTextValue();
                                                            propertiesInstance5
                                                                    .setColumnType(columnTypeInstance);
                                                        }
                                                    }

                                                    JsonNode idValue4 = columnsValue.get("id");
                                                    if (idValue4 != null
                                                            && idValue4 instanceof NullNode == false) {
                                                        String idInstance4;
                                                        idInstance4 = idValue4.getTextValue();
                                                        columnInstance.setId(idInstance4);
                                                    }

                                                    JsonNode nameValue4 = columnsValue.get("name");
                                                    if (nameValue4 != null
                                                            && nameValue4 instanceof NullNode == false) {
                                                        String nameInstance4;
                                                        nameInstance4 = nameValue4.getTextValue();
                                                        columnInstance.setName(nameInstance4);
                                                    }

                                                    JsonNode typeValue4 = columnsValue.get("type");
                                                    if (typeValue4 != null
                                                            && typeValue4 instanceof NullNode == false) {
                                                        String typeInstance4;
                                                        typeInstance4 = typeValue4.getTextValue();
                                                        columnInstance.setType(typeInstance4);
                                                    }

                                                    JsonNode locationValue4 = columnsValue.get("location");
                                                    if (locationValue4 != null
                                                            && locationValue4 instanceof NullNode == false) {
                                                        String locationInstance4;
                                                        locationInstance4 = locationValue4.getTextValue();
                                                        columnInstance.setLocation(locationInstance4);
                                                    }

                                                    JsonNode tagsSequenceElement4 = ((JsonNode) columnsValue
                                                            .get("tags"));
                                                    if (tagsSequenceElement4 != null
                                                            && tagsSequenceElement4 instanceof NullNode == false) {
                                                        Iterator<Map.Entry<String, JsonNode>> itr4 = tagsSequenceElement4
                                                                .getFields();
                                                        while (itr4.hasNext()) {
                                                            Map.Entry<String, JsonNode> property4 = itr4.next();
                                                            String tagsKey4 = property4.getKey();
                                                            String tagsValue4 = property4.getValue()
                                                                    .getTextValue();
                                                            columnInstance.getTags().put(tagsKey4, tagsValue4);
                                                        }
                                                    }
                                                }
                                            }

                                            JsonNode recommendedIndexesArray = propertiesValue4
                                                    .get("recommendedIndexes");
                                            if (recommendedIndexesArray != null
                                                    && recommendedIndexesArray instanceof NullNode == false) {
                                                for (JsonNode recommendedIndexesValue : ((ArrayNode) recommendedIndexesArray)) {
                                                    RecommendedIndex recommendedIndexInstance = new RecommendedIndex();
                                                    propertiesInstance4.getRecommendedIndexes()
                                                            .add(recommendedIndexInstance);

                                                    JsonNode propertiesValue6 = recommendedIndexesValue
                                                            .get("properties");
                                                    if (propertiesValue6 != null
                                                            && propertiesValue6 instanceof NullNode == false) {
                                                        RecommendedIndexProperties propertiesInstance6 = new RecommendedIndexProperties();
                                                        recommendedIndexInstance
                                                                .setProperties(propertiesInstance6);

                                                        JsonNode actionValue = propertiesValue6.get("action");
                                                        if (actionValue != null
                                                                && actionValue instanceof NullNode == false) {
                                                            String actionInstance;
                                                            actionInstance = actionValue.getTextValue();
                                                            propertiesInstance6.setAction(actionInstance);
                                                        }

                                                        JsonNode stateValue = propertiesValue6.get("state");
                                                        if (stateValue != null
                                                                && stateValue instanceof NullNode == false) {
                                                            String stateInstance;
                                                            stateInstance = stateValue.getTextValue();
                                                            propertiesInstance6.setState(stateInstance);
                                                        }

                                                        JsonNode createdValue = propertiesValue6.get("created");
                                                        if (createdValue != null
                                                                && createdValue instanceof NullNode == false) {
                                                            Calendar createdInstance;
                                                            createdInstance = DatatypeConverter
                                                                    .parseDateTime(createdValue.getTextValue());
                                                            propertiesInstance6.setCreated(createdInstance);
                                                        }

                                                        JsonNode lastModifiedValue = propertiesValue6
                                                                .get("lastModified");
                                                        if (lastModifiedValue != null
                                                                && lastModifiedValue instanceof NullNode == false) {
                                                            Calendar lastModifiedInstance;
                                                            lastModifiedInstance = DatatypeConverter
                                                                    .parseDateTime(
                                                                            lastModifiedValue.getTextValue());
                                                            propertiesInstance6
                                                                    .setLastModified(lastModifiedInstance);
                                                        }

                                                        JsonNode indexTypeValue = propertiesValue6
                                                                .get("indexType");
                                                        if (indexTypeValue != null
                                                                && indexTypeValue instanceof NullNode == false) {
                                                            String indexTypeInstance;
                                                            indexTypeInstance = indexTypeValue.getTextValue();
                                                            propertiesInstance6.setIndexType(indexTypeInstance);
                                                        }

                                                        JsonNode schemaValue = propertiesValue6.get("schema");
                                                        if (schemaValue != null
                                                                && schemaValue instanceof NullNode == false) {
                                                            String schemaInstance2;
                                                            schemaInstance2 = schemaValue.getTextValue();
                                                            propertiesInstance6.setSchema(schemaInstance2);
                                                        }

                                                        JsonNode tableValue = propertiesValue6.get("table");
                                                        if (tableValue != null
                                                                && tableValue instanceof NullNode == false) {
                                                            String tableInstance2;
                                                            tableInstance2 = tableValue.getTextValue();
                                                            propertiesInstance6.setTable(tableInstance2);
                                                        }

                                                        JsonNode columnsArray2 = propertiesValue6
                                                                .get("columns");
                                                        if (columnsArray2 != null
                                                                && columnsArray2 instanceof NullNode == false) {
                                                            for (JsonNode columnsValue2 : ((ArrayNode) columnsArray2)) {
                                                                propertiesInstance6.getColumns()
                                                                        .add(columnsValue2.getTextValue());
                                                            }
                                                        }

                                                        JsonNode includedColumnsArray = propertiesValue6
                                                                .get("includedColumns");
                                                        if (includedColumnsArray != null
                                                                && includedColumnsArray instanceof NullNode == false) {
                                                            for (JsonNode includedColumnsValue : ((ArrayNode) includedColumnsArray)) {
                                                                propertiesInstance6.getIncludedColumns().add(
                                                                        includedColumnsValue.getTextValue());
                                                            }
                                                        }

                                                        JsonNode indexScriptValue = propertiesValue6
                                                                .get("indexScript");
                                                        if (indexScriptValue != null
                                                                && indexScriptValue instanceof NullNode == false) {
                                                            String indexScriptInstance;
                                                            indexScriptInstance = indexScriptValue
                                                                    .getTextValue();
                                                            propertiesInstance6
                                                                    .setIndexScript(indexScriptInstance);
                                                        }

                                                        JsonNode estimatedImpactArray = propertiesValue6
                                                                .get("estimatedImpact");
                                                        if (estimatedImpactArray != null
                                                                && estimatedImpactArray instanceof NullNode == false) {
                                                            for (JsonNode estimatedImpactValue : ((ArrayNode) estimatedImpactArray)) {
                                                                OperationImpact operationImpactInstance = new OperationImpact();
                                                                propertiesInstance6.getEstimatedImpact()
                                                                        .add(operationImpactInstance);

                                                                JsonNode nameValue5 = estimatedImpactValue
                                                                        .get("name");
                                                                if (nameValue5 != null
                                                                        && nameValue5 instanceof NullNode == false) {
                                                                    String nameInstance5;
                                                                    nameInstance5 = nameValue5.getTextValue();
                                                                    operationImpactInstance
                                                                            .setName(nameInstance5);
                                                                }

                                                                JsonNode unitValue = estimatedImpactValue
                                                                        .get("unit");
                                                                if (unitValue != null
                                                                        && unitValue instanceof NullNode == false) {
                                                                    String unitInstance;
                                                                    unitInstance = unitValue.getTextValue();
                                                                    operationImpactInstance
                                                                            .setUnit(unitInstance);
                                                                }

                                                                JsonNode changeValueAbsoluteValue = estimatedImpactValue
                                                                        .get("changeValueAbsolute");
                                                                if (changeValueAbsoluteValue != null
                                                                        && changeValueAbsoluteValue instanceof NullNode == false) {
                                                                    double changeValueAbsoluteInstance;
                                                                    changeValueAbsoluteInstance = changeValueAbsoluteValue
                                                                            .getDoubleValue();
                                                                    operationImpactInstance
                                                                            .setChangeValueAbsolute(
                                                                                    changeValueAbsoluteInstance);
                                                                }

                                                                JsonNode changeValueRelativeValue = estimatedImpactValue
                                                                        .get("changeValueRelative");
                                                                if (changeValueRelativeValue != null
                                                                        && changeValueRelativeValue instanceof NullNode == false) {
                                                                    double changeValueRelativeInstance;
                                                                    changeValueRelativeInstance = changeValueRelativeValue
                                                                            .getDoubleValue();
                                                                    operationImpactInstance
                                                                            .setChangeValueRelative(
                                                                                    changeValueRelativeInstance);
                                                                }
                                                            }
                                                        }

                                                        JsonNode reportedImpactArray = propertiesValue6
                                                                .get("reportedImpact");
                                                        if (reportedImpactArray != null
                                                                && reportedImpactArray instanceof NullNode == false) {
                                                            for (JsonNode reportedImpactValue : ((ArrayNode) reportedImpactArray)) {
                                                                OperationImpact operationImpactInstance2 = new OperationImpact();
                                                                propertiesInstance6.getReportedImpact()
                                                                        .add(operationImpactInstance2);

                                                                JsonNode nameValue6 = reportedImpactValue
                                                                        .get("name");
                                                                if (nameValue6 != null
                                                                        && nameValue6 instanceof NullNode == false) {
                                                                    String nameInstance6;
                                                                    nameInstance6 = nameValue6.getTextValue();
                                                                    operationImpactInstance2
                                                                            .setName(nameInstance6);
                                                                }

                                                                JsonNode unitValue2 = reportedImpactValue
                                                                        .get("unit");
                                                                if (unitValue2 != null
                                                                        && unitValue2 instanceof NullNode == false) {
                                                                    String unitInstance2;
                                                                    unitInstance2 = unitValue2.getTextValue();
                                                                    operationImpactInstance2
                                                                            .setUnit(unitInstance2);
                                                                }

                                                                JsonNode changeValueAbsoluteValue2 = reportedImpactValue
                                                                        .get("changeValueAbsolute");
                                                                if (changeValueAbsoluteValue2 != null
                                                                        && changeValueAbsoluteValue2 instanceof NullNode == false) {
                                                                    double changeValueAbsoluteInstance2;
                                                                    changeValueAbsoluteInstance2 = changeValueAbsoluteValue2
                                                                            .getDoubleValue();
                                                                    operationImpactInstance2
                                                                            .setChangeValueAbsolute(
                                                                                    changeValueAbsoluteInstance2);
                                                                }

                                                                JsonNode changeValueRelativeValue2 = reportedImpactValue
                                                                        .get("changeValueRelative");
                                                                if (changeValueRelativeValue2 != null
                                                                        && changeValueRelativeValue2 instanceof NullNode == false) {
                                                                    double changeValueRelativeInstance2;
                                                                    changeValueRelativeInstance2 = changeValueRelativeValue2
                                                                            .getDoubleValue();
                                                                    operationImpactInstance2
                                                                            .setChangeValueRelative(
                                                                                    changeValueRelativeInstance2);
                                                                }
                                                            }
                                                        }
                                                    }

                                                    JsonNode idValue5 = recommendedIndexesValue.get("id");
                                                    if (idValue5 != null
                                                            && idValue5 instanceof NullNode == false) {
                                                        String idInstance5;
                                                        idInstance5 = idValue5.getTextValue();
                                                        recommendedIndexInstance.setId(idInstance5);
                                                    }

                                                    JsonNode nameValue7 = recommendedIndexesValue.get("name");
                                                    if (nameValue7 != null
                                                            && nameValue7 instanceof NullNode == false) {
                                                        String nameInstance7;
                                                        nameInstance7 = nameValue7.getTextValue();
                                                        recommendedIndexInstance.setName(nameInstance7);
                                                    }

                                                    JsonNode typeValue5 = recommendedIndexesValue.get("type");
                                                    if (typeValue5 != null
                                                            && typeValue5 instanceof NullNode == false) {
                                                        String typeInstance5;
                                                        typeInstance5 = typeValue5.getTextValue();
                                                        recommendedIndexInstance.setType(typeInstance5);
                                                    }

                                                    JsonNode locationValue5 = recommendedIndexesValue
                                                            .get("location");
                                                    if (locationValue5 != null
                                                            && locationValue5 instanceof NullNode == false) {
                                                        String locationInstance5;
                                                        locationInstance5 = locationValue5.getTextValue();
                                                        recommendedIndexInstance.setLocation(locationInstance5);
                                                    }

                                                    JsonNode tagsSequenceElement5 = ((JsonNode) recommendedIndexesValue
                                                            .get("tags"));
                                                    if (tagsSequenceElement5 != null
                                                            && tagsSequenceElement5 instanceof NullNode == false) {
                                                        Iterator<Map.Entry<String, JsonNode>> itr5 = tagsSequenceElement5
                                                                .getFields();
                                                        while (itr5.hasNext()) {
                                                            Map.Entry<String, JsonNode> property5 = itr5.next();
                                                            String tagsKey5 = property5.getKey();
                                                            String tagsValue5 = property5.getValue()
                                                                    .getTextValue();
                                                            recommendedIndexInstance.getTags().put(tagsKey5,
                                                                    tagsValue5);
                                                        }
                                                    }
                                                }
                                            }
                                        }

                                        JsonNode idValue6 = tablesValue.get("id");
                                        if (idValue6 != null && idValue6 instanceof NullNode == false) {
                                            String idInstance6;
                                            idInstance6 = idValue6.getTextValue();
                                            tableInstance.setId(idInstance6);
                                        }

                                        JsonNode nameValue8 = tablesValue.get("name");
                                        if (nameValue8 != null && nameValue8 instanceof NullNode == false) {
                                            String nameInstance8;
                                            nameInstance8 = nameValue8.getTextValue();
                                            tableInstance.setName(nameInstance8);
                                        }

                                        JsonNode typeValue6 = tablesValue.get("type");
                                        if (typeValue6 != null && typeValue6 instanceof NullNode == false) {
                                            String typeInstance6;
                                            typeInstance6 = typeValue6.getTextValue();
                                            tableInstance.setType(typeInstance6);
                                        }

                                        JsonNode locationValue6 = tablesValue.get("location");
                                        if (locationValue6 != null
                                                && locationValue6 instanceof NullNode == false) {
                                            String locationInstance6;
                                            locationInstance6 = locationValue6.getTextValue();
                                            tableInstance.setLocation(locationInstance6);
                                        }

                                        JsonNode tagsSequenceElement6 = ((JsonNode) tablesValue.get("tags"));
                                        if (tagsSequenceElement6 != null
                                                && tagsSequenceElement6 instanceof NullNode == false) {
                                            Iterator<Map.Entry<String, JsonNode>> itr6 = tagsSequenceElement6
                                                    .getFields();
                                            while (itr6.hasNext()) {
                                                Map.Entry<String, JsonNode> property6 = itr6.next();
                                                String tagsKey6 = property6.getKey();
                                                String tagsValue6 = property6.getValue().getTextValue();
                                                tableInstance.getTags().put(tagsKey6, tagsValue6);
                                            }
                                        }
                                    }
                                }
                            }

                            JsonNode idValue7 = schemasValue.get("id");
                            if (idValue7 != null && idValue7 instanceof NullNode == false) {
                                String idInstance7;
                                idInstance7 = idValue7.getTextValue();
                                schemaInstance.setId(idInstance7);
                            }

                            JsonNode nameValue9 = schemasValue.get("name");
                            if (nameValue9 != null && nameValue9 instanceof NullNode == false) {
                                String nameInstance9;
                                nameInstance9 = nameValue9.getTextValue();
                                schemaInstance.setName(nameInstance9);
                            }

                            JsonNode typeValue7 = schemasValue.get("type");
                            if (typeValue7 != null && typeValue7 instanceof NullNode == false) {
                                String typeInstance7;
                                typeInstance7 = typeValue7.getTextValue();
                                schemaInstance.setType(typeInstance7);
                            }

                            JsonNode locationValue7 = schemasValue.get("location");
                            if (locationValue7 != null && locationValue7 instanceof NullNode == false) {
                                String locationInstance7;
                                locationInstance7 = locationValue7.getTextValue();
                                schemaInstance.setLocation(locationInstance7);
                            }

                            JsonNode tagsSequenceElement7 = ((JsonNode) schemasValue.get("tags"));
                            if (tagsSequenceElement7 != null
                                    && tagsSequenceElement7 instanceof NullNode == false) {
                                Iterator<Map.Entry<String, JsonNode>> itr7 = tagsSequenceElement7.getFields();
                                while (itr7.hasNext()) {
                                    Map.Entry<String, JsonNode> property7 = itr7.next();
                                    String tagsKey7 = property7.getKey();
                                    String tagsValue7 = property7.getValue().getTextValue();
                                    schemaInstance.getTags().put(tagsKey7, tagsValue7);
                                }
                            }
                        }
                    }

                    JsonNode defaultSecondaryLocationValue = propertiesValue.get("defaultSecondaryLocation");
                    if (defaultSecondaryLocationValue != null
                            && defaultSecondaryLocationValue instanceof NullNode == false) {
                        String defaultSecondaryLocationInstance;
                        defaultSecondaryLocationInstance = defaultSecondaryLocationValue.getTextValue();
                        propertiesInstance.setDefaultSecondaryLocation(defaultSecondaryLocationInstance);
                    }
                }

                JsonNode idValue8 = responseDoc.get("id");
                if (idValue8 != null && idValue8 instanceof NullNode == false) {
                    String idInstance8;
                    idInstance8 = idValue8.getTextValue();
                    databaseInstance.setId(idInstance8);
                }

                JsonNode nameValue10 = responseDoc.get("name");
                if (nameValue10 != null && nameValue10 instanceof NullNode == false) {
                    String nameInstance10;
                    nameInstance10 = nameValue10.getTextValue();
                    databaseInstance.setName(nameInstance10);
                }

                JsonNode typeValue8 = responseDoc.get("type");
                if (typeValue8 != null && typeValue8 instanceof NullNode == false) {
                    String typeInstance8;
                    typeInstance8 = typeValue8.getTextValue();
                    databaseInstance.setType(typeInstance8);
                }

                JsonNode locationValue8 = responseDoc.get("location");
                if (locationValue8 != null && locationValue8 instanceof NullNode == false) {
                    String locationInstance8;
                    locationInstance8 = locationValue8.getTextValue();
                    databaseInstance.setLocation(locationInstance8);
                }

                JsonNode tagsSequenceElement8 = ((JsonNode) responseDoc.get("tags"));
                if (tagsSequenceElement8 != null && tagsSequenceElement8 instanceof NullNode == false) {
                    Iterator<Map.Entry<String, JsonNode>> itr8 = tagsSequenceElement8.getFields();
                    while (itr8.hasNext()) {
                        Map.Entry<String, JsonNode> property8 = itr8.next();
                        String tagsKey8 = property8.getKey();
                        String tagsValue8 = property8.getValue().getTextValue();
                        databaseInstance.getTags().put(tagsKey8, tagsValue8);
                    }
                }
            }

        }
        result.setStatusCode(statusCode);
        if (httpResponse.getHeaders("Location").length > 0) {
            result.setOperationStatusLink(httpResponse.getFirstHeader("Location").getValue());
        }
        if (httpResponse.getHeaders("Retry-After").length > 0) {
            result.setRetryAfter(
                    DatatypeConverter.parseInt(httpResponse.getFirstHeader("Retry-After").getValue()));
        }
        if (httpResponse.getHeaders("x-ms-request-id").length > 0) {
            result.setRequestId(httpResponse.getFirstHeader("x-ms-request-id").getValue());
        }
        if (statusCode == HttpStatus.SC_OK) {
            result.setStatus(OperationStatus.Succeeded);
        }

        if (shouldTrace) {
            CloudTracing.exit(invocationId, result);
        }
        return result;
    } finally {
        if (httpResponse != null && httpResponse.getEntity() != null) {
            httpResponse.getEntity().getContent().close();
        }
    }
}

From source file:com.microsoft.windowsazure.management.websites.WebSiteOperationsImpl.java

/**
* Gets a schedule configuration for site backups.
*
* @param webSpaceName Required. The name of the web space.
* @param webSiteName Required. The name of the web site.
* @throws IOException Signals that an I/O exception of some sort has
* occurred. This class is the general class of exceptions produced by
* failed or interrupted I/O operations.// www  .j a v a2s.  c o  m
* @throws ServiceException Thrown if an unexpected response is found.
* @throws ParserConfigurationException Thrown if there was a serious
* configuration error with the document parser.
* @throws SAXException Thrown if there was an error parsing the XML
* response.
* @return Scheduled backup definition.
*/
@Override
public WebSiteGetBackupConfigurationResponse getBackupConfiguration(String webSpaceName, String webSiteName)
        throws IOException, ServiceException, ParserConfigurationException, SAXException {
    // Validate
    if (webSpaceName == null) {
        throw new NullPointerException("webSpaceName");
    }
    if (webSiteName == null) {
        throw new NullPointerException("webSiteName");
    }

    // Tracing
    boolean shouldTrace = CloudTracing.getIsEnabled();
    String invocationId = null;
    if (shouldTrace) {
        invocationId = Long.toString(CloudTracing.getNextInvocationId());
        HashMap<String, Object> tracingParameters = new HashMap<String, Object>();
        tracingParameters.put("webSpaceName", webSpaceName);
        tracingParameters.put("webSiteName", webSiteName);
        CloudTracing.enter(invocationId, this, "getBackupConfigurationAsync", tracingParameters);
    }

    // Construct URL
    String url = "";
    url = url + "/";
    if (this.getClient().getCredentials().getSubscriptionId() != null) {
        url = url + URLEncoder.encode(this.getClient().getCredentials().getSubscriptionId(), "UTF-8");
    }
    url = url + "/services/WebSpaces/";
    url = url + URLEncoder.encode(webSpaceName, "UTF-8");
    url = url + "/sites/";
    url = url + URLEncoder.encode(webSiteName, "UTF-8");
    url = url + "/backup/config";
    String baseUrl = this.getClient().getBaseUri().toString();
    // Trim '/' character from the end of baseUrl and beginning of url.
    if (baseUrl.charAt(baseUrl.length() - 1) == '/') {
        baseUrl = baseUrl.substring(0, (baseUrl.length() - 1) + 0);
    }
    if (url.charAt(0) == '/') {
        url = url.substring(1);
    }
    url = baseUrl + "/" + url;
    url = url.replace(" ", "%20");

    // Create HTTP transport objects
    HttpGet httpRequest = new HttpGet(url);

    // Set Headers
    httpRequest.setHeader("x-ms-version", "2014-04-01");

    // Send Request
    HttpResponse httpResponse = null;
    try {
        if (shouldTrace) {
            CloudTracing.sendRequest(invocationId, httpRequest);
        }
        httpResponse = this.getClient().getHttpClient().execute(httpRequest);
        if (shouldTrace) {
            CloudTracing.receiveResponse(invocationId, httpResponse);
        }
        int statusCode = httpResponse.getStatusLine().getStatusCode();
        if (statusCode != HttpStatus.SC_OK) {
            ServiceException ex = ServiceException.createFromXml(httpRequest, null, httpResponse,
                    httpResponse.getEntity());
            if (shouldTrace) {
                CloudTracing.error(invocationId, ex);
            }
            throw ex;
        }

        // Create Result
        WebSiteGetBackupConfigurationResponse result = null;
        // Deserialize Response
        if (statusCode == HttpStatus.SC_OK) {
            InputStream responseContent = httpResponse.getEntity().getContent();
            result = new WebSiteGetBackupConfigurationResponse();
            DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
            documentBuilderFactory.setNamespaceAware(true);
            DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
            Document responseDoc = documentBuilder.parse(new BOMInputStream(responseContent));

            Element backupRequestElement = XmlUtility.getElementByTagNameNS(responseDoc,
                    "http://schemas.microsoft.com/windowsazure", "BackupRequest");
            if (backupRequestElement != null) {
                Element enabledElement = XmlUtility.getElementByTagNameNS(backupRequestElement,
                        "http://schemas.microsoft.com/windowsazure", "Enabled");
                if (enabledElement != null && enabledElement.getTextContent() != null
                        && !enabledElement.getTextContent().isEmpty()) {
                    boolean enabledInstance;
                    enabledInstance = DatatypeConverter
                            .parseBoolean(enabledElement.getTextContent().toLowerCase());
                    result.setEnabled(enabledInstance);
                }

                Element nameElement = XmlUtility.getElementByTagNameNS(backupRequestElement,
                        "http://schemas.microsoft.com/windowsazure", "Name");
                if (nameElement != null) {
                    String nameInstance;
                    nameInstance = nameElement.getTextContent();
                    result.setName(nameInstance);
                }

                Element backupScheduleElement = XmlUtility.getElementByTagNameNS(backupRequestElement,
                        "http://schemas.microsoft.com/windowsazure", "BackupSchedule");
                if (backupScheduleElement != null) {
                    BackupSchedule backupScheduleInstance = new BackupSchedule();
                    result.setBackupSchedule(backupScheduleInstance);

                    Element frequencyIntervalElement = XmlUtility.getElementByTagNameNS(backupScheduleElement,
                            "http://schemas.microsoft.com/windowsazure", "FrequencyInterval");
                    if (frequencyIntervalElement != null) {
                        int frequencyIntervalInstance;
                        frequencyIntervalInstance = DatatypeConverter
                                .parseInt(frequencyIntervalElement.getTextContent());
                        backupScheduleInstance.setFrequencyInterval(frequencyIntervalInstance);
                    }

                    Element frequencyUnitElement = XmlUtility.getElementByTagNameNS(backupScheduleElement,
                            "http://schemas.microsoft.com/windowsazure", "FrequencyUnit");
                    if (frequencyUnitElement != null && frequencyUnitElement.getTextContent() != null
                            && !frequencyUnitElement.getTextContent().isEmpty()) {
                        FrequencyUnit frequencyUnitInstance;
                        frequencyUnitInstance = FrequencyUnit.valueOf(frequencyUnitElement.getTextContent());
                        backupScheduleInstance.setFrequencyUnit(frequencyUnitInstance);
                    }

                    Element keepAtLeastOneBackupElement = XmlUtility.getElementByTagNameNS(
                            backupScheduleElement, "http://schemas.microsoft.com/windowsazure",
                            "KeepAtLeastOneBackup");
                    if (keepAtLeastOneBackupElement != null) {
                        boolean keepAtLeastOneBackupInstance;
                        keepAtLeastOneBackupInstance = DatatypeConverter
                                .parseBoolean(keepAtLeastOneBackupElement.getTextContent().toLowerCase());
                        backupScheduleInstance.setKeepAtLeastOneBackup(keepAtLeastOneBackupInstance);
                    }

                    Element lastExecutionTimeElement = XmlUtility.getElementByTagNameNS(backupScheduleElement,
                            "http://schemas.microsoft.com/windowsazure", "LastExecutionTime");
                    if (lastExecutionTimeElement != null && lastExecutionTimeElement.getTextContent() != null
                            && !lastExecutionTimeElement.getTextContent().isEmpty()) {
                        Calendar lastExecutionTimeInstance;
                        lastExecutionTimeInstance = DatatypeConverter
                                .parseDateTime(lastExecutionTimeElement.getTextContent());
                        backupScheduleInstance.setLastExecutionTime(lastExecutionTimeInstance);
                    }

                    Element retentionPeriodInDaysElement = XmlUtility.getElementByTagNameNS(
                            backupScheduleElement, "http://schemas.microsoft.com/windowsazure",
                            "RetentionPeriodInDays");
                    if (retentionPeriodInDaysElement != null) {
                        int retentionPeriodInDaysInstance;
                        retentionPeriodInDaysInstance = DatatypeConverter
                                .parseInt(retentionPeriodInDaysElement.getTextContent());
                        backupScheduleInstance.setRetentionPeriodInDays(retentionPeriodInDaysInstance);
                    }

                    Element startTimeElement = XmlUtility.getElementByTagNameNS(backupScheduleElement,
                            "http://schemas.microsoft.com/windowsazure", "StartTime");
                    if (startTimeElement != null && startTimeElement.getTextContent() != null
                            && !startTimeElement.getTextContent().isEmpty()) {
                        Calendar startTimeInstance;
                        startTimeInstance = DatatypeConverter.parseDateTime(startTimeElement.getTextContent());
                        backupScheduleInstance.setStartTime(startTimeInstance);
                    }
                }

                Element databasesSequenceElement = XmlUtility.getElementByTagNameNS(backupRequestElement,
                        "http://schemas.microsoft.com/windowsazure", "Databases");
                if (databasesSequenceElement != null) {
                    for (int i1 = 0; i1 < com.microsoft.windowsazure.core.utils.XmlUtility
                            .getElementsByTagNameNS(databasesSequenceElement,
                                    "http://schemas.microsoft.com/windowsazure", "DatabaseBackupSetting")
                            .size(); i1 = i1 + 1) {
                        org.w3c.dom.Element databasesElement = ((org.w3c.dom.Element) com.microsoft.windowsazure.core.utils.XmlUtility
                                .getElementsByTagNameNS(databasesSequenceElement,
                                        "http://schemas.microsoft.com/windowsazure", "DatabaseBackupSetting")
                                .get(i1));
                        DatabaseBackupSetting databaseBackupSettingInstance = new DatabaseBackupSetting();
                        result.getDatabases().add(databaseBackupSettingInstance);

                        Element connectionStringElement = XmlUtility.getElementByTagNameNS(databasesElement,
                                "http://schemas.microsoft.com/windowsazure", "ConnectionString");
                        if (connectionStringElement != null) {
                            String connectionStringInstance;
                            connectionStringInstance = connectionStringElement.getTextContent();
                            databaseBackupSettingInstance.setConnectionString(connectionStringInstance);
                        }

                        Element connectionStringNameElement = XmlUtility.getElementByTagNameNS(databasesElement,
                                "http://schemas.microsoft.com/windowsazure", "ConnectionStringName");
                        if (connectionStringNameElement != null) {
                            String connectionStringNameInstance;
                            connectionStringNameInstance = connectionStringNameElement.getTextContent();
                            databaseBackupSettingInstance.setConnectionStringName(connectionStringNameInstance);
                        }

                        Element databaseTypeElement = XmlUtility.getElementByTagNameNS(databasesElement,
                                "http://schemas.microsoft.com/windowsazure", "DatabaseType");
                        if (databaseTypeElement != null) {
                            String databaseTypeInstance;
                            databaseTypeInstance = databaseTypeElement.getTextContent();
                            databaseBackupSettingInstance.setDatabaseType(databaseTypeInstance);
                        }

                        Element nameElement2 = XmlUtility.getElementByTagNameNS(databasesElement,
                                "http://schemas.microsoft.com/windowsazure", "Name");
                        if (nameElement2 != null) {
                            String nameInstance2;
                            nameInstance2 = nameElement2.getTextContent();
                            databaseBackupSettingInstance.setName(nameInstance2);
                        }
                    }
                }

                Element storageAccountUrlElement = XmlUtility.getElementByTagNameNS(backupRequestElement,
                        "http://schemas.microsoft.com/windowsazure", "StorageAccountUrl");
                if (storageAccountUrlElement != null) {
                    String storageAccountUrlInstance;
                    storageAccountUrlInstance = storageAccountUrlElement.getTextContent();
                    result.setStorageAccountUrl(storageAccountUrlInstance);
                }
            }

        }
        result.setStatusCode(statusCode);
        if (httpResponse.getHeaders("x-ms-request-id").length > 0) {
            result.setRequestId(httpResponse.getFirstHeader("x-ms-request-id").getValue());
        }

        if (shouldTrace) {
            CloudTracing.exit(invocationId, result);
        }
        return result;
    } finally {
        if (httpResponse != null && httpResponse.getEntity() != null) {
            httpResponse.getEntity().getContent().close();
        }
    }
}

From source file:com.microsoft.windowsazure.management.websites.WebSiteOperationsImpl.java

/**
* You can retrieve historical usage metrics for a site by issuing an HTTP
* GET request.  (see// w w w .  j a v  a2 s. c  o m
* http://msdn.microsoft.com/en-us/library/windowsazure/dn166964.aspx for
* more information)
*
* @param webSpaceName Required. The name of the web space.
* @param webSiteName Required. The name of the web site.
* @param parameters Required. Parameters supplied to the Get Historical
* Usage Metrics Web Site operation.
* @throws IOException Signals that an I/O exception of some sort has
* occurred. This class is the general class of exceptions produced by
* failed or interrupted I/O operations.
* @throws ServiceException Thrown if an unexpected response is found.
* @throws ParserConfigurationException Thrown if there was a serious
* configuration error with the document parser.
* @throws SAXException Thrown if there was an error parsing the XML
* response.
* @return The Get Historical Usage Metrics Web Site operation response.
*/
@Override
public WebSiteGetHistoricalUsageMetricsResponse getHistoricalUsageMetrics(String webSpaceName,
        String webSiteName, WebSiteGetHistoricalUsageMetricsParameters parameters)
        throws IOException, ServiceException, ParserConfigurationException, SAXException {
    // Validate
    if (webSpaceName == null) {
        throw new NullPointerException("webSpaceName");
    }
    if (webSiteName == null) {
        throw new NullPointerException("webSiteName");
    }
    if (parameters == null) {
        throw new NullPointerException("parameters");
    }

    // Tracing
    boolean shouldTrace = CloudTracing.getIsEnabled();
    String invocationId = null;
    if (shouldTrace) {
        invocationId = Long.toString(CloudTracing.getNextInvocationId());
        HashMap<String, Object> tracingParameters = new HashMap<String, Object>();
        tracingParameters.put("webSpaceName", webSpaceName);
        tracingParameters.put("webSiteName", webSiteName);
        tracingParameters.put("parameters", parameters);
        CloudTracing.enter(invocationId, this, "getHistoricalUsageMetricsAsync", tracingParameters);
    }

    // Construct URL
    String url = "";
    url = url + "/";
    if (this.getClient().getCredentials().getSubscriptionId() != null) {
        url = url + URLEncoder.encode(this.getClient().getCredentials().getSubscriptionId(), "UTF-8");
    }
    url = url + "/services/WebSpaces/";
    url = url + URLEncoder.encode(webSpaceName, "UTF-8");
    url = url + "/sites/";
    url = url + URLEncoder.encode(webSiteName, "UTF-8");
    url = url + "/metrics";
    ArrayList<String> queryParameters = new ArrayList<String>();
    if (parameters.getMetricNames() != null && parameters.getMetricNames().size() > 0) {
        queryParameters.add("names="
                + URLEncoder.encode(CollectionStringBuilder.join(parameters.getMetricNames(), ","), "UTF-8"));
    }
    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSSSS'Z'");
    simpleDateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
    if (parameters.getStartTime() != null) {
        queryParameters.add("StartTime="
                + URLEncoder.encode(simpleDateFormat.format(parameters.getStartTime().getTime()), "UTF-8"));
    }
    SimpleDateFormat simpleDateFormat2 = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSSSS'Z'");
    simpleDateFormat2.setTimeZone(TimeZone.getTimeZone("UTC"));
    if (parameters.getEndTime() != null) {
        queryParameters.add("EndTime="
                + URLEncoder.encode(simpleDateFormat2.format(parameters.getEndTime().getTime()), "UTF-8"));
    }
    if (parameters.getTimeGrain() != null) {
        queryParameters.add("timeGrain=" + URLEncoder.encode(parameters.getTimeGrain(), "UTF-8"));
    }
    queryParameters.add("details=" + URLEncoder
            .encode(Boolean.toString(parameters.isIncludeInstanceBreakdown()).toLowerCase(), "UTF-8"));
    queryParameters.add(
            "slotView=" + URLEncoder.encode(Boolean.toString(parameters.isSlotView()).toLowerCase(), "UTF-8"));
    if (queryParameters.size() > 0) {
        url = url + "?" + CollectionStringBuilder.join(queryParameters, "&");
    }
    String baseUrl = this.getClient().getBaseUri().toString();
    // Trim '/' character from the end of baseUrl and beginning of url.
    if (baseUrl.charAt(baseUrl.length() - 1) == '/') {
        baseUrl = baseUrl.substring(0, (baseUrl.length() - 1) + 0);
    }
    if (url.charAt(0) == '/') {
        url = url.substring(1);
    }
    url = baseUrl + "/" + url;
    url = url.replace(" ", "%20");

    // Create HTTP transport objects
    HttpGet httpRequest = new HttpGet(url);

    // Set Headers
    httpRequest.setHeader("x-ms-version", "2014-04-01");

    // Send Request
    HttpResponse httpResponse = null;
    try {
        if (shouldTrace) {
            CloudTracing.sendRequest(invocationId, httpRequest);
        }
        httpResponse = this.getClient().getHttpClient().execute(httpRequest);
        if (shouldTrace) {
            CloudTracing.receiveResponse(invocationId, httpResponse);
        }
        int statusCode = httpResponse.getStatusLine().getStatusCode();
        if (statusCode != HttpStatus.SC_OK) {
            ServiceException ex = ServiceException.createFromXml(httpRequest, null, httpResponse,
                    httpResponse.getEntity());
            if (shouldTrace) {
                CloudTracing.error(invocationId, ex);
            }
            throw ex;
        }

        // Create Result
        WebSiteGetHistoricalUsageMetricsResponse result = null;
        // Deserialize Response
        if (statusCode == HttpStatus.SC_OK) {
            InputStream responseContent = httpResponse.getEntity().getContent();
            result = new WebSiteGetHistoricalUsageMetricsResponse();
            DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
            documentBuilderFactory.setNamespaceAware(true);
            DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
            Document responseDoc = documentBuilder.parse(new BOMInputStream(responseContent));

            Element metricResponsesElement = XmlUtility.getElementByTagNameNS(responseDoc,
                    "http://schemas.microsoft.com/windowsazure", "MetricResponses");
            if (metricResponsesElement != null) {
                if (metricResponsesElement != null) {
                    for (int i1 = 0; i1 < com.microsoft.windowsazure.core.utils.XmlUtility
                            .getElementsByTagNameNS(metricResponsesElement,
                                    "http://schemas.microsoft.com/windowsazure", "MetricResponse")
                            .size(); i1 = i1 + 1) {
                        org.w3c.dom.Element usageMetricsElement = ((org.w3c.dom.Element) com.microsoft.windowsazure.core.utils.XmlUtility
                                .getElementsByTagNameNS(metricResponsesElement,
                                        "http://schemas.microsoft.com/windowsazure", "MetricResponse")
                                .get(i1));
                        HistoricalUsageMetric metricResponseInstance = new HistoricalUsageMetric();
                        result.getUsageMetrics().add(metricResponseInstance);

                        Element codeElement = XmlUtility.getElementByTagNameNS(usageMetricsElement,
                                "http://schemas.microsoft.com/windowsazure", "Code");
                        if (codeElement != null) {
                            String codeInstance;
                            codeInstance = codeElement.getTextContent();
                            metricResponseInstance.setCode(codeInstance);
                        }

                        Element dataElement = XmlUtility.getElementByTagNameNS(usageMetricsElement,
                                "http://schemas.microsoft.com/windowsazure", "Data");
                        if (dataElement != null) {
                            HistoricalUsageMetricData dataInstance = new HistoricalUsageMetricData();
                            metricResponseInstance.setData(dataInstance);

                            Element displayNameElement = XmlUtility.getElementByTagNameNS(dataElement,
                                    "http://schemas.microsoft.com/windowsazure", "DisplayName");
                            if (displayNameElement != null) {
                                String displayNameInstance;
                                displayNameInstance = displayNameElement.getTextContent();
                                dataInstance.setDisplayName(displayNameInstance);
                            }

                            Element endTimeElement = XmlUtility.getElementByTagNameNS(dataElement,
                                    "http://schemas.microsoft.com/windowsazure", "EndTime");
                            if (endTimeElement != null) {
                                Calendar endTimeInstance;
                                endTimeInstance = DatatypeConverter
                                        .parseDateTime(endTimeElement.getTextContent());
                                dataInstance.setEndTime(endTimeInstance);
                            }

                            Element nameElement = XmlUtility.getElementByTagNameNS(dataElement,
                                    "http://schemas.microsoft.com/windowsazure", "Name");
                            if (nameElement != null) {
                                String nameInstance;
                                nameInstance = nameElement.getTextContent();
                                dataInstance.setName(nameInstance);
                            }

                            Element primaryAggregationTypeElement = XmlUtility.getElementByTagNameNS(
                                    dataElement, "http://schemas.microsoft.com/windowsazure",
                                    "PrimaryAggregationType");
                            if (primaryAggregationTypeElement != null) {
                                String primaryAggregationTypeInstance;
                                primaryAggregationTypeInstance = primaryAggregationTypeElement.getTextContent();
                                dataInstance.setPrimaryAggregationType(primaryAggregationTypeInstance);
                            }

                            Element startTimeElement = XmlUtility.getElementByTagNameNS(dataElement,
                                    "http://schemas.microsoft.com/windowsazure", "StartTime");
                            if (startTimeElement != null) {
                                Calendar startTimeInstance;
                                startTimeInstance = DatatypeConverter
                                        .parseDateTime(startTimeElement.getTextContent());
                                dataInstance.setStartTime(startTimeInstance);
                            }

                            Element timeGrainElement = XmlUtility.getElementByTagNameNS(dataElement,
                                    "http://schemas.microsoft.com/windowsazure", "TimeGrain");
                            if (timeGrainElement != null) {
                                String timeGrainInstance;
                                timeGrainInstance = timeGrainElement.getTextContent();
                                dataInstance.setTimeGrain(timeGrainInstance);
                            }

                            Element unitElement = XmlUtility.getElementByTagNameNS(dataElement,
                                    "http://schemas.microsoft.com/windowsazure", "Unit");
                            if (unitElement != null) {
                                String unitInstance;
                                unitInstance = unitElement.getTextContent();
                                dataInstance.setUnit(unitInstance);
                            }

                            Element valuesSequenceElement = XmlUtility.getElementByTagNameNS(dataElement,
                                    "http://schemas.microsoft.com/windowsazure", "Values");
                            if (valuesSequenceElement != null) {
                                for (int i2 = 0; i2 < com.microsoft.windowsazure.core.utils.XmlUtility
                                        .getElementsByTagNameNS(valuesSequenceElement,
                                                "http://schemas.microsoft.com/windowsazure", "MetricSample")
                                        .size(); i2 = i2 + 1) {
                                    org.w3c.dom.Element valuesElement = ((org.w3c.dom.Element) com.microsoft.windowsazure.core.utils.XmlUtility
                                            .getElementsByTagNameNS(valuesSequenceElement,
                                                    "http://schemas.microsoft.com/windowsazure", "MetricSample")
                                            .get(i2));
                                    HistoricalUsageMetricSample metricSampleInstance = new HistoricalUsageMetricSample();
                                    dataInstance.getValues().add(metricSampleInstance);

                                    Element countElement = XmlUtility.getElementByTagNameNS(valuesElement,
                                            "http://schemas.microsoft.com/windowsazure", "Count");
                                    if (countElement != null) {
                                        int countInstance;
                                        countInstance = DatatypeConverter
                                                .parseInt(countElement.getTextContent());
                                        metricSampleInstance.setCount(countInstance);
                                    }

                                    Element maximumElement = XmlUtility.getElementByTagNameNS(valuesElement,
                                            "http://schemas.microsoft.com/windowsazure", "Maximum");
                                    if (maximumElement != null) {
                                        boolean isNil = false;
                                        Attr nilAttribute = maximumElement.getAttributeNodeNS(
                                                "http://www.w3.org/2001/XMLSchema-instance", "nil");
                                        if (nilAttribute != null) {
                                            isNil = "true".equals(nilAttribute.getValue());
                                        }
                                        if (isNil == false) {
                                            String maximumInstance;
                                            maximumInstance = maximumElement.getTextContent();
                                            metricSampleInstance.setMaximum(maximumInstance);
                                        }
                                    }

                                    Element minimumElement = XmlUtility.getElementByTagNameNS(valuesElement,
                                            "http://schemas.microsoft.com/windowsazure", "Minimum");
                                    if (minimumElement != null) {
                                        boolean isNil2 = false;
                                        Attr nilAttribute2 = minimumElement.getAttributeNodeNS(
                                                "http://www.w3.org/2001/XMLSchema-instance", "nil");
                                        if (nilAttribute2 != null) {
                                            isNil2 = "true".equals(nilAttribute2.getValue());
                                        }
                                        if (isNil2 == false) {
                                            String minimumInstance;
                                            minimumInstance = minimumElement.getTextContent();
                                            metricSampleInstance.setMinimum(minimumInstance);
                                        }
                                    }

                                    Element timeCreatedElement = XmlUtility.getElementByTagNameNS(valuesElement,
                                            "http://schemas.microsoft.com/windowsazure", "TimeCreated");
                                    if (timeCreatedElement != null) {
                                        Calendar timeCreatedInstance;
                                        timeCreatedInstance = DatatypeConverter
                                                .parseDateTime(timeCreatedElement.getTextContent());
                                        metricSampleInstance.setTimeCreated(timeCreatedInstance);
                                    }

                                    Element totalElement = XmlUtility.getElementByTagNameNS(valuesElement,
                                            "http://schemas.microsoft.com/windowsazure", "Total");
                                    if (totalElement != null) {
                                        String totalInstance;
                                        totalInstance = totalElement.getTextContent();
                                        metricSampleInstance.setTotal(totalInstance);
                                    }

                                    Element instanceNameElement = XmlUtility.getElementByTagNameNS(
                                            valuesElement, "http://schemas.microsoft.com/windowsazure",
                                            "InstanceName");
                                    if (instanceNameElement != null) {
                                        String instanceNameInstance;
                                        instanceNameInstance = instanceNameElement.getTextContent();
                                        metricSampleInstance.setInstanceName(instanceNameInstance);
                                    }
                                }
                            }
                        }

                        Element messageElement = XmlUtility.getElementByTagNameNS(usageMetricsElement,
                                "http://schemas.microsoft.com/windowsazure", "Message");
                        if (messageElement != null) {
                            String messageInstance;
                            messageInstance = messageElement.getTextContent();
                            metricResponseInstance.setMessage(messageInstance);
                        }
                    }
                }
            }

        }
        result.setStatusCode(statusCode);
        if (httpResponse.getHeaders("x-ms-request-id").length > 0) {
            result.setRequestId(httpResponse.getFirstHeader("x-ms-request-id").getValue());
        }

        if (shouldTrace) {
            CloudTracing.exit(invocationId, result);
        }
        return result;
    } finally {
        if (httpResponse != null && httpResponse.getEntity() != null) {
            httpResponse.getEntity().getContent().close();
        }
    }
}

From source file:com.microsoft.windowsazure.management.websites.WebSiteOperationsImpl.java

/**
* Retrieves a particular hybrid connection that belongs to a specific site.
*
* @param webSpaceName Required. The name of the web space.
* @param webSiteName Required. The name of the web site.
* @param hybridConnectionName Required. The name of the hybrid connection
* entity/* www.  ja v a 2  s. co m*/
* @throws IOException Signals that an I/O exception of some sort has
* occurred. This class is the general class of exceptions produced by
* failed or interrupted I/O operations.
* @throws ServiceException Thrown if an unexpected response is found.
* @throws ParserConfigurationException Thrown if there was a serious
* configuration error with the document parser.
* @throws SAXException Thrown if there was an error parsing the XML
* response.
* @return The Get Hybrid Connection operation response.
*/
@Override
public HybridConnectionGetResponse getHybridConnection(String webSpaceName, String webSiteName,
        String hybridConnectionName)
        throws IOException, ServiceException, ParserConfigurationException, SAXException {
    // Validate
    if (webSpaceName == null) {
        throw new NullPointerException("webSpaceName");
    }
    if (webSiteName == null) {
        throw new NullPointerException("webSiteName");
    }
    if (hybridConnectionName == null) {
        throw new NullPointerException("hybridConnectionName");
    }

    // Tracing
    boolean shouldTrace = CloudTracing.getIsEnabled();
    String invocationId = null;
    if (shouldTrace) {
        invocationId = Long.toString(CloudTracing.getNextInvocationId());
        HashMap<String, Object> tracingParameters = new HashMap<String, Object>();
        tracingParameters.put("webSpaceName", webSpaceName);
        tracingParameters.put("webSiteName", webSiteName);
        tracingParameters.put("hybridConnectionName", hybridConnectionName);
        CloudTracing.enter(invocationId, this, "getHybridConnectionAsync", tracingParameters);
    }

    // Construct URL
    String url = "";
    url = url + "/";
    if (this.getClient().getCredentials().getSubscriptionId() != null) {
        url = url + URLEncoder.encode(this.getClient().getCredentials().getSubscriptionId(), "UTF-8");
    }
    url = url + "/services/WebSpaces/";
    url = url + URLEncoder.encode(webSpaceName, "UTF-8");
    url = url + "/sites/";
    url = url + URLEncoder.encode(webSiteName, "UTF-8");
    url = url + "/hybridconnection/";
    url = url + URLEncoder.encode(hybridConnectionName, "UTF-8");
    String baseUrl = this.getClient().getBaseUri().toString();
    // Trim '/' character from the end of baseUrl and beginning of url.
    if (baseUrl.charAt(baseUrl.length() - 1) == '/') {
        baseUrl = baseUrl.substring(0, (baseUrl.length() - 1) + 0);
    }
    if (url.charAt(0) == '/') {
        url = url.substring(1);
    }
    url = baseUrl + "/" + url;
    url = url.replace(" ", "%20");

    // Create HTTP transport objects
    HttpGet httpRequest = new HttpGet(url);

    // Set Headers
    httpRequest.setHeader("x-ms-version", "2014-04-01");

    // Send Request
    HttpResponse httpResponse = null;
    try {
        if (shouldTrace) {
            CloudTracing.sendRequest(invocationId, httpRequest);
        }
        httpResponse = this.getClient().getHttpClient().execute(httpRequest);
        if (shouldTrace) {
            CloudTracing.receiveResponse(invocationId, httpResponse);
        }
        int statusCode = httpResponse.getStatusLine().getStatusCode();
        if (statusCode != HttpStatus.SC_OK) {
            ServiceException ex = ServiceException.createFromXml(httpRequest, null, httpResponse,
                    httpResponse.getEntity());
            if (shouldTrace) {
                CloudTracing.error(invocationId, ex);
            }
            throw ex;
        }

        // Create Result
        HybridConnectionGetResponse result = null;
        // Deserialize Response
        if (statusCode == HttpStatus.SC_OK) {
            InputStream responseContent = httpResponse.getEntity().getContent();
            result = new HybridConnectionGetResponse();
            DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
            documentBuilderFactory.setNamespaceAware(true);
            DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
            Document responseDoc = documentBuilder.parse(new BOMInputStream(responseContent));

            Element relayServiceConnectionEntityElement = XmlUtility.getElementByTagNameNS(responseDoc,
                    "http://schemas.microsoft.com/windowsazure", "RelayServiceConnectionEntity");
            if (relayServiceConnectionEntityElement != null) {
                HybridConnection hybridConnectionInstance = new HybridConnection();
                result.setHybridConnection(hybridConnectionInstance);

                Element entityNameElement = XmlUtility.getElementByTagNameNS(
                        relayServiceConnectionEntityElement, "http://schemas.microsoft.com/windowsazure",
                        "EntityName");
                if (entityNameElement != null) {
                    String entityNameInstance;
                    entityNameInstance = entityNameElement.getTextContent();
                    hybridConnectionInstance.setEntityName(entityNameInstance);
                }

                Element entityConnectionStringElement = XmlUtility.getElementByTagNameNS(
                        relayServiceConnectionEntityElement, "http://schemas.microsoft.com/windowsazure",
                        "EntityConnectionString");
                if (entityConnectionStringElement != null) {
                    String entityConnectionStringInstance;
                    entityConnectionStringInstance = entityConnectionStringElement.getTextContent();
                    hybridConnectionInstance.setEntityConnectionString(entityConnectionStringInstance);
                }

                Element resourceTypeElement = XmlUtility.getElementByTagNameNS(
                        relayServiceConnectionEntityElement, "http://schemas.microsoft.com/windowsazure",
                        "ResourceType");
                if (resourceTypeElement != null) {
                    String resourceTypeInstance;
                    resourceTypeInstance = resourceTypeElement.getTextContent();
                    hybridConnectionInstance.setResourceType(resourceTypeInstance);
                }

                Element resourceConnectionStringElement = XmlUtility.getElementByTagNameNS(
                        relayServiceConnectionEntityElement, "http://schemas.microsoft.com/windowsazure",
                        "ResourceConnectionString");
                if (resourceConnectionStringElement != null) {
                    String resourceConnectionStringInstance;
                    resourceConnectionStringInstance = resourceConnectionStringElement.getTextContent();
                    hybridConnectionInstance.setResourceConnectionString(resourceConnectionStringInstance);
                }

                Element hostnameElement = XmlUtility.getElementByTagNameNS(relayServiceConnectionEntityElement,
                        "http://schemas.microsoft.com/windowsazure", "Hostname");
                if (hostnameElement != null) {
                    String hostnameInstance;
                    hostnameInstance = hostnameElement.getTextContent();
                    hybridConnectionInstance.setHostname(hostnameInstance);
                }

                Element portElement = XmlUtility.getElementByTagNameNS(relayServiceConnectionEntityElement,
                        "http://schemas.microsoft.com/windowsazure", "Port");
                if (portElement != null) {
                    int portInstance;
                    portInstance = DatatypeConverter.parseInt(portElement.getTextContent());
                    hybridConnectionInstance.setPort(portInstance);
                }

                Element biztalkUriElement = XmlUtility.getElementByTagNameNS(
                        relayServiceConnectionEntityElement, "http://schemas.microsoft.com/windowsazure",
                        "BiztalkUri");
                if (biztalkUriElement != null) {
                    String biztalkUriInstance;
                    biztalkUriInstance = biztalkUriElement.getTextContent();
                    hybridConnectionInstance.setBiztalkUri(biztalkUriInstance);
                }
            }

        }
        result.setStatusCode(statusCode);
        if (httpResponse.getHeaders("x-ms-request-id").length > 0) {
            result.setRequestId(httpResponse.getFirstHeader("x-ms-request-id").getValue());
        }

        if (shouldTrace) {
            CloudTracing.exit(invocationId, result);
        }
        return result;
    } finally {
        if (httpResponse != null && httpResponse.getEntity() != null) {
            httpResponse.getEntity().getContent().close();
        }
    }
}

From source file:com.microsoft.windowsazure.management.compute.DeploymentOperationsImpl.java

/**
* The Get Deployment By Name operation returns configuration information,
* status, and system properties for a deployment.  (see
* http://msdn.microsoft.com/en-us/library/windowsazure/ee460804.aspx for
* more information)/*ww w. j  av a2 s .c  om*/
*
* @param serviceName Required. The name of the cloud service.
* @param deploymentName Required. The name of the deployment.
* @throws IOException Signals that an I/O exception of some sort has
* occurred. This class is the general class of exceptions produced by
* failed or interrupted I/O operations.
* @throws ServiceException Thrown if an unexpected response is found.
* @throws ParserConfigurationException Thrown if there was a serious
* configuration error with the document parser.
* @throws SAXException Thrown if there was an error parsing the XML
* response.
* @throws URISyntaxException Thrown if there was an error parsing a URI in
* the response.
* @return A deployment that exists in the cloud service.
*/
@Override
public DeploymentGetResponse getByName(String serviceName, String deploymentName)
        throws IOException, ServiceException, ParserConfigurationException, SAXException, URISyntaxException {
    // Validate
    if (serviceName == null) {
        throw new NullPointerException("serviceName");
    }
    if (deploymentName == null) {
        throw new NullPointerException("deploymentName");
    }

    // Tracing
    boolean shouldTrace = CloudTracing.getIsEnabled();
    String invocationId = null;
    if (shouldTrace) {
        invocationId = Long.toString(CloudTracing.getNextInvocationId());
        HashMap<String, Object> tracingParameters = new HashMap<String, Object>();
        tracingParameters.put("serviceName", serviceName);
        tracingParameters.put("deploymentName", deploymentName);
        CloudTracing.enter(invocationId, this, "getByNameAsync", tracingParameters);
    }

    // Construct URL
    String url = "";
    url = url + "/";
    if (this.getClient().getCredentials().getSubscriptionId() != null) {
        url = url + URLEncoder.encode(this.getClient().getCredentials().getSubscriptionId(), "UTF-8");
    }
    url = url + "/services/hostedservices/";
    url = url + URLEncoder.encode(serviceName, "UTF-8");
    url = url + "/deployments/";
    url = url + URLEncoder.encode(deploymentName, "UTF-8");
    String baseUrl = this.getClient().getBaseUri().toString();
    // Trim '/' character from the end of baseUrl and beginning of url.
    if (baseUrl.charAt(baseUrl.length() - 1) == '/') {
        baseUrl = baseUrl.substring(0, (baseUrl.length() - 1) + 0);
    }
    if (url.charAt(0) == '/') {
        url = url.substring(1);
    }
    url = baseUrl + "/" + url;
    url = url.replace(" ", "%20");

    // Create HTTP transport objects
    HttpGet httpRequest = new HttpGet(url);

    // Set Headers
    httpRequest.setHeader("x-ms-version", "2015-04-01");

    // Send Request
    HttpResponse httpResponse = null;
    try {
        if (shouldTrace) {
            CloudTracing.sendRequest(invocationId, httpRequest);
        }
        httpResponse = this.getClient().getHttpClient().execute(httpRequest);
        if (shouldTrace) {
            CloudTracing.receiveResponse(invocationId, httpResponse);
        }
        int statusCode = httpResponse.getStatusLine().getStatusCode();
        if (statusCode != HttpStatus.SC_OK) {
            ServiceException ex = ServiceException.createFromXml(httpRequest, null, httpResponse,
                    httpResponse.getEntity());
            if (shouldTrace) {
                CloudTracing.error(invocationId, ex);
            }
            throw ex;
        }

        // Create Result
        DeploymentGetResponse result = null;
        // Deserialize Response
        if (statusCode == HttpStatus.SC_OK) {
            InputStream responseContent = httpResponse.getEntity().getContent();
            result = new DeploymentGetResponse();
            DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
            documentBuilderFactory.setNamespaceAware(true);
            DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
            Document responseDoc = documentBuilder.parse(new BOMInputStream(responseContent));

            Element deploymentElement = XmlUtility.getElementByTagNameNS(responseDoc,
                    "http://schemas.microsoft.com/windowsazure", "Deployment");
            if (deploymentElement != null) {
                Element nameElement = XmlUtility.getElementByTagNameNS(deploymentElement,
                        "http://schemas.microsoft.com/windowsazure", "Name");
                if (nameElement != null) {
                    String nameInstance;
                    nameInstance = nameElement.getTextContent();
                    result.setName(nameInstance);
                }

                Element deploymentSlotElement = XmlUtility.getElementByTagNameNS(deploymentElement,
                        "http://schemas.microsoft.com/windowsazure", "DeploymentSlot");
                if (deploymentSlotElement != null && deploymentSlotElement.getTextContent() != null
                        && !deploymentSlotElement.getTextContent().isEmpty()) {
                    DeploymentSlot deploymentSlotInstance;
                    deploymentSlotInstance = DeploymentSlot.valueOf(deploymentSlotElement.getTextContent());
                    result.setDeploymentSlot(deploymentSlotInstance);
                }

                Element privateIDElement = XmlUtility.getElementByTagNameNS(deploymentElement,
                        "http://schemas.microsoft.com/windowsazure", "PrivateID");
                if (privateIDElement != null) {
                    String privateIDInstance;
                    privateIDInstance = privateIDElement.getTextContent();
                    result.setPrivateId(privateIDInstance);
                }

                Element statusElement = XmlUtility.getElementByTagNameNS(deploymentElement,
                        "http://schemas.microsoft.com/windowsazure", "Status");
                if (statusElement != null && statusElement.getTextContent() != null
                        && !statusElement.getTextContent().isEmpty()) {
                    DeploymentStatus statusInstance;
                    statusInstance = DeploymentStatus.valueOf(statusElement.getTextContent());
                    result.setStatus(statusInstance);
                }

                Element labelElement = XmlUtility.getElementByTagNameNS(deploymentElement,
                        "http://schemas.microsoft.com/windowsazure", "Label");
                if (labelElement != null) {
                    String labelInstance;
                    labelInstance = labelElement.getTextContent() != null
                            ? new String(Base64.decode(labelElement.getTextContent()))
                            : null;
                    result.setLabel(labelInstance);
                }

                Element urlElement = XmlUtility.getElementByTagNameNS(deploymentElement,
                        "http://schemas.microsoft.com/windowsazure", "Url");
                if (urlElement != null) {
                    URI urlInstance;
                    urlInstance = new URI(urlElement.getTextContent());
                    result.setUri(urlInstance);
                }

                Element configurationElement = XmlUtility.getElementByTagNameNS(deploymentElement,
                        "http://schemas.microsoft.com/windowsazure", "Configuration");
                if (configurationElement != null) {
                    String configurationInstance;
                    configurationInstance = configurationElement.getTextContent() != null
                            ? new String(Base64.decode(configurationElement.getTextContent()))
                            : null;
                    result.setConfiguration(configurationInstance);
                }

                Element roleInstanceListSequenceElement = XmlUtility.getElementByTagNameNS(deploymentElement,
                        "http://schemas.microsoft.com/windowsazure", "RoleInstanceList");
                if (roleInstanceListSequenceElement != null) {
                    for (int i1 = 0; i1 < com.microsoft.windowsazure.core.utils.XmlUtility
                            .getElementsByTagNameNS(roleInstanceListSequenceElement,
                                    "http://schemas.microsoft.com/windowsazure", "RoleInstance")
                            .size(); i1 = i1 + 1) {
                        org.w3c.dom.Element roleInstanceListElement = ((org.w3c.dom.Element) com.microsoft.windowsazure.core.utils.XmlUtility
                                .getElementsByTagNameNS(roleInstanceListSequenceElement,
                                        "http://schemas.microsoft.com/windowsazure", "RoleInstance")
                                .get(i1));
                        RoleInstance roleInstanceInstance = new RoleInstance();
                        result.getRoleInstances().add(roleInstanceInstance);

                        Element roleNameElement = XmlUtility.getElementByTagNameNS(roleInstanceListElement,
                                "http://schemas.microsoft.com/windowsazure", "RoleName");
                        if (roleNameElement != null) {
                            String roleNameInstance;
                            roleNameInstance = roleNameElement.getTextContent();
                            roleInstanceInstance.setRoleName(roleNameInstance);
                        }

                        Element instanceNameElement = XmlUtility.getElementByTagNameNS(roleInstanceListElement,
                                "http://schemas.microsoft.com/windowsazure", "InstanceName");
                        if (instanceNameElement != null) {
                            String instanceNameInstance;
                            instanceNameInstance = instanceNameElement.getTextContent();
                            roleInstanceInstance.setInstanceName(instanceNameInstance);
                        }

                        Element instanceStatusElement = XmlUtility.getElementByTagNameNS(
                                roleInstanceListElement, "http://schemas.microsoft.com/windowsazure",
                                "InstanceStatus");
                        if (instanceStatusElement != null) {
                            String instanceStatusInstance;
                            instanceStatusInstance = instanceStatusElement.getTextContent();
                            roleInstanceInstance.setInstanceStatus(instanceStatusInstance);
                        }

                        Element instanceUpgradeDomainElement = XmlUtility.getElementByTagNameNS(
                                roleInstanceListElement, "http://schemas.microsoft.com/windowsazure",
                                "InstanceUpgradeDomain");
                        if (instanceUpgradeDomainElement != null
                                && instanceUpgradeDomainElement.getTextContent() != null
                                && !instanceUpgradeDomainElement.getTextContent().isEmpty()) {
                            int instanceUpgradeDomainInstance;
                            instanceUpgradeDomainInstance = DatatypeConverter
                                    .parseInt(instanceUpgradeDomainElement.getTextContent());
                            roleInstanceInstance.setInstanceUpgradeDomain(instanceUpgradeDomainInstance);
                        }

                        Element instanceFaultDomainElement = XmlUtility.getElementByTagNameNS(
                                roleInstanceListElement, "http://schemas.microsoft.com/windowsazure",
                                "InstanceFaultDomain");
                        if (instanceFaultDomainElement != null
                                && instanceFaultDomainElement.getTextContent() != null
                                && !instanceFaultDomainElement.getTextContent().isEmpty()) {
                            int instanceFaultDomainInstance;
                            instanceFaultDomainInstance = DatatypeConverter
                                    .parseInt(instanceFaultDomainElement.getTextContent());
                            roleInstanceInstance.setInstanceFaultDomain(instanceFaultDomainInstance);
                        }

                        Element instanceSizeElement = XmlUtility.getElementByTagNameNS(roleInstanceListElement,
                                "http://schemas.microsoft.com/windowsazure", "InstanceSize");
                        if (instanceSizeElement != null) {
                            String instanceSizeInstance;
                            instanceSizeInstance = instanceSizeElement.getTextContent();
                            roleInstanceInstance.setInstanceSize(instanceSizeInstance);
                        }

                        Element instanceStateDetailsElement = XmlUtility.getElementByTagNameNS(
                                roleInstanceListElement, "http://schemas.microsoft.com/windowsazure",
                                "InstanceStateDetails");
                        if (instanceStateDetailsElement != null) {
                            String instanceStateDetailsInstance;
                            instanceStateDetailsInstance = instanceStateDetailsElement.getTextContent();
                            roleInstanceInstance.setInstanceStateDetails(instanceStateDetailsInstance);
                        }

                        Element instanceErrorCodeElement = XmlUtility.getElementByTagNameNS(
                                roleInstanceListElement, "http://schemas.microsoft.com/windowsazure",
                                "InstanceErrorCode");
                        if (instanceErrorCodeElement != null) {
                            String instanceErrorCodeInstance;
                            instanceErrorCodeInstance = instanceErrorCodeElement.getTextContent();
                            roleInstanceInstance.setInstanceErrorCode(instanceErrorCodeInstance);
                        }

                        Element ipAddressElement = XmlUtility.getElementByTagNameNS(roleInstanceListElement,
                                "http://schemas.microsoft.com/windowsazure", "IpAddress");
                        if (ipAddressElement != null) {
                            InetAddress ipAddressInstance;
                            ipAddressInstance = InetAddress.getByName(ipAddressElement.getTextContent());
                            roleInstanceInstance.setIPAddress(ipAddressInstance);
                        }

                        Element instanceEndpointsSequenceElement = XmlUtility.getElementByTagNameNS(
                                roleInstanceListElement, "http://schemas.microsoft.com/windowsazure",
                                "InstanceEndpoints");
                        if (instanceEndpointsSequenceElement != null) {
                            for (int i2 = 0; i2 < com.microsoft.windowsazure.core.utils.XmlUtility
                                    .getElementsByTagNameNS(instanceEndpointsSequenceElement,
                                            "http://schemas.microsoft.com/windowsazure", "InstanceEndpoint")
                                    .size(); i2 = i2 + 1) {
                                org.w3c.dom.Element instanceEndpointsElement = ((org.w3c.dom.Element) com.microsoft.windowsazure.core.utils.XmlUtility
                                        .getElementsByTagNameNS(instanceEndpointsSequenceElement,
                                                "http://schemas.microsoft.com/windowsazure", "InstanceEndpoint")
                                        .get(i2));
                                InstanceEndpoint instanceEndpointInstance = new InstanceEndpoint();
                                roleInstanceInstance.getInstanceEndpoints().add(instanceEndpointInstance);

                                Element localPortElement = XmlUtility.getElementByTagNameNS(
                                        instanceEndpointsElement, "http://schemas.microsoft.com/windowsazure",
                                        "LocalPort");
                                if (localPortElement != null && localPortElement.getTextContent() != null
                                        && !localPortElement.getTextContent().isEmpty()) {
                                    int localPortInstance;
                                    localPortInstance = DatatypeConverter
                                            .parseInt(localPortElement.getTextContent());
                                    instanceEndpointInstance.setLocalPort(localPortInstance);
                                }

                                Element nameElement2 = XmlUtility.getElementByTagNameNS(
                                        instanceEndpointsElement, "http://schemas.microsoft.com/windowsazure",
                                        "Name");
                                if (nameElement2 != null) {
                                    String nameInstance2;
                                    nameInstance2 = nameElement2.getTextContent();
                                    instanceEndpointInstance.setName(nameInstance2);
                                }

                                Element publicPortElement = XmlUtility.getElementByTagNameNS(
                                        instanceEndpointsElement, "http://schemas.microsoft.com/windowsazure",
                                        "PublicPort");
                                if (publicPortElement != null) {
                                    int publicPortInstance;
                                    publicPortInstance = DatatypeConverter
                                            .parseInt(publicPortElement.getTextContent());
                                    instanceEndpointInstance.setPort(publicPortInstance);
                                }

                                Element protocolElement = XmlUtility.getElementByTagNameNS(
                                        instanceEndpointsElement, "http://schemas.microsoft.com/windowsazure",
                                        "Protocol");
                                if (protocolElement != null) {
                                    String protocolInstance;
                                    protocolInstance = protocolElement.getTextContent();
                                    instanceEndpointInstance.setProtocol(protocolInstance);
                                }

                                Element vipElement = XmlUtility.getElementByTagNameNS(instanceEndpointsElement,
                                        "http://schemas.microsoft.com/windowsazure", "Vip");
                                if (vipElement != null) {
                                    InetAddress vipInstance;
                                    vipInstance = InetAddress.getByName(vipElement.getTextContent());
                                    instanceEndpointInstance.setVirtualIPAddress(vipInstance);
                                }

                                Element idleTimeoutInMinutesElement = XmlUtility.getElementByTagNameNS(
                                        instanceEndpointsElement, "http://schemas.microsoft.com/windowsazure",
                                        "IdleTimeoutInMinutes");
                                if (idleTimeoutInMinutesElement != null
                                        && idleTimeoutInMinutesElement.getTextContent() != null
                                        && !idleTimeoutInMinutesElement.getTextContent().isEmpty()) {
                                    int idleTimeoutInMinutesInstance;
                                    idleTimeoutInMinutesInstance = DatatypeConverter
                                            .parseInt(idleTimeoutInMinutesElement.getTextContent());
                                    instanceEndpointInstance
                                            .setIdleTimeoutInMinutes(idleTimeoutInMinutesInstance);
                                }
                            }
                        }

                        Element guestAgentStatusElement = XmlUtility.getElementByTagNameNS(
                                roleInstanceListElement, "http://schemas.microsoft.com/windowsazure",
                                "GuestAgentStatus");
                        if (guestAgentStatusElement != null) {
                            GuestAgentStatus guestAgentStatusInstance = new GuestAgentStatus();
                            roleInstanceInstance.setGuestAgentStatus(guestAgentStatusInstance);

                            Element protocolVersionElement = XmlUtility.getElementByTagNameNS(
                                    guestAgentStatusElement, "http://schemas.microsoft.com/windowsazure",
                                    "ProtocolVersion");
                            if (protocolVersionElement != null) {
                                String protocolVersionInstance;
                                protocolVersionInstance = protocolVersionElement.getTextContent();
                                guestAgentStatusInstance.setProtocolVersion(protocolVersionInstance);
                            }

                            Element timestampElement = XmlUtility.getElementByTagNameNS(guestAgentStatusElement,
                                    "http://schemas.microsoft.com/windowsazure", "Timestamp");
                            if (timestampElement != null && timestampElement.getTextContent() != null
                                    && !timestampElement.getTextContent().isEmpty()) {
                                Calendar timestampInstance;
                                timestampInstance = DatatypeConverter
                                        .parseDateTime(timestampElement.getTextContent());
                                guestAgentStatusInstance.setTimestamp(timestampInstance);
                            }

                            Element guestAgentVersionElement = XmlUtility.getElementByTagNameNS(
                                    guestAgentStatusElement, "http://schemas.microsoft.com/windowsazure",
                                    "GuestAgentVersion");
                            if (guestAgentVersionElement != null) {
                                String guestAgentVersionInstance;
                                guestAgentVersionInstance = guestAgentVersionElement.getTextContent();
                                guestAgentStatusInstance.setGuestAgentVersion(guestAgentVersionInstance);
                            }

                            Element statusElement2 = XmlUtility.getElementByTagNameNS(guestAgentStatusElement,
                                    "http://schemas.microsoft.com/windowsazure", "Status");
                            if (statusElement2 != null) {
                                String statusInstance2;
                                statusInstance2 = statusElement2.getTextContent();
                                guestAgentStatusInstance.setStatus(statusInstance2);
                            }

                            Element codeElement = XmlUtility.getElementByTagNameNS(guestAgentStatusElement,
                                    "http://schemas.microsoft.com/windowsazure", "Code");
                            if (codeElement != null && codeElement.getTextContent() != null
                                    && !codeElement.getTextContent().isEmpty()) {
                                int codeInstance;
                                codeInstance = DatatypeConverter.parseInt(codeElement.getTextContent());
                                guestAgentStatusInstance.setCode(codeInstance);
                            }

                            Element messageElement = XmlUtility.getElementByTagNameNS(guestAgentStatusElement,
                                    "http://schemas.microsoft.com/windowsazure", "Message");
                            if (messageElement != null) {
                                GuestAgentMessage messageInstance = new GuestAgentMessage();
                                guestAgentStatusInstance.setMessage(messageInstance);

                                Element messageResourceIdElement = XmlUtility.getElementByTagNameNS(
                                        messageElement, "http://schemas.microsoft.com/windowsazure",
                                        "MessageResourceId");
                                if (messageResourceIdElement != null) {
                                    String messageResourceIdInstance;
                                    messageResourceIdInstance = messageResourceIdElement.getTextContent();
                                    messageInstance.setMessageResourceId(messageResourceIdInstance);
                                }

                                Element paramListSequenceElement = XmlUtility.getElementByTagNameNS(
                                        messageElement, "http://schemas.microsoft.com/windowsazure",
                                        "ParamList");
                                if (paramListSequenceElement != null) {
                                    for (int i3 = 0; i3 < com.microsoft.windowsazure.core.utils.XmlUtility
                                            .getElementsByTagNameNS(paramListSequenceElement,
                                                    "http://schemas.microsoft.com/windowsazure", "Param")
                                            .size(); i3 = i3 + 1) {
                                        org.w3c.dom.Element paramListElement = ((org.w3c.dom.Element) com.microsoft.windowsazure.core.utils.XmlUtility
                                                .getElementsByTagNameNS(paramListSequenceElement,
                                                        "http://schemas.microsoft.com/windowsazure", "Param")
                                                .get(i3));
                                        messageInstance.getParamList().add(paramListElement.getTextContent());
                                    }
                                }
                            }

                            Element formattedMessageElement = XmlUtility.getElementByTagNameNS(
                                    guestAgentStatusElement, "http://schemas.microsoft.com/windowsazure",
                                    "FormattedMessage");
                            if (formattedMessageElement != null) {
                                GuestAgentFormattedMessage formattedMessageInstance = new GuestAgentFormattedMessage();
                                guestAgentStatusInstance.setFormattedMessage(formattedMessageInstance);

                                Element languageElement = XmlUtility.getElementByTagNameNS(
                                        formattedMessageElement, "http://schemas.microsoft.com/windowsazure",
                                        "Language");
                                if (languageElement != null) {
                                    String languageInstance;
                                    languageInstance = languageElement.getTextContent();
                                    formattedMessageInstance.setLanguage(languageInstance);
                                }

                                Element messageElement2 = XmlUtility.getElementByTagNameNS(
                                        formattedMessageElement, "http://schemas.microsoft.com/windowsazure",
                                        "Message");
                                if (messageElement2 != null) {
                                    String messageInstance2;
                                    messageInstance2 = messageElement2.getTextContent();
                                    formattedMessageInstance.setMessage(messageInstance2);
                                }
                            }
                        }

                        Element resourceExtensionStatusListSequenceElement = XmlUtility.getElementByTagNameNS(
                                roleInstanceListElement, "http://schemas.microsoft.com/windowsazure",
                                "ResourceExtensionStatusList");
                        if (resourceExtensionStatusListSequenceElement != null) {
                            for (int i4 = 0; i4 < com.microsoft.windowsazure.core.utils.XmlUtility
                                    .getElementsByTagNameNS(resourceExtensionStatusListSequenceElement,
                                            "http://schemas.microsoft.com/windowsazure",
                                            "ResourceExtensionStatus")
                                    .size(); i4 = i4 + 1) {
                                org.w3c.dom.Element resourceExtensionStatusListElement = ((org.w3c.dom.Element) com.microsoft.windowsazure.core.utils.XmlUtility
                                        .getElementsByTagNameNS(resourceExtensionStatusListSequenceElement,
                                                "http://schemas.microsoft.com/windowsazure",
                                                "ResourceExtensionStatus")
                                        .get(i4));
                                ResourceExtensionStatus resourceExtensionStatusInstance = new ResourceExtensionStatus();
                                roleInstanceInstance.getResourceExtensionStatusList()
                                        .add(resourceExtensionStatusInstance);

                                Element handlerNameElement = XmlUtility.getElementByTagNameNS(
                                        resourceExtensionStatusListElement,
                                        "http://schemas.microsoft.com/windowsazure", "HandlerName");
                                if (handlerNameElement != null) {
                                    String handlerNameInstance;
                                    handlerNameInstance = handlerNameElement.getTextContent();
                                    resourceExtensionStatusInstance.setHandlerName(handlerNameInstance);
                                }

                                Element versionElement = XmlUtility.getElementByTagNameNS(
                                        resourceExtensionStatusListElement,
                                        "http://schemas.microsoft.com/windowsazure", "Version");
                                if (versionElement != null) {
                                    String versionInstance;
                                    versionInstance = versionElement.getTextContent();
                                    resourceExtensionStatusInstance.setVersion(versionInstance);
                                }

                                Element statusElement3 = XmlUtility.getElementByTagNameNS(
                                        resourceExtensionStatusListElement,
                                        "http://schemas.microsoft.com/windowsazure", "Status");
                                if (statusElement3 != null) {
                                    String statusInstance3;
                                    statusInstance3 = statusElement3.getTextContent();
                                    resourceExtensionStatusInstance.setStatus(statusInstance3);
                                }

                                Element codeElement2 = XmlUtility.getElementByTagNameNS(
                                        resourceExtensionStatusListElement,
                                        "http://schemas.microsoft.com/windowsazure", "Code");
                                if (codeElement2 != null && codeElement2.getTextContent() != null
                                        && !codeElement2.getTextContent().isEmpty()) {
                                    int codeInstance2;
                                    codeInstance2 = DatatypeConverter.parseInt(codeElement2.getTextContent());
                                    resourceExtensionStatusInstance.setCode(codeInstance2);
                                }

                                Element messageElement3 = XmlUtility.getElementByTagNameNS(
                                        resourceExtensionStatusListElement,
                                        "http://schemas.microsoft.com/windowsazure", "Message");
                                if (messageElement3 != null) {
                                    GuestAgentMessage messageInstance3 = new GuestAgentMessage();
                                    resourceExtensionStatusInstance.setMessage(messageInstance3);

                                    Element messageResourceIdElement2 = XmlUtility.getElementByTagNameNS(
                                            messageElement3, "http://schemas.microsoft.com/windowsazure",
                                            "MessageResourceId");
                                    if (messageResourceIdElement2 != null) {
                                        String messageResourceIdInstance2;
                                        messageResourceIdInstance2 = messageResourceIdElement2.getTextContent();
                                        messageInstance3.setMessageResourceId(messageResourceIdInstance2);
                                    }

                                    Element paramListSequenceElement2 = XmlUtility.getElementByTagNameNS(
                                            messageElement3, "http://schemas.microsoft.com/windowsazure",
                                            "ParamList");
                                    if (paramListSequenceElement2 != null) {
                                        for (int i5 = 0; i5 < com.microsoft.windowsazure.core.utils.XmlUtility
                                                .getElementsByTagNameNS(paramListSequenceElement2,
                                                        "http://schemas.microsoft.com/windowsazure", "Param")
                                                .size(); i5 = i5 + 1) {
                                            org.w3c.dom.Element paramListElement2 = ((org.w3c.dom.Element) com.microsoft.windowsazure.core.utils.XmlUtility
                                                    .getElementsByTagNameNS(paramListSequenceElement2,
                                                            "http://schemas.microsoft.com/windowsazure",
                                                            "Param")
                                                    .get(i5));
                                            messageInstance3.getParamList()
                                                    .add(paramListElement2.getTextContent());
                                        }
                                    }
                                }

                                Element formattedMessageElement2 = XmlUtility.getElementByTagNameNS(
                                        resourceExtensionStatusListElement,
                                        "http://schemas.microsoft.com/windowsazure", "FormattedMessage");
                                if (formattedMessageElement2 != null) {
                                    GuestAgentFormattedMessage formattedMessageInstance2 = new GuestAgentFormattedMessage();
                                    resourceExtensionStatusInstance
                                            .setFormattedMessage(formattedMessageInstance2);

                                    Element languageElement2 = XmlUtility.getElementByTagNameNS(
                                            formattedMessageElement2,
                                            "http://schemas.microsoft.com/windowsazure", "Language");
                                    if (languageElement2 != null) {
                                        String languageInstance2;
                                        languageInstance2 = languageElement2.getTextContent();
                                        formattedMessageInstance2.setLanguage(languageInstance2);
                                    }

                                    Element messageElement4 = XmlUtility.getElementByTagNameNS(
                                            formattedMessageElement2,
                                            "http://schemas.microsoft.com/windowsazure", "Message");
                                    if (messageElement4 != null) {
                                        String messageInstance4;
                                        messageInstance4 = messageElement4.getTextContent();
                                        formattedMessageInstance2.setMessage(messageInstance4);
                                    }
                                }

                                Element extensionSettingStatusElement = XmlUtility.getElementByTagNameNS(
                                        resourceExtensionStatusListElement,
                                        "http://schemas.microsoft.com/windowsazure", "ExtensionSettingStatus");
                                if (extensionSettingStatusElement != null) {
                                    ResourceExtensionConfigurationStatus extensionSettingStatusInstance = new ResourceExtensionConfigurationStatus();
                                    resourceExtensionStatusInstance
                                            .setExtensionSettingStatus(extensionSettingStatusInstance);

                                    Element timestampElement2 = XmlUtility.getElementByTagNameNS(
                                            extensionSettingStatusElement,
                                            "http://schemas.microsoft.com/windowsazure", "Timestamp");
                                    if (timestampElement2 != null && timestampElement2.getTextContent() != null
                                            && !timestampElement2.getTextContent().isEmpty()) {
                                        Calendar timestampInstance2;
                                        timestampInstance2 = DatatypeConverter
                                                .parseDateTime(timestampElement2.getTextContent());
                                        extensionSettingStatusInstance.setTimestamp(timestampInstance2);
                                    }

                                    Element configurationAppliedTimeElement = XmlUtility.getElementByTagNameNS(
                                            extensionSettingStatusElement,
                                            "http://schemas.microsoft.com/windowsazure",
                                            "ConfigurationAppliedTime");
                                    if (configurationAppliedTimeElement != null
                                            && configurationAppliedTimeElement.getTextContent() != null
                                            && !configurationAppliedTimeElement.getTextContent().isEmpty()) {
                                        Calendar configurationAppliedTimeInstance;
                                        configurationAppliedTimeInstance = DatatypeConverter.parseDateTime(
                                                configurationAppliedTimeElement.getTextContent());
                                        extensionSettingStatusInstance
                                                .setConfigurationAppliedTime(configurationAppliedTimeInstance);
                                    }

                                    Element nameElement3 = XmlUtility.getElementByTagNameNS(
                                            extensionSettingStatusElement,
                                            "http://schemas.microsoft.com/windowsazure", "Name");
                                    if (nameElement3 != null) {
                                        String nameInstance3;
                                        nameInstance3 = nameElement3.getTextContent();
                                        extensionSettingStatusInstance.setName(nameInstance3);
                                    }

                                    Element operationElement = XmlUtility.getElementByTagNameNS(
                                            extensionSettingStatusElement,
                                            "http://schemas.microsoft.com/windowsazure", "Operation");
                                    if (operationElement != null) {
                                        String operationInstance;
                                        operationInstance = operationElement.getTextContent();
                                        extensionSettingStatusInstance.setOperation(operationInstance);
                                    }

                                    Element statusElement4 = XmlUtility.getElementByTagNameNS(
                                            extensionSettingStatusElement,
                                            "http://schemas.microsoft.com/windowsazure", "Status");
                                    if (statusElement4 != null) {
                                        String statusInstance4;
                                        statusInstance4 = statusElement4.getTextContent();
                                        extensionSettingStatusInstance.setStatus(statusInstance4);
                                    }

                                    Element codeElement3 = XmlUtility.getElementByTagNameNS(
                                            extensionSettingStatusElement,
                                            "http://schemas.microsoft.com/windowsazure", "Code");
                                    if (codeElement3 != null && codeElement3.getTextContent() != null
                                            && !codeElement3.getTextContent().isEmpty()) {
                                        int codeInstance3;
                                        codeInstance3 = DatatypeConverter
                                                .parseInt(codeElement3.getTextContent());
                                        extensionSettingStatusInstance.setCode(codeInstance3);
                                    }

                                    Element messageElement5 = XmlUtility.getElementByTagNameNS(
                                            extensionSettingStatusElement,
                                            "http://schemas.microsoft.com/windowsazure", "Message");
                                    if (messageElement5 != null) {
                                        GuestAgentMessage messageInstance5 = new GuestAgentMessage();
                                        extensionSettingStatusInstance.setMessage(messageInstance5);

                                        Element messageResourceIdElement3 = XmlUtility.getElementByTagNameNS(
                                                messageElement5, "http://schemas.microsoft.com/windowsazure",
                                                "MessageResourceId");
                                        if (messageResourceIdElement3 != null) {
                                            String messageResourceIdInstance3;
                                            messageResourceIdInstance3 = messageResourceIdElement3
                                                    .getTextContent();
                                            messageInstance5.setMessageResourceId(messageResourceIdInstance3);
                                        }

                                        Element paramListSequenceElement3 = XmlUtility.getElementByTagNameNS(
                                                messageElement5, "http://schemas.microsoft.com/windowsazure",
                                                "ParamList");
                                        if (paramListSequenceElement3 != null) {
                                            for (int i6 = 0; i6 < com.microsoft.windowsazure.core.utils.XmlUtility
                                                    .getElementsByTagNameNS(paramListSequenceElement3,
                                                            "http://schemas.microsoft.com/windowsazure",
                                                            "Param")
                                                    .size(); i6 = i6 + 1) {
                                                org.w3c.dom.Element paramListElement3 = ((org.w3c.dom.Element) com.microsoft.windowsazure.core.utils.XmlUtility
                                                        .getElementsByTagNameNS(paramListSequenceElement3,
                                                                "http://schemas.microsoft.com/windowsazure",
                                                                "Param")
                                                        .get(i6));
                                                messageInstance5.getParamList()
                                                        .add(paramListElement3.getTextContent());
                                            }
                                        }
                                    }

                                    Element formattedMessageElement3 = XmlUtility.getElementByTagNameNS(
                                            extensionSettingStatusElement,
                                            "http://schemas.microsoft.com/windowsazure", "FormattedMessage");
                                    if (formattedMessageElement3 != null) {
                                        GuestAgentFormattedMessage formattedMessageInstance3 = new GuestAgentFormattedMessage();
                                        extensionSettingStatusInstance
                                                .setFormattedMessage(formattedMessageInstance3);

                                        Element languageElement3 = XmlUtility.getElementByTagNameNS(
                                                formattedMessageElement3,
                                                "http://schemas.microsoft.com/windowsazure", "Language");
                                        if (languageElement3 != null) {
                                            String languageInstance3;
                                            languageInstance3 = languageElement3.getTextContent();
                                            formattedMessageInstance3.setLanguage(languageInstance3);
                                        }

                                        Element messageElement6 = XmlUtility.getElementByTagNameNS(
                                                formattedMessageElement3,
                                                "http://schemas.microsoft.com/windowsazure", "Message");
                                        if (messageElement6 != null) {
                                            String messageInstance6;
                                            messageInstance6 = messageElement6.getTextContent();
                                            formattedMessageInstance3.setMessage(messageInstance6);
                                        }
                                    }

                                    Element subStatusListSequenceElement = XmlUtility.getElementByTagNameNS(
                                            extensionSettingStatusElement,
                                            "http://schemas.microsoft.com/windowsazure", "SubStatusList");
                                    if (subStatusListSequenceElement != null) {
                                        for (int i7 = 0; i7 < com.microsoft.windowsazure.core.utils.XmlUtility
                                                .getElementsByTagNameNS(subStatusListSequenceElement,
                                                        "http://schemas.microsoft.com/windowsazure",
                                                        "SubStatus")
                                                .size(); i7 = i7 + 1) {
                                            org.w3c.dom.Element subStatusListElement = ((org.w3c.dom.Element) com.microsoft.windowsazure.core.utils.XmlUtility
                                                    .getElementsByTagNameNS(subStatusListSequenceElement,
                                                            "http://schemas.microsoft.com/windowsazure",
                                                            "SubStatus")
                                                    .get(i7));
                                            ResourceExtensionSubStatus subStatusInstance = new ResourceExtensionSubStatus();
                                            extensionSettingStatusInstance.getSubStatusList()
                                                    .add(subStatusInstance);

                                            Element nameElement4 = XmlUtility.getElementByTagNameNS(
                                                    subStatusListElement,
                                                    "http://schemas.microsoft.com/windowsazure", "Name");
                                            if (nameElement4 != null) {
                                                String nameInstance4;
                                                nameInstance4 = nameElement4.getTextContent();
                                                subStatusInstance.setName(nameInstance4);
                                            }

                                            Element statusElement5 = XmlUtility.getElementByTagNameNS(
                                                    subStatusListElement,
                                                    "http://schemas.microsoft.com/windowsazure", "Status");
                                            if (statusElement5 != null) {
                                                String statusInstance5;
                                                statusInstance5 = statusElement5.getTextContent();
                                                subStatusInstance.setStatus(statusInstance5);
                                            }

                                            Element codeElement4 = XmlUtility.getElementByTagNameNS(
                                                    subStatusListElement,
                                                    "http://schemas.microsoft.com/windowsazure", "Code");
                                            if (codeElement4 != null && codeElement4.getTextContent() != null
                                                    && !codeElement4.getTextContent().isEmpty()) {
                                                int codeInstance4;
                                                codeInstance4 = DatatypeConverter
                                                        .parseInt(codeElement4.getTextContent());
                                                subStatusInstance.setCode(codeInstance4);
                                            }

                                            Element messageElement7 = XmlUtility.getElementByTagNameNS(
                                                    subStatusListElement,
                                                    "http://schemas.microsoft.com/windowsazure", "Message");
                                            if (messageElement7 != null) {
                                                GuestAgentMessage messageInstance7 = new GuestAgentMessage();
                                                subStatusInstance.setMessage(messageInstance7);

                                                Element messageResourceIdElement4 = XmlUtility
                                                        .getElementByTagNameNS(messageElement7,
                                                                "http://schemas.microsoft.com/windowsazure",
                                                                "MessageResourceId");
                                                if (messageResourceIdElement4 != null) {
                                                    String messageResourceIdInstance4;
                                                    messageResourceIdInstance4 = messageResourceIdElement4
                                                            .getTextContent();
                                                    messageInstance7
                                                            .setMessageResourceId(messageResourceIdInstance4);
                                                }

                                                Element paramListSequenceElement4 = XmlUtility
                                                        .getElementByTagNameNS(messageElement7,
                                                                "http://schemas.microsoft.com/windowsazure",
                                                                "ParamList");
                                                if (paramListSequenceElement4 != null) {
                                                    for (int i8 = 0; i8 < com.microsoft.windowsazure.core.utils.XmlUtility
                                                            .getElementsByTagNameNS(paramListSequenceElement4,
                                                                    "http://schemas.microsoft.com/windowsazure",
                                                                    "Param")
                                                            .size(); i8 = i8 + 1) {
                                                        org.w3c.dom.Element paramListElement4 = ((org.w3c.dom.Element) com.microsoft.windowsazure.core.utils.XmlUtility
                                                                .getElementsByTagNameNS(
                                                                        paramListSequenceElement4,
                                                                        "http://schemas.microsoft.com/windowsazure",
                                                                        "Param")
                                                                .get(i8));
                                                        messageInstance7.getParamList()
                                                                .add(paramListElement4.getTextContent());
                                                    }
                                                }
                                            }

                                            Element formattedMessageElement4 = XmlUtility.getElementByTagNameNS(
                                                    subStatusListElement,
                                                    "http://schemas.microsoft.com/windowsazure",
                                                    "FormattedMessage");
                                            if (formattedMessageElement4 != null) {
                                                GuestAgentFormattedMessage formattedMessageInstance4 = new GuestAgentFormattedMessage();
                                                subStatusInstance
                                                        .setFormattedMessage(formattedMessageInstance4);

                                                Element languageElement4 = XmlUtility.getElementByTagNameNS(
                                                        formattedMessageElement4,
                                                        "http://schemas.microsoft.com/windowsazure",
                                                        "Language");
                                                if (languageElement4 != null) {
                                                    String languageInstance4;
                                                    languageInstance4 = languageElement4.getTextContent();
                                                    formattedMessageInstance4.setLanguage(languageInstance4);
                                                }

                                                Element messageElement8 = XmlUtility.getElementByTagNameNS(
                                                        formattedMessageElement4,
                                                        "http://schemas.microsoft.com/windowsazure", "Message");
                                                if (messageElement8 != null) {
                                                    String messageInstance8;
                                                    messageInstance8 = messageElement8.getTextContent();
                                                    formattedMessageInstance4.setMessage(messageInstance8);
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }

                        Element powerStateElement = XmlUtility.getElementByTagNameNS(roleInstanceListElement,
                                "http://schemas.microsoft.com/windowsazure", "PowerState");
                        if (powerStateElement != null && powerStateElement.getTextContent() != null
                                && !powerStateElement.getTextContent().isEmpty()) {
                            RoleInstancePowerState powerStateInstance;
                            powerStateInstance = RoleInstancePowerState
                                    .valueOf(powerStateElement.getTextContent());
                            roleInstanceInstance.setPowerState(powerStateInstance);
                        }

                        Element hostNameElement = XmlUtility.getElementByTagNameNS(roleInstanceListElement,
                                "http://schemas.microsoft.com/windowsazure", "HostName");
                        if (hostNameElement != null) {
                            String hostNameInstance;
                            hostNameInstance = hostNameElement.getTextContent();
                            roleInstanceInstance.setHostName(hostNameInstance);
                        }

                        Element remoteAccessCertificateThumbprintElement = XmlUtility.getElementByTagNameNS(
                                roleInstanceListElement, "http://schemas.microsoft.com/windowsazure",
                                "RemoteAccessCertificateThumbprint");
                        if (remoteAccessCertificateThumbprintElement != null) {
                            String remoteAccessCertificateThumbprintInstance;
                            remoteAccessCertificateThumbprintInstance = remoteAccessCertificateThumbprintElement
                                    .getTextContent();
                            roleInstanceInstance.setRemoteAccessCertificateThumbprint(
                                    remoteAccessCertificateThumbprintInstance);
                        }

                        Element publicIPsSequenceElement = XmlUtility.getElementByTagNameNS(
                                roleInstanceListElement, "http://schemas.microsoft.com/windowsazure",
                                "PublicIPs");
                        if (publicIPsSequenceElement != null) {
                            for (int i9 = 0; i9 < com.microsoft.windowsazure.core.utils.XmlUtility
                                    .getElementsByTagNameNS(publicIPsSequenceElement,
                                            "http://schemas.microsoft.com/windowsazure", "PublicIP")
                                    .size(); i9 = i9 + 1) {
                                org.w3c.dom.Element publicIPsElement = ((org.w3c.dom.Element) com.microsoft.windowsazure.core.utils.XmlUtility
                                        .getElementsByTagNameNS(publicIPsSequenceElement,
                                                "http://schemas.microsoft.com/windowsazure", "PublicIP")
                                        .get(i9));
                                RoleInstance.PublicIP publicIPInstance = new RoleInstance.PublicIP();
                                roleInstanceInstance.getPublicIPs().add(publicIPInstance);

                                Element nameElement5 = XmlUtility.getElementByTagNameNS(publicIPsElement,
                                        "http://schemas.microsoft.com/windowsazure", "Name");
                                if (nameElement5 != null) {
                                    String nameInstance5;
                                    nameInstance5 = nameElement5.getTextContent();
                                    publicIPInstance.setName(nameInstance5);
                                }

                                Element addressElement = XmlUtility.getElementByTagNameNS(publicIPsElement,
                                        "http://schemas.microsoft.com/windowsazure", "Address");
                                if (addressElement != null) {
                                    InetAddress addressInstance;
                                    addressInstance = InetAddress.getByName(addressElement.getTextContent());
                                    publicIPInstance.setAddress(addressInstance);
                                }

                                Element idleTimeoutInMinutesElement2 = XmlUtility.getElementByTagNameNS(
                                        publicIPsElement, "http://schemas.microsoft.com/windowsazure",
                                        "IdleTimeoutInMinutes");
                                if (idleTimeoutInMinutesElement2 != null
                                        && idleTimeoutInMinutesElement2.getTextContent() != null
                                        && !idleTimeoutInMinutesElement2.getTextContent().isEmpty()) {
                                    int idleTimeoutInMinutesInstance2;
                                    idleTimeoutInMinutesInstance2 = DatatypeConverter
                                            .parseInt(idleTimeoutInMinutesElement2.getTextContent());
                                    publicIPInstance.setIdleTimeoutInMinutes(idleTimeoutInMinutesInstance2);
                                }

                                Element domainNameLabelElement = XmlUtility.getElementByTagNameNS(
                                        publicIPsElement, "http://schemas.microsoft.com/windowsazure",
                                        "DomainNameLabel");
                                if (domainNameLabelElement != null) {
                                    String domainNameLabelInstance;
                                    domainNameLabelInstance = domainNameLabelElement.getTextContent();
                                    publicIPInstance.setDomainNameLabel(domainNameLabelInstance);
                                }

                                Element fqdnsSequenceElement = XmlUtility.getElementByTagNameNS(
                                        publicIPsElement, "http://schemas.microsoft.com/windowsazure", "Fqdns");
                                if (fqdnsSequenceElement != null) {
                                    for (int i10 = 0; i10 < com.microsoft.windowsazure.core.utils.XmlUtility
                                            .getElementsByTagNameNS(fqdnsSequenceElement,
                                                    "http://schemas.microsoft.com/windowsazure", "Fqdn")
                                            .size(); i10 = i10 + 1) {
                                        org.w3c.dom.Element fqdnsElement = ((org.w3c.dom.Element) com.microsoft.windowsazure.core.utils.XmlUtility
                                                .getElementsByTagNameNS(fqdnsSequenceElement,
                                                        "http://schemas.microsoft.com/windowsazure", "Fqdn")
                                                .get(i10));
                                        publicIPInstance.getFqdns().add(fqdnsElement.getTextContent());
                                    }
                                }
                            }
                        }

                        Element networkInterfacesSequenceElement = XmlUtility.getElementByTagNameNS(
                                roleInstanceListElement, "http://schemas.microsoft.com/windowsazure",
                                "NetworkInterfaces");
                        if (networkInterfacesSequenceElement != null) {
                            for (int i11 = 0; i11 < com.microsoft.windowsazure.core.utils.XmlUtility
                                    .getElementsByTagNameNS(networkInterfacesSequenceElement,
                                            "http://schemas.microsoft.com/windowsazure", "NetworkInterface")
                                    .size(); i11 = i11 + 1) {
                                org.w3c.dom.Element networkInterfacesElement = ((org.w3c.dom.Element) com.microsoft.windowsazure.core.utils.XmlUtility
                                        .getElementsByTagNameNS(networkInterfacesSequenceElement,
                                                "http://schemas.microsoft.com/windowsazure", "NetworkInterface")
                                        .get(i11));
                                NetworkInterfaceInstance networkInterfaceInstance = new NetworkInterfaceInstance();
                                roleInstanceInstance.getNetworkInterfaces().add(networkInterfaceInstance);

                                Element nameElement6 = XmlUtility.getElementByTagNameNS(
                                        networkInterfacesElement, "http://schemas.microsoft.com/windowsazure",
                                        "Name");
                                if (nameElement6 != null) {
                                    String nameInstance6;
                                    nameInstance6 = nameElement6.getTextContent();
                                    networkInterfaceInstance.setName(nameInstance6);
                                }

                                Element macAddressElement = XmlUtility.getElementByTagNameNS(
                                        networkInterfacesElement, "http://schemas.microsoft.com/windowsazure",
                                        "MacAddress");
                                if (macAddressElement != null) {
                                    String macAddressInstance;
                                    macAddressInstance = macAddressElement.getTextContent();
                                    networkInterfaceInstance.setMacAddress(macAddressInstance);
                                }

                                Element iPConfigurationsSequenceElement = XmlUtility.getElementByTagNameNS(
                                        networkInterfacesElement, "http://schemas.microsoft.com/windowsazure",
                                        "IPConfigurations");
                                if (iPConfigurationsSequenceElement != null) {
                                    for (int i12 = 0; i12 < com.microsoft.windowsazure.core.utils.XmlUtility
                                            .getElementsByTagNameNS(iPConfigurationsSequenceElement,
                                                    "http://schemas.microsoft.com/windowsazure",
                                                    "IPConfiguration")
                                            .size(); i12 = i12 + 1) {
                                        org.w3c.dom.Element iPConfigurationsElement = ((org.w3c.dom.Element) com.microsoft.windowsazure.core.utils.XmlUtility
                                                .getElementsByTagNameNS(iPConfigurationsSequenceElement,
                                                        "http://schemas.microsoft.com/windowsazure",
                                                        "IPConfiguration")
                                                .get(i12));
                                        IPConfigurationInstance iPConfigurationInstance = new IPConfigurationInstance();
                                        networkInterfaceInstance.getIPConfigurations()
                                                .add(iPConfigurationInstance);

                                        Element subnetNameElement = XmlUtility.getElementByTagNameNS(
                                                iPConfigurationsElement,
                                                "http://schemas.microsoft.com/windowsazure", "SubnetName");
                                        if (subnetNameElement != null) {
                                            String subnetNameInstance;
                                            subnetNameInstance = subnetNameElement.getTextContent();
                                            iPConfigurationInstance.setSubnetName(subnetNameInstance);
                                        }

                                        Element addressElement2 = XmlUtility.getElementByTagNameNS(
                                                iPConfigurationsElement,
                                                "http://schemas.microsoft.com/windowsazure", "Address");
                                        if (addressElement2 != null) {
                                            String addressInstance2;
                                            addressInstance2 = addressElement2.getTextContent();
                                            iPConfigurationInstance.setAddress(addressInstance2);
                                        }
                                    }
                                }
                            }
                        }
                    }
                }

                Element upgradeStatusElement = XmlUtility.getElementByTagNameNS(deploymentElement,
                        "http://schemas.microsoft.com/windowsazure", "UpgradeStatus");
                if (upgradeStatusElement != null) {
                    UpgradeStatus upgradeStatusInstance = new UpgradeStatus();
                    result.setUpgradeStatus(upgradeStatusInstance);

                    Element upgradeTypeElement = XmlUtility.getElementByTagNameNS(upgradeStatusElement,
                            "http://schemas.microsoft.com/windowsazure", "UpgradeType");
                    if (upgradeTypeElement != null && upgradeTypeElement.getTextContent() != null
                            && !upgradeTypeElement.getTextContent().isEmpty()) {
                        DeploymentUpgradeType upgradeTypeInstance;
                        upgradeTypeInstance = DeploymentUpgradeType
                                .valueOf(upgradeTypeElement.getTextContent());
                        upgradeStatusInstance.setUpgradeType(upgradeTypeInstance);
                    }

                    Element currentUpgradeDomainStateElement = XmlUtility.getElementByTagNameNS(
                            upgradeStatusElement, "http://schemas.microsoft.com/windowsazure",
                            "CurrentUpgradeDomainState");
                    if (currentUpgradeDomainStateElement != null
                            && currentUpgradeDomainStateElement.getTextContent() != null
                            && !currentUpgradeDomainStateElement.getTextContent().isEmpty()) {
                        UpgradeDomainState currentUpgradeDomainStateInstance;
                        currentUpgradeDomainStateInstance = UpgradeDomainState
                                .valueOf(currentUpgradeDomainStateElement.getTextContent());
                        upgradeStatusInstance.setCurrentUpgradeDomainState(currentUpgradeDomainStateInstance);
                    }

                    Element currentUpgradeDomainElement = XmlUtility.getElementByTagNameNS(upgradeStatusElement,
                            "http://schemas.microsoft.com/windowsazure", "CurrentUpgradeDomain");
                    if (currentUpgradeDomainElement != null) {
                        int currentUpgradeDomainInstance;
                        currentUpgradeDomainInstance = DatatypeConverter
                                .parseInt(currentUpgradeDomainElement.getTextContent());
                        upgradeStatusInstance.setCurrentUpgradeDomain(currentUpgradeDomainInstance);
                    }
                }

                Element upgradeDomainCountElement = XmlUtility.getElementByTagNameNS(deploymentElement,
                        "http://schemas.microsoft.com/windowsazure", "UpgradeDomainCount");
                if (upgradeDomainCountElement != null) {
                    int upgradeDomainCountInstance;
                    upgradeDomainCountInstance = DatatypeConverter
                            .parseInt(upgradeDomainCountElement.getTextContent());
                    result.setUpgradeDomainCount(upgradeDomainCountInstance);
                }

                Element roleListSequenceElement = XmlUtility.getElementByTagNameNS(deploymentElement,
                        "http://schemas.microsoft.com/windowsazure", "RoleList");
                if (roleListSequenceElement != null) {
                    for (int i13 = 0; i13 < com.microsoft.windowsazure.core.utils.XmlUtility
                            .getElementsByTagNameNS(roleListSequenceElement,
                                    "http://schemas.microsoft.com/windowsazure", "Role")
                            .size(); i13 = i13 + 1) {
                        org.w3c.dom.Element roleListElement = ((org.w3c.dom.Element) com.microsoft.windowsazure.core.utils.XmlUtility
                                .getElementsByTagNameNS(roleListSequenceElement,
                                        "http://schemas.microsoft.com/windowsazure", "Role")
                                .get(i13));
                        Role roleInstance = new Role();
                        result.getRoles().add(roleInstance);

                        Element roleNameElement2 = XmlUtility.getElementByTagNameNS(roleListElement,
                                "http://schemas.microsoft.com/windowsazure", "RoleName");
                        if (roleNameElement2 != null) {
                            String roleNameInstance2;
                            roleNameInstance2 = roleNameElement2.getTextContent();
                            roleInstance.setRoleName(roleNameInstance2);
                        }

                        Element osVersionElement = XmlUtility.getElementByTagNameNS(roleListElement,
                                "http://schemas.microsoft.com/windowsazure", "OsVersion");
                        if (osVersionElement != null) {
                            String osVersionInstance;
                            osVersionInstance = osVersionElement.getTextContent();
                            roleInstance.setOSVersion(osVersionInstance);
                        }

                        Element roleTypeElement = XmlUtility.getElementByTagNameNS(roleListElement,
                                "http://schemas.microsoft.com/windowsazure", "RoleType");
                        if (roleTypeElement != null) {
                            String roleTypeInstance;
                            roleTypeInstance = roleTypeElement.getTextContent();
                            roleInstance.setRoleType(roleTypeInstance);
                        }

                        Element configurationSetsSequenceElement = XmlUtility.getElementByTagNameNS(
                                roleListElement, "http://schemas.microsoft.com/windowsazure",
                                "ConfigurationSets");
                        if (configurationSetsSequenceElement != null) {
                            for (int i14 = 0; i14 < com.microsoft.windowsazure.core.utils.XmlUtility
                                    .getElementsByTagNameNS(configurationSetsSequenceElement,
                                            "http://schemas.microsoft.com/windowsazure", "ConfigurationSet")
                                    .size(); i14 = i14 + 1) {
                                org.w3c.dom.Element configurationSetsElement = ((org.w3c.dom.Element) com.microsoft.windowsazure.core.utils.XmlUtility
                                        .getElementsByTagNameNS(configurationSetsSequenceElement,
                                                "http://schemas.microsoft.com/windowsazure", "ConfigurationSet")
                                        .get(i14));
                                ConfigurationSet configurationSetInstance = new ConfigurationSet();
                                roleInstance.getConfigurationSets().add(configurationSetInstance);

                                Element configurationSetTypeElement = XmlUtility.getElementByTagNameNS(
                                        configurationSetsElement, "http://schemas.microsoft.com/windowsazure",
                                        "ConfigurationSetType");
                                if (configurationSetTypeElement != null) {
                                    String configurationSetTypeInstance;
                                    configurationSetTypeInstance = configurationSetTypeElement.getTextContent();
                                    configurationSetInstance
                                            .setConfigurationSetType(configurationSetTypeInstance);
                                }

                                Element inputEndpointsSequenceElement = XmlUtility.getElementByTagNameNS(
                                        configurationSetsElement, "http://schemas.microsoft.com/windowsazure",
                                        "InputEndpoints");
                                if (inputEndpointsSequenceElement != null) {
                                    for (int i15 = 0; i15 < com.microsoft.windowsazure.core.utils.XmlUtility
                                            .getElementsByTagNameNS(inputEndpointsSequenceElement,
                                                    "http://schemas.microsoft.com/windowsazure",
                                                    "InputEndpoint")
                                            .size(); i15 = i15 + 1) {
                                        org.w3c.dom.Element inputEndpointsElement = ((org.w3c.dom.Element) com.microsoft.windowsazure.core.utils.XmlUtility
                                                .getElementsByTagNameNS(inputEndpointsSequenceElement,
                                                        "http://schemas.microsoft.com/windowsazure",
                                                        "InputEndpoint")
                                                .get(i15));
                                        InputEndpoint inputEndpointInstance = new InputEndpoint();
                                        configurationSetInstance.getInputEndpoints().add(inputEndpointInstance);

                                        Element loadBalancedEndpointSetNameElement = XmlUtility
                                                .getElementByTagNameNS(inputEndpointsElement,
                                                        "http://schemas.microsoft.com/windowsazure",
                                                        "LoadBalancedEndpointSetName");
                                        if (loadBalancedEndpointSetNameElement != null) {
                                            String loadBalancedEndpointSetNameInstance;
                                            loadBalancedEndpointSetNameInstance = loadBalancedEndpointSetNameElement
                                                    .getTextContent();
                                            inputEndpointInstance.setLoadBalancedEndpointSetName(
                                                    loadBalancedEndpointSetNameInstance);
                                        }

                                        Element localPortElement2 = XmlUtility.getElementByTagNameNS(
                                                inputEndpointsElement,
                                                "http://schemas.microsoft.com/windowsazure", "LocalPort");
                                        if (localPortElement2 != null
                                                && localPortElement2.getTextContent() != null
                                                && !localPortElement2.getTextContent().isEmpty()) {
                                            int localPortInstance2;
                                            localPortInstance2 = DatatypeConverter
                                                    .parseInt(localPortElement2.getTextContent());
                                            inputEndpointInstance.setLocalPort(localPortInstance2);
                                        }

                                        Element nameElement7 = XmlUtility.getElementByTagNameNS(
                                                inputEndpointsElement,
                                                "http://schemas.microsoft.com/windowsazure", "Name");
                                        if (nameElement7 != null) {
                                            String nameInstance7;
                                            nameInstance7 = nameElement7.getTextContent();
                                            inputEndpointInstance.setName(nameInstance7);
                                        }

                                        Element portElement = XmlUtility.getElementByTagNameNS(
                                                inputEndpointsElement,
                                                "http://schemas.microsoft.com/windowsazure", "Port");
                                        if (portElement != null && portElement.getTextContent() != null
                                                && !portElement.getTextContent().isEmpty()) {
                                            int portInstance;
                                            portInstance = DatatypeConverter
                                                    .parseInt(portElement.getTextContent());
                                            inputEndpointInstance.setPort(portInstance);
                                        }

                                        Element loadBalancerProbeElement = XmlUtility.getElementByTagNameNS(
                                                inputEndpointsElement,
                                                "http://schemas.microsoft.com/windowsazure",
                                                "LoadBalancerProbe");
                                        if (loadBalancerProbeElement != null) {
                                            LoadBalancerProbe loadBalancerProbeInstance = new LoadBalancerProbe();
                                            inputEndpointInstance
                                                    .setLoadBalancerProbe(loadBalancerProbeInstance);

                                            Element pathElement = XmlUtility.getElementByTagNameNS(
                                                    loadBalancerProbeElement,
                                                    "http://schemas.microsoft.com/windowsazure", "Path");
                                            if (pathElement != null) {
                                                String pathInstance;
                                                pathInstance = pathElement.getTextContent();
                                                loadBalancerProbeInstance.setPath(pathInstance);
                                            }

                                            Element portElement2 = XmlUtility.getElementByTagNameNS(
                                                    loadBalancerProbeElement,
                                                    "http://schemas.microsoft.com/windowsazure", "Port");
                                            if (portElement2 != null) {
                                                int portInstance2;
                                                portInstance2 = DatatypeConverter
                                                        .parseInt(portElement2.getTextContent());
                                                loadBalancerProbeInstance.setPort(portInstance2);
                                            }

                                            Element protocolElement2 = XmlUtility.getElementByTagNameNS(
                                                    loadBalancerProbeElement,
                                                    "http://schemas.microsoft.com/windowsazure", "Protocol");
                                            if (protocolElement2 != null
                                                    && protocolElement2.getTextContent() != null
                                                    && !protocolElement2.getTextContent().isEmpty()) {
                                                LoadBalancerProbeTransportProtocol protocolInstance2;
                                                protocolInstance2 = com.microsoft.windowsazure.management.compute.ComputeManagementClientImpl
                                                        .parseLoadBalancerProbeTransportProtocol(
                                                                protocolElement2.getTextContent());
                                                loadBalancerProbeInstance.setProtocol(protocolInstance2);
                                            }

                                            Element intervalInSecondsElement = XmlUtility.getElementByTagNameNS(
                                                    loadBalancerProbeElement,
                                                    "http://schemas.microsoft.com/windowsazure",
                                                    "IntervalInSeconds");
                                            if (intervalInSecondsElement != null
                                                    && intervalInSecondsElement.getTextContent() != null
                                                    && !intervalInSecondsElement.getTextContent().isEmpty()) {
                                                int intervalInSecondsInstance;
                                                intervalInSecondsInstance = DatatypeConverter
                                                        .parseInt(intervalInSecondsElement.getTextContent());
                                                loadBalancerProbeInstance
                                                        .setIntervalInSeconds(intervalInSecondsInstance);
                                            }

                                            Element timeoutInSecondsElement = XmlUtility.getElementByTagNameNS(
                                                    loadBalancerProbeElement,
                                                    "http://schemas.microsoft.com/windowsazure",
                                                    "TimeoutInSeconds");
                                            if (timeoutInSecondsElement != null
                                                    && timeoutInSecondsElement.getTextContent() != null
                                                    && !timeoutInSecondsElement.getTextContent().isEmpty()) {
                                                int timeoutInSecondsInstance;
                                                timeoutInSecondsInstance = DatatypeConverter
                                                        .parseInt(timeoutInSecondsElement.getTextContent());
                                                loadBalancerProbeInstance
                                                        .setTimeoutInSeconds(timeoutInSecondsInstance);
                                            }
                                        }

                                        Element protocolElement3 = XmlUtility.getElementByTagNameNS(
                                                inputEndpointsElement,
                                                "http://schemas.microsoft.com/windowsazure", "Protocol");
                                        if (protocolElement3 != null) {
                                            String protocolInstance3;
                                            protocolInstance3 = protocolElement3.getTextContent();
                                            inputEndpointInstance.setProtocol(protocolInstance3);
                                        }

                                        Element vipElement2 = XmlUtility.getElementByTagNameNS(
                                                inputEndpointsElement,
                                                "http://schemas.microsoft.com/windowsazure", "Vip");
                                        if (vipElement2 != null) {
                                            InetAddress vipInstance2;
                                            vipInstance2 = InetAddress.getByName(vipElement2.getTextContent());
                                            inputEndpointInstance.setVirtualIPAddress(vipInstance2);
                                        }

                                        Element enableDirectServerReturnElement = XmlUtility
                                                .getElementByTagNameNS(inputEndpointsElement,
                                                        "http://schemas.microsoft.com/windowsazure",
                                                        "EnableDirectServerReturn");
                                        if (enableDirectServerReturnElement != null
                                                && enableDirectServerReturnElement.getTextContent() != null
                                                && !enableDirectServerReturnElement.getTextContent()
                                                        .isEmpty()) {
                                            boolean enableDirectServerReturnInstance;
                                            enableDirectServerReturnInstance = DatatypeConverter
                                                    .parseBoolean(enableDirectServerReturnElement
                                                            .getTextContent().toLowerCase());
                                            inputEndpointInstance.setEnableDirectServerReturn(
                                                    enableDirectServerReturnInstance);
                                        }

                                        Element loadBalancerNameElement = XmlUtility.getElementByTagNameNS(
                                                inputEndpointsElement,
                                                "http://schemas.microsoft.com/windowsazure",
                                                "LoadBalancerName");
                                        if (loadBalancerNameElement != null) {
                                            String loadBalancerNameInstance;
                                            loadBalancerNameInstance = loadBalancerNameElement.getTextContent();
                                            inputEndpointInstance.setLoadBalancerName(loadBalancerNameInstance);
                                        }

                                        Element endpointAclElement = XmlUtility.getElementByTagNameNS(
                                                inputEndpointsElement,
                                                "http://schemas.microsoft.com/windowsazure", "EndpointAcl");
                                        if (endpointAclElement != null) {
                                            EndpointAcl endpointAclInstance = new EndpointAcl();
                                            inputEndpointInstance.setEndpointAcl(endpointAclInstance);

                                            Element rulesSequenceElement = XmlUtility.getElementByTagNameNS(
                                                    endpointAclElement,
                                                    "http://schemas.microsoft.com/windowsazure", "Rules");
                                            if (rulesSequenceElement != null) {
                                                for (int i16 = 0; i16 < com.microsoft.windowsazure.core.utils.XmlUtility
                                                        .getElementsByTagNameNS(rulesSequenceElement,
                                                                "http://schemas.microsoft.com/windowsazure",
                                                                "Rule")
                                                        .size(); i16 = i16 + 1) {
                                                    org.w3c.dom.Element rulesElement = ((org.w3c.dom.Element) com.microsoft.windowsazure.core.utils.XmlUtility
                                                            .getElementsByTagNameNS(rulesSequenceElement,
                                                                    "http://schemas.microsoft.com/windowsazure",
                                                                    "Rule")
                                                            .get(i16));
                                                    AccessControlListRule ruleInstance = new AccessControlListRule();
                                                    endpointAclInstance.getRules().add(ruleInstance);

                                                    Element orderElement = XmlUtility.getElementByTagNameNS(
                                                            rulesElement,
                                                            "http://schemas.microsoft.com/windowsazure",
                                                            "Order");
                                                    if (orderElement != null
                                                            && orderElement.getTextContent() != null
                                                            && !orderElement.getTextContent().isEmpty()) {
                                                        int orderInstance;
                                                        orderInstance = DatatypeConverter
                                                                .parseInt(orderElement.getTextContent());
                                                        ruleInstance.setOrder(orderInstance);
                                                    }

                                                    Element actionElement = XmlUtility.getElementByTagNameNS(
                                                            rulesElement,
                                                            "http://schemas.microsoft.com/windowsazure",
                                                            "Action");
                                                    if (actionElement != null) {
                                                        String actionInstance;
                                                        actionInstance = actionElement.getTextContent();
                                                        ruleInstance.setAction(actionInstance);
                                                    }

                                                    Element remoteSubnetElement = XmlUtility
                                                            .getElementByTagNameNS(rulesElement,
                                                                    "http://schemas.microsoft.com/windowsazure",
                                                                    "RemoteSubnet");
                                                    if (remoteSubnetElement != null) {
                                                        String remoteSubnetInstance;
                                                        remoteSubnetInstance = remoteSubnetElement
                                                                .getTextContent();
                                                        ruleInstance.setRemoteSubnet(remoteSubnetInstance);
                                                    }

                                                    Element descriptionElement = XmlUtility
                                                            .getElementByTagNameNS(rulesElement,
                                                                    "http://schemas.microsoft.com/windowsazure",
                                                                    "Description");
                                                    if (descriptionElement != null) {
                                                        String descriptionInstance;
                                                        descriptionInstance = descriptionElement
                                                                .getTextContent();
                                                        ruleInstance.setDescription(descriptionInstance);
                                                    }
                                                }
                                            }
                                        }

                                        Element idleTimeoutInMinutesElement3 = XmlUtility.getElementByTagNameNS(
                                                inputEndpointsElement,
                                                "http://schemas.microsoft.com/windowsazure",
                                                "IdleTimeoutInMinutes");
                                        if (idleTimeoutInMinutesElement3 != null
                                                && idleTimeoutInMinutesElement3.getTextContent() != null
                                                && !idleTimeoutInMinutesElement3.getTextContent().isEmpty()) {
                                            int idleTimeoutInMinutesInstance3;
                                            idleTimeoutInMinutesInstance3 = DatatypeConverter
                                                    .parseInt(idleTimeoutInMinutesElement3.getTextContent());
                                            inputEndpointInstance
                                                    .setIdleTimeoutInMinutes(idleTimeoutInMinutesInstance3);
                                        }

                                        Element loadBalancerDistributionElement = XmlUtility
                                                .getElementByTagNameNS(inputEndpointsElement,
                                                        "http://schemas.microsoft.com/windowsazure",
                                                        "LoadBalancerDistribution");
                                        if (loadBalancerDistributionElement != null) {
                                            String loadBalancerDistributionInstance;
                                            loadBalancerDistributionInstance = loadBalancerDistributionElement
                                                    .getTextContent();
                                            inputEndpointInstance.setLoadBalancerDistribution(
                                                    loadBalancerDistributionInstance);
                                        }

                                        Element virtualIPNameElement = XmlUtility.getElementByTagNameNS(
                                                inputEndpointsElement,
                                                "http://schemas.microsoft.com/windowsazure", "VirtualIPName");
                                        if (virtualIPNameElement != null) {
                                            String virtualIPNameInstance;
                                            virtualIPNameInstance = virtualIPNameElement.getTextContent();
                                            inputEndpointInstance.setVirtualIPName(virtualIPNameInstance);
                                        }
                                    }
                                }

                                Element subnetNamesSequenceElement = XmlUtility.getElementByTagNameNS(
                                        configurationSetsElement, "http://schemas.microsoft.com/windowsazure",
                                        "SubnetNames");
                                if (subnetNamesSequenceElement != null) {
                                    for (int i17 = 0; i17 < com.microsoft.windowsazure.core.utils.XmlUtility
                                            .getElementsByTagNameNS(subnetNamesSequenceElement,
                                                    "http://schemas.microsoft.com/windowsazure", "SubnetName")
                                            .size(); i17 = i17 + 1) {
                                        org.w3c.dom.Element subnetNamesElement = ((org.w3c.dom.Element) com.microsoft.windowsazure.core.utils.XmlUtility
                                                .getElementsByTagNameNS(subnetNamesSequenceElement,
                                                        "http://schemas.microsoft.com/windowsazure",
                                                        "SubnetName")
                                                .get(i17));
                                        configurationSetInstance.getSubnetNames()
                                                .add(subnetNamesElement.getTextContent());
                                    }
                                }

                                Element staticVirtualNetworkIPAddressElement = XmlUtility.getElementByTagNameNS(
                                        configurationSetsElement, "http://schemas.microsoft.com/windowsazure",
                                        "StaticVirtualNetworkIPAddress");
                                if (staticVirtualNetworkIPAddressElement != null) {
                                    String staticVirtualNetworkIPAddressInstance;
                                    staticVirtualNetworkIPAddressInstance = staticVirtualNetworkIPAddressElement
                                            .getTextContent();
                                    configurationSetInstance.setStaticVirtualNetworkIPAddress(
                                            staticVirtualNetworkIPAddressInstance);
                                }

                                Element publicIPsSequenceElement2 = XmlUtility.getElementByTagNameNS(
                                        configurationSetsElement, "http://schemas.microsoft.com/windowsazure",
                                        "PublicIPs");
                                if (publicIPsSequenceElement2 != null) {
                                    for (int i18 = 0; i18 < com.microsoft.windowsazure.core.utils.XmlUtility
                                            .getElementsByTagNameNS(publicIPsSequenceElement2,
                                                    "http://schemas.microsoft.com/windowsazure", "PublicIP")
                                            .size(); i18 = i18 + 1) {
                                        org.w3c.dom.Element publicIPsElement2 = ((org.w3c.dom.Element) com.microsoft.windowsazure.core.utils.XmlUtility
                                                .getElementsByTagNameNS(publicIPsSequenceElement2,
                                                        "http://schemas.microsoft.com/windowsazure", "PublicIP")
                                                .get(i18));
                                        ConfigurationSet.PublicIP publicIPInstance2 = new ConfigurationSet.PublicIP();
                                        configurationSetInstance.getPublicIPs().add(publicIPInstance2);

                                        Element nameElement8 = XmlUtility.getElementByTagNameNS(
                                                publicIPsElement2, "http://schemas.microsoft.com/windowsazure",
                                                "Name");
                                        if (nameElement8 != null) {
                                            String nameInstance8;
                                            nameInstance8 = nameElement8.getTextContent();
                                            publicIPInstance2.setName(nameInstance8);
                                        }

                                        Element idleTimeoutInMinutesElement4 = XmlUtility.getElementByTagNameNS(
                                                publicIPsElement2, "http://schemas.microsoft.com/windowsazure",
                                                "IdleTimeoutInMinutes");
                                        if (idleTimeoutInMinutesElement4 != null
                                                && idleTimeoutInMinutesElement4.getTextContent() != null
                                                && !idleTimeoutInMinutesElement4.getTextContent().isEmpty()) {
                                            int idleTimeoutInMinutesInstance4;
                                            idleTimeoutInMinutesInstance4 = DatatypeConverter
                                                    .parseInt(idleTimeoutInMinutesElement4.getTextContent());
                                            publicIPInstance2
                                                    .setIdleTimeoutInMinutes(idleTimeoutInMinutesInstance4);
                                        }

                                        Element domainNameLabelElement2 = XmlUtility.getElementByTagNameNS(
                                                publicIPsElement2, "http://schemas.microsoft.com/windowsazure",
                                                "DomainNameLabel");
                                        if (domainNameLabelElement2 != null) {
                                            String domainNameLabelInstance2;
                                            domainNameLabelInstance2 = domainNameLabelElement2.getTextContent();
                                            publicIPInstance2.setDomainNameLabel(domainNameLabelInstance2);
                                        }
                                    }
                                }

                                Element networkInterfacesSequenceElement2 = XmlUtility.getElementByTagNameNS(
                                        configurationSetsElement, "http://schemas.microsoft.com/windowsazure",
                                        "NetworkInterfaces");
                                if (networkInterfacesSequenceElement2 != null) {
                                    for (int i19 = 0; i19 < com.microsoft.windowsazure.core.utils.XmlUtility
                                            .getElementsByTagNameNS(networkInterfacesSequenceElement2,
                                                    "http://schemas.microsoft.com/windowsazure",
                                                    "NetworkInterface")
                                            .size(); i19 = i19 + 1) {
                                        org.w3c.dom.Element networkInterfacesElement2 = ((org.w3c.dom.Element) com.microsoft.windowsazure.core.utils.XmlUtility
                                                .getElementsByTagNameNS(networkInterfacesSequenceElement2,
                                                        "http://schemas.microsoft.com/windowsazure",
                                                        "NetworkInterface")
                                                .get(i19));
                                        NetworkInterface networkInterfaceInstance2 = new NetworkInterface();
                                        configurationSetInstance.getNetworkInterfaces()
                                                .add(networkInterfaceInstance2);

                                        Element nameElement9 = XmlUtility.getElementByTagNameNS(
                                                networkInterfacesElement2,
                                                "http://schemas.microsoft.com/windowsazure", "Name");
                                        if (nameElement9 != null) {
                                            String nameInstance9;
                                            nameInstance9 = nameElement9.getTextContent();
                                            networkInterfaceInstance2.setName(nameInstance9);
                                        }

                                        Element iPConfigurationsSequenceElement2 = XmlUtility
                                                .getElementByTagNameNS(networkInterfacesElement2,
                                                        "http://schemas.microsoft.com/windowsazure",
                                                        "IPConfigurations");
                                        if (iPConfigurationsSequenceElement2 != null) {
                                            for (int i20 = 0; i20 < com.microsoft.windowsazure.core.utils.XmlUtility
                                                    .getElementsByTagNameNS(iPConfigurationsSequenceElement2,
                                                            "http://schemas.microsoft.com/windowsazure",
                                                            "IPConfiguration")
                                                    .size(); i20 = i20 + 1) {
                                                org.w3c.dom.Element iPConfigurationsElement2 = ((org.w3c.dom.Element) com.microsoft.windowsazure.core.utils.XmlUtility
                                                        .getElementsByTagNameNS(
                                                                iPConfigurationsSequenceElement2,
                                                                "http://schemas.microsoft.com/windowsazure",
                                                                "IPConfiguration")
                                                        .get(i20));
                                                IPConfiguration iPConfigurationInstance2 = new IPConfiguration();
                                                networkInterfaceInstance2.getIPConfigurations()
                                                        .add(iPConfigurationInstance2);

                                                Element subnetNameElement2 = XmlUtility.getElementByTagNameNS(
                                                        iPConfigurationsElement2,
                                                        "http://schemas.microsoft.com/windowsazure",
                                                        "SubnetName");
                                                if (subnetNameElement2 != null) {
                                                    String subnetNameInstance2;
                                                    subnetNameInstance2 = subnetNameElement2.getTextContent();
                                                    iPConfigurationInstance2.setSubnetName(subnetNameInstance2);
                                                }

                                                Element staticVirtualNetworkIPAddressElement2 = XmlUtility
                                                        .getElementByTagNameNS(iPConfigurationsElement2,
                                                                "http://schemas.microsoft.com/windowsazure",
                                                                "StaticVirtualNetworkIPAddress");
                                                if (staticVirtualNetworkIPAddressElement2 != null) {
                                                    String staticVirtualNetworkIPAddressInstance2;
                                                    staticVirtualNetworkIPAddressInstance2 = staticVirtualNetworkIPAddressElement2
                                                            .getTextContent();
                                                    iPConfigurationInstance2.setStaticVirtualNetworkIPAddress(
                                                            staticVirtualNetworkIPAddressInstance2);
                                                }
                                            }
                                        }

                                        Element networkSecurityGroupElement = XmlUtility.getElementByTagNameNS(
                                                networkInterfacesElement2,
                                                "http://schemas.microsoft.com/windowsazure",
                                                "NetworkSecurityGroup");
                                        if (networkSecurityGroupElement != null) {
                                            String networkSecurityGroupInstance;
                                            networkSecurityGroupInstance = networkSecurityGroupElement
                                                    .getTextContent();
                                            networkInterfaceInstance2
                                                    .setNetworkSecurityGroup(networkSecurityGroupInstance);
                                        }

                                        Element iPForwardingElement = XmlUtility.getElementByTagNameNS(
                                                networkInterfacesElement2,
                                                "http://schemas.microsoft.com/windowsazure", "IPForwarding");
                                        if (iPForwardingElement != null) {
                                            String iPForwardingInstance;
                                            iPForwardingInstance = iPForwardingElement.getTextContent();
                                            networkInterfaceInstance2.setIPForwarding(iPForwardingInstance);
                                        }
                                    }
                                }

                                Element networkSecurityGroupElement2 = XmlUtility.getElementByTagNameNS(
                                        configurationSetsElement, "http://schemas.microsoft.com/windowsazure",
                                        "NetworkSecurityGroup");
                                if (networkSecurityGroupElement2 != null) {
                                    String networkSecurityGroupInstance2;
                                    networkSecurityGroupInstance2 = networkSecurityGroupElement2
                                            .getTextContent();
                                    configurationSetInstance
                                            .setNetworkSecurityGroup(networkSecurityGroupInstance2);
                                }

                                Element iPForwardingElement2 = XmlUtility.getElementByTagNameNS(
                                        configurationSetsElement, "http://schemas.microsoft.com/windowsazure",
                                        "IPForwarding");
                                if (iPForwardingElement2 != null) {
                                    String iPForwardingInstance2;
                                    iPForwardingInstance2 = iPForwardingElement2.getTextContent();
                                    configurationSetInstance.setIPForwarding(iPForwardingInstance2);
                                }

                                Element computerNameElement = XmlUtility.getElementByTagNameNS(
                                        configurationSetsElement, "http://schemas.microsoft.com/windowsazure",
                                        "ComputerName");
                                if (computerNameElement != null) {
                                    String computerNameInstance;
                                    computerNameInstance = computerNameElement.getTextContent();
                                    configurationSetInstance.setComputerName(computerNameInstance);
                                }

                                Element adminPasswordElement = XmlUtility.getElementByTagNameNS(
                                        configurationSetsElement, "http://schemas.microsoft.com/windowsazure",
                                        "AdminPassword");
                                if (adminPasswordElement != null) {
                                    String adminPasswordInstance;
                                    adminPasswordInstance = adminPasswordElement.getTextContent();
                                    configurationSetInstance.setAdminPassword(adminPasswordInstance);
                                }

                                Element resetPasswordOnFirstLogonElement = XmlUtility.getElementByTagNameNS(
                                        configurationSetsElement, "http://schemas.microsoft.com/windowsazure",
                                        "ResetPasswordOnFirstLogon");
                                if (resetPasswordOnFirstLogonElement != null
                                        && resetPasswordOnFirstLogonElement.getTextContent() != null
                                        && !resetPasswordOnFirstLogonElement.getTextContent().isEmpty()) {
                                    boolean resetPasswordOnFirstLogonInstance;
                                    resetPasswordOnFirstLogonInstance = DatatypeConverter.parseBoolean(
                                            resetPasswordOnFirstLogonElement.getTextContent().toLowerCase());
                                    configurationSetInstance
                                            .setResetPasswordOnFirstLogon(resetPasswordOnFirstLogonInstance);
                                }

                                Element enableAutomaticUpdatesElement = XmlUtility.getElementByTagNameNS(
                                        configurationSetsElement, "http://schemas.microsoft.com/windowsazure",
                                        "EnableAutomaticUpdates");
                                if (enableAutomaticUpdatesElement != null
                                        && enableAutomaticUpdatesElement.getTextContent() != null
                                        && !enableAutomaticUpdatesElement.getTextContent().isEmpty()) {
                                    boolean enableAutomaticUpdatesInstance;
                                    enableAutomaticUpdatesInstance = DatatypeConverter.parseBoolean(
                                            enableAutomaticUpdatesElement.getTextContent().toLowerCase());
                                    configurationSetInstance
                                            .setEnableAutomaticUpdates(enableAutomaticUpdatesInstance);
                                }

                                Element timeZoneElement = XmlUtility.getElementByTagNameNS(
                                        configurationSetsElement, "http://schemas.microsoft.com/windowsazure",
                                        "TimeZone");
                                if (timeZoneElement != null) {
                                    String timeZoneInstance;
                                    timeZoneInstance = timeZoneElement.getTextContent();
                                    configurationSetInstance.setTimeZone(timeZoneInstance);
                                }

                                Element domainJoinElement = XmlUtility.getElementByTagNameNS(
                                        configurationSetsElement, "http://schemas.microsoft.com/windowsazure",
                                        "DomainJoin");
                                if (domainJoinElement != null) {
                                    DomainJoinSettings domainJoinInstance = new DomainJoinSettings();
                                    configurationSetInstance.setDomainJoin(domainJoinInstance);

                                    Element credentialsElement = XmlUtility.getElementByTagNameNS(
                                            domainJoinElement, "http://schemas.microsoft.com/windowsazure",
                                            "Credentials");
                                    if (credentialsElement != null) {
                                        DomainJoinCredentials credentialsInstance = new DomainJoinCredentials();
                                        domainJoinInstance.setCredentials(credentialsInstance);

                                        Element domainElement = XmlUtility.getElementByTagNameNS(
                                                credentialsElement, "http://schemas.microsoft.com/windowsazure",
                                                "Domain");
                                        if (domainElement != null) {
                                            String domainInstance;
                                            domainInstance = domainElement.getTextContent();
                                            credentialsInstance.setDomain(domainInstance);
                                        }

                                        Element usernameElement = XmlUtility.getElementByTagNameNS(
                                                credentialsElement, "http://schemas.microsoft.com/windowsazure",
                                                "Username");
                                        if (usernameElement != null) {
                                            String usernameInstance;
                                            usernameInstance = usernameElement.getTextContent();
                                            credentialsInstance.setUserName(usernameInstance);
                                        }

                                        Element passwordElement = XmlUtility.getElementByTagNameNS(
                                                credentialsElement, "http://schemas.microsoft.com/windowsazure",
                                                "Password");
                                        if (passwordElement != null) {
                                            String passwordInstance;
                                            passwordInstance = passwordElement.getTextContent();
                                            credentialsInstance.setPassword(passwordInstance);
                                        }
                                    }

                                    Element joinDomainElement = XmlUtility.getElementByTagNameNS(
                                            domainJoinElement, "http://schemas.microsoft.com/windowsazure",
                                            "JoinDomain");
                                    if (joinDomainElement != null) {
                                        String joinDomainInstance;
                                        joinDomainInstance = joinDomainElement.getTextContent();
                                        domainJoinInstance.setDomainToJoin(joinDomainInstance);
                                    }

                                    Element machineObjectOUElement = XmlUtility.getElementByTagNameNS(
                                            domainJoinElement, "http://schemas.microsoft.com/windowsazure",
                                            "MachineObjectOU");
                                    if (machineObjectOUElement != null) {
                                        String machineObjectOUInstance;
                                        machineObjectOUInstance = machineObjectOUElement.getTextContent();
                                        domainJoinInstance.setLdapMachineObjectOU(machineObjectOUInstance);
                                    }

                                    Element provisioningElement = XmlUtility.getElementByTagNameNS(
                                            domainJoinElement, "http://schemas.microsoft.com/windowsazure",
                                            "Provisioning");
                                    if (provisioningElement != null) {
                                        DomainJoinProvisioning provisioningInstance = new DomainJoinProvisioning();
                                        domainJoinInstance.setProvisioning(provisioningInstance);

                                        Element accountDataElement = XmlUtility.getElementByTagNameNS(
                                                provisioningElement,
                                                "http://schemas.microsoft.com/windowsazure", "AccountData");
                                        if (accountDataElement != null) {
                                            String accountDataInstance;
                                            accountDataInstance = accountDataElement.getTextContent();
                                            provisioningInstance.setAccountData(accountDataInstance);
                                        }
                                    }
                                }

                                Element storedCertificateSettingsSequenceElement = XmlUtility
                                        .getElementByTagNameNS(configurationSetsElement,
                                                "http://schemas.microsoft.com/windowsazure",
                                                "StoredCertificateSettings");
                                if (storedCertificateSettingsSequenceElement != null) {
                                    for (int i21 = 0; i21 < com.microsoft.windowsazure.core.utils.XmlUtility
                                            .getElementsByTagNameNS(storedCertificateSettingsSequenceElement,
                                                    "http://schemas.microsoft.com/windowsazure",
                                                    "CertificateSetting")
                                            .size(); i21 = i21 + 1) {
                                        org.w3c.dom.Element storedCertificateSettingsElement = ((org.w3c.dom.Element) com.microsoft.windowsazure.core.utils.XmlUtility
                                                .getElementsByTagNameNS(
                                                        storedCertificateSettingsSequenceElement,
                                                        "http://schemas.microsoft.com/windowsazure",
                                                        "CertificateSetting")
                                                .get(i21));
                                        StoredCertificateSettings certificateSettingInstance = new StoredCertificateSettings();
                                        configurationSetInstance.getStoredCertificateSettings()
                                                .add(certificateSettingInstance);

                                        Element storeLocationElement = XmlUtility.getElementByTagNameNS(
                                                storedCertificateSettingsElement,
                                                "http://schemas.microsoft.com/windowsazure", "StoreLocation");
                                        if (storeLocationElement != null) {
                                        }

                                        Element storeNameElement = XmlUtility.getElementByTagNameNS(
                                                storedCertificateSettingsElement,
                                                "http://schemas.microsoft.com/windowsazure", "StoreName");
                                        if (storeNameElement != null) {
                                            String storeNameInstance;
                                            storeNameInstance = storeNameElement.getTextContent();
                                            certificateSettingInstance.setStoreName(storeNameInstance);
                                        }

                                        Element thumbprintElement = XmlUtility.getElementByTagNameNS(
                                                storedCertificateSettingsElement,
                                                "http://schemas.microsoft.com/windowsazure", "Thumbprint");
                                        if (thumbprintElement != null) {
                                            String thumbprintInstance;
                                            thumbprintInstance = thumbprintElement.getTextContent();
                                            certificateSettingInstance.setThumbprint(thumbprintInstance);
                                        }
                                    }
                                }

                                Element winRMElement = XmlUtility.getElementByTagNameNS(
                                        configurationSetsElement, "http://schemas.microsoft.com/windowsazure",
                                        "WinRM");
                                if (winRMElement != null) {
                                    WindowsRemoteManagementSettings winRMInstance = new WindowsRemoteManagementSettings();
                                    configurationSetInstance.setWindowsRemoteManagement(winRMInstance);

                                    Element listenersSequenceElement = XmlUtility.getElementByTagNameNS(
                                            winRMElement, "http://schemas.microsoft.com/windowsazure",
                                            "Listeners");
                                    if (listenersSequenceElement != null) {
                                        for (int i22 = 0; i22 < com.microsoft.windowsazure.core.utils.XmlUtility
                                                .getElementsByTagNameNS(listenersSequenceElement,
                                                        "http://schemas.microsoft.com/windowsazure", "Listener")
                                                .size(); i22 = i22 + 1) {
                                            org.w3c.dom.Element listenersElement = ((org.w3c.dom.Element) com.microsoft.windowsazure.core.utils.XmlUtility
                                                    .getElementsByTagNameNS(listenersSequenceElement,
                                                            "http://schemas.microsoft.com/windowsazure",
                                                            "Listener")
                                                    .get(i22));
                                            WindowsRemoteManagementListener listenerInstance = new WindowsRemoteManagementListener();
                                            winRMInstance.getListeners().add(listenerInstance);

                                            Element protocolElement4 = XmlUtility.getElementByTagNameNS(
                                                    listenersElement,
                                                    "http://schemas.microsoft.com/windowsazure", "Protocol");
                                            if (protocolElement4 != null
                                                    && protocolElement4.getTextContent() != null
                                                    && !protocolElement4.getTextContent().isEmpty()) {
                                                VirtualMachineWindowsRemoteManagementListenerType protocolInstance4;
                                                protocolInstance4 = VirtualMachineWindowsRemoteManagementListenerType
                                                        .valueOf(protocolElement4.getTextContent());
                                                listenerInstance.setListenerType(protocolInstance4);
                                            }

                                            Element certificateThumbprintElement = XmlUtility
                                                    .getElementByTagNameNS(listenersElement,
                                                            "http://schemas.microsoft.com/windowsazure",
                                                            "CertificateThumbprint");
                                            if (certificateThumbprintElement != null) {
                                                String certificateThumbprintInstance;
                                                certificateThumbprintInstance = certificateThumbprintElement
                                                        .getTextContent();
                                                listenerInstance.setCertificateThumbprint(
                                                        certificateThumbprintInstance);
                                            }
                                        }
                                    }
                                }

                                Element adminUsernameElement = XmlUtility.getElementByTagNameNS(
                                        configurationSetsElement, "http://schemas.microsoft.com/windowsazure",
                                        "AdminUsername");
                                if (adminUsernameElement != null) {
                                    String adminUsernameInstance;
                                    adminUsernameInstance = adminUsernameElement.getTextContent();
                                    configurationSetInstance.setAdminUserName(adminUsernameInstance);
                                }

                                Element additionalUnattendContentElement = XmlUtility.getElementByTagNameNS(
                                        configurationSetsElement, "http://schemas.microsoft.com/windowsazure",
                                        "AdditionalUnattendContent");
                                if (additionalUnattendContentElement != null) {
                                    AdditionalUnattendContentSettings additionalUnattendContentInstance = new AdditionalUnattendContentSettings();
                                    configurationSetInstance
                                            .setAdditionalUnattendContent(additionalUnattendContentInstance);

                                    Element passesSequenceElement = XmlUtility.getElementByTagNameNS(
                                            additionalUnattendContentElement,
                                            "http://schemas.microsoft.com/windowsazure", "Passes");
                                    if (passesSequenceElement != null) {
                                        for (int i23 = 0; i23 < com.microsoft.windowsazure.core.utils.XmlUtility
                                                .getElementsByTagNameNS(passesSequenceElement,
                                                        "http://schemas.microsoft.com/windowsazure",
                                                        "UnattendPass")
                                                .size(); i23 = i23 + 1) {
                                            org.w3c.dom.Element passesElement = ((org.w3c.dom.Element) com.microsoft.windowsazure.core.utils.XmlUtility
                                                    .getElementsByTagNameNS(passesSequenceElement,
                                                            "http://schemas.microsoft.com/windowsazure",
                                                            "UnattendPass")
                                                    .get(i23));
                                            UnattendPassSettings unattendPassInstance = new UnattendPassSettings();
                                            additionalUnattendContentInstance.getUnattendPasses()
                                                    .add(unattendPassInstance);

                                            Element passNameElement = XmlUtility.getElementByTagNameNS(
                                                    passesElement, "http://schemas.microsoft.com/windowsazure",
                                                    "PassName");
                                            if (passNameElement != null) {
                                                String passNameInstance;
                                                passNameInstance = passNameElement.getTextContent();
                                                unattendPassInstance.setPassName(passNameInstance);
                                            }

                                            Element componentsSequenceElement = XmlUtility
                                                    .getElementByTagNameNS(passesElement,
                                                            "http://schemas.microsoft.com/windowsazure",
                                                            "Components");
                                            if (componentsSequenceElement != null) {
                                                for (int i24 = 0; i24 < com.microsoft.windowsazure.core.utils.XmlUtility
                                                        .getElementsByTagNameNS(componentsSequenceElement,
                                                                "http://schemas.microsoft.com/windowsazure",
                                                                "UnattendComponent")
                                                        .size(); i24 = i24 + 1) {
                                                    org.w3c.dom.Element componentsElement = ((org.w3c.dom.Element) com.microsoft.windowsazure.core.utils.XmlUtility
                                                            .getElementsByTagNameNS(componentsSequenceElement,
                                                                    "http://schemas.microsoft.com/windowsazure",
                                                                    "UnattendComponent")
                                                            .get(i24));
                                                    UnattendComponent unattendComponentInstance = new UnattendComponent();
                                                    unattendPassInstance.getUnattendComponents()
                                                            .add(unattendComponentInstance);

                                                    Element componentNameElement = XmlUtility
                                                            .getElementByTagNameNS(componentsElement,
                                                                    "http://schemas.microsoft.com/windowsazure",
                                                                    "ComponentName");
                                                    if (componentNameElement != null) {
                                                        String componentNameInstance;
                                                        componentNameInstance = componentNameElement
                                                                .getTextContent();
                                                        unattendComponentInstance
                                                                .setComponentName(componentNameInstance);
                                                    }

                                                    Element componentSettingsSequenceElement = XmlUtility
                                                            .getElementByTagNameNS(componentsElement,
                                                                    "http://schemas.microsoft.com/windowsazure",
                                                                    "ComponentSettings");
                                                    if (componentSettingsSequenceElement != null) {
                                                        for (int i25 = 0; i25 < com.microsoft.windowsazure.core.utils.XmlUtility
                                                                .getElementsByTagNameNS(
                                                                        componentSettingsSequenceElement,
                                                                        "http://schemas.microsoft.com/windowsazure",
                                                                        "ComponentSetting")
                                                                .size(); i25 = i25 + 1) {
                                                            org.w3c.dom.Element componentSettingsElement = ((org.w3c.dom.Element) com.microsoft.windowsazure.core.utils.XmlUtility
                                                                    .getElementsByTagNameNS(
                                                                            componentSettingsSequenceElement,
                                                                            "http://schemas.microsoft.com/windowsazure",
                                                                            "ComponentSetting")
                                                                    .get(i25));
                                                            ComponentSetting componentSettingInstance = new ComponentSetting();
                                                            unattendComponentInstance
                                                                    .getUnattendComponentSettings()
                                                                    .add(componentSettingInstance);

                                                            Element settingNameElement = XmlUtility
                                                                    .getElementByTagNameNS(
                                                                            componentSettingsElement,
                                                                            "http://schemas.microsoft.com/windowsazure",
                                                                            "SettingName");
                                                            if (settingNameElement != null) {
                                                                String settingNameInstance;
                                                                settingNameInstance = settingNameElement
                                                                        .getTextContent();
                                                                componentSettingInstance
                                                                        .setSettingName(settingNameInstance);
                                                            }

                                                            Element contentElement = XmlUtility
                                                                    .getElementByTagNameNS(
                                                                            componentSettingsElement,
                                                                            "http://schemas.microsoft.com/windowsazure",
                                                                            "Content");
                                                            if (contentElement != null) {
                                                                String contentInstance;
                                                                contentInstance = contentElement
                                                                        .getTextContent() != null ? new String(
                                                                                Base64.decode(contentElement
                                                                                        .getTextContent()))
                                                                                : null;
                                                                componentSettingInstance
                                                                        .setContent(contentInstance);
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }

                                Element hostNameElement2 = XmlUtility.getElementByTagNameNS(
                                        configurationSetsElement, "http://schemas.microsoft.com/windowsazure",
                                        "HostName");
                                if (hostNameElement2 != null) {
                                    String hostNameInstance2;
                                    hostNameInstance2 = hostNameElement2.getTextContent();
                                    configurationSetInstance.setHostName(hostNameInstance2);
                                }

                                Element userNameElement = XmlUtility.getElementByTagNameNS(
                                        configurationSetsElement, "http://schemas.microsoft.com/windowsazure",
                                        "UserName");
                                if (userNameElement != null) {
                                    String userNameInstance;
                                    userNameInstance = userNameElement.getTextContent();
                                    configurationSetInstance.setUserName(userNameInstance);
                                }

                                Element userPasswordElement = XmlUtility.getElementByTagNameNS(
                                        configurationSetsElement, "http://schemas.microsoft.com/windowsazure",
                                        "UserPassword");
                                if (userPasswordElement != null) {
                                    String userPasswordInstance;
                                    userPasswordInstance = userPasswordElement.getTextContent();
                                    configurationSetInstance.setUserPassword(userPasswordInstance);
                                }

                                Element disableSshPasswordAuthenticationElement = XmlUtility
                                        .getElementByTagNameNS(configurationSetsElement,
                                                "http://schemas.microsoft.com/windowsazure",
                                                "DisableSshPasswordAuthentication");
                                if (disableSshPasswordAuthenticationElement != null
                                        && disableSshPasswordAuthenticationElement.getTextContent() != null
                                        && !disableSshPasswordAuthenticationElement.getTextContent()
                                                .isEmpty()) {
                                    boolean disableSshPasswordAuthenticationInstance;
                                    disableSshPasswordAuthenticationInstance = DatatypeConverter
                                            .parseBoolean(disableSshPasswordAuthenticationElement
                                                    .getTextContent().toLowerCase());
                                    configurationSetInstance.setDisableSshPasswordAuthentication(
                                            disableSshPasswordAuthenticationInstance);
                                }

                                Element sSHElement = XmlUtility.getElementByTagNameNS(configurationSetsElement,
                                        "http://schemas.microsoft.com/windowsazure", "SSH");
                                if (sSHElement != null) {
                                    SshSettings sSHInstance = new SshSettings();
                                    configurationSetInstance.setSshSettings(sSHInstance);

                                    Element publicKeysSequenceElement = XmlUtility.getElementByTagNameNS(
                                            sSHElement, "http://schemas.microsoft.com/windowsazure",
                                            "PublicKeys");
                                    if (publicKeysSequenceElement != null) {
                                        for (int i26 = 0; i26 < com.microsoft.windowsazure.core.utils.XmlUtility
                                                .getElementsByTagNameNS(publicKeysSequenceElement,
                                                        "http://schemas.microsoft.com/windowsazure",
                                                        "PublicKey")
                                                .size(); i26 = i26 + 1) {
                                            org.w3c.dom.Element publicKeysElement = ((org.w3c.dom.Element) com.microsoft.windowsazure.core.utils.XmlUtility
                                                    .getElementsByTagNameNS(publicKeysSequenceElement,
                                                            "http://schemas.microsoft.com/windowsazure",
                                                            "PublicKey")
                                                    .get(i26));
                                            SshSettingPublicKey publicKeyInstance = new SshSettingPublicKey();
                                            sSHInstance.getPublicKeys().add(publicKeyInstance);

                                            Element fingerprintElement = XmlUtility.getElementByTagNameNS(
                                                    publicKeysElement,
                                                    "http://schemas.microsoft.com/windowsazure", "Fingerprint");
                                            if (fingerprintElement != null) {
                                                String fingerprintInstance;
                                                fingerprintInstance = fingerprintElement.getTextContent();
                                                publicKeyInstance.setFingerprint(fingerprintInstance);
                                            }

                                            Element pathElement2 = XmlUtility.getElementByTagNameNS(
                                                    publicKeysElement,
                                                    "http://schemas.microsoft.com/windowsazure", "Path");
                                            if (pathElement2 != null) {
                                                String pathInstance2;
                                                pathInstance2 = pathElement2.getTextContent();
                                                publicKeyInstance.setPath(pathInstance2);
                                            }
                                        }
                                    }

                                    Element keyPairsSequenceElement = XmlUtility.getElementByTagNameNS(
                                            sSHElement, "http://schemas.microsoft.com/windowsazure",
                                            "KeyPairs");
                                    if (keyPairsSequenceElement != null) {
                                        for (int i27 = 0; i27 < com.microsoft.windowsazure.core.utils.XmlUtility
                                                .getElementsByTagNameNS(keyPairsSequenceElement,
                                                        "http://schemas.microsoft.com/windowsazure", "KeyPair")
                                                .size(); i27 = i27 + 1) {
                                            org.w3c.dom.Element keyPairsElement = ((org.w3c.dom.Element) com.microsoft.windowsazure.core.utils.XmlUtility
                                                    .getElementsByTagNameNS(keyPairsSequenceElement,
                                                            "http://schemas.microsoft.com/windowsazure",
                                                            "KeyPair")
                                                    .get(i27));
                                            SshSettingKeyPair keyPairInstance = new SshSettingKeyPair();
                                            sSHInstance.getKeyPairs().add(keyPairInstance);

                                            Element fingerprintElement2 = XmlUtility.getElementByTagNameNS(
                                                    keyPairsElement,
                                                    "http://schemas.microsoft.com/windowsazure", "Fingerprint");
                                            if (fingerprintElement2 != null) {
                                                String fingerprintInstance2;
                                                fingerprintInstance2 = fingerprintElement2.getTextContent();
                                                keyPairInstance.setFingerprint(fingerprintInstance2);
                                            }

                                            Element pathElement3 = XmlUtility.getElementByTagNameNS(
                                                    keyPairsElement,
                                                    "http://schemas.microsoft.com/windowsazure", "Path");
                                            if (pathElement3 != null) {
                                                String pathInstance3;
                                                pathInstance3 = pathElement3.getTextContent();
                                                keyPairInstance.setPath(pathInstance3);
                                            }
                                        }
                                    }
                                }

                                Element customDataElement = XmlUtility.getElementByTagNameNS(
                                        configurationSetsElement, "http://schemas.microsoft.com/windowsazure",
                                        "CustomData");
                                if (customDataElement != null) {
                                    String customDataInstance;
                                    customDataInstance = customDataElement.getTextContent();
                                    configurationSetInstance.setCustomData(customDataInstance);
                                }
                            }
                        }

                        Element resourceExtensionReferencesSequenceElement = XmlUtility.getElementByTagNameNS(
                                roleListElement, "http://schemas.microsoft.com/windowsazure",
                                "ResourceExtensionReferences");
                        if (resourceExtensionReferencesSequenceElement != null) {
                            for (int i28 = 0; i28 < com.microsoft.windowsazure.core.utils.XmlUtility
                                    .getElementsByTagNameNS(resourceExtensionReferencesSequenceElement,
                                            "http://schemas.microsoft.com/windowsazure",
                                            "ResourceExtensionReference")
                                    .size(); i28 = i28 + 1) {
                                org.w3c.dom.Element resourceExtensionReferencesElement = ((org.w3c.dom.Element) com.microsoft.windowsazure.core.utils.XmlUtility
                                        .getElementsByTagNameNS(resourceExtensionReferencesSequenceElement,
                                                "http://schemas.microsoft.com/windowsazure",
                                                "ResourceExtensionReference")
                                        .get(i28));
                                ResourceExtensionReference resourceExtensionReferenceInstance = new ResourceExtensionReference();
                                roleInstance.getResourceExtensionReferences()
                                        .add(resourceExtensionReferenceInstance);

                                Element referenceNameElement = XmlUtility.getElementByTagNameNS(
                                        resourceExtensionReferencesElement,
                                        "http://schemas.microsoft.com/windowsazure", "ReferenceName");
                                if (referenceNameElement != null) {
                                    String referenceNameInstance;
                                    referenceNameInstance = referenceNameElement.getTextContent();
                                    resourceExtensionReferenceInstance.setReferenceName(referenceNameInstance);
                                }

                                Element publisherElement = XmlUtility.getElementByTagNameNS(
                                        resourceExtensionReferencesElement,
                                        "http://schemas.microsoft.com/windowsazure", "Publisher");
                                if (publisherElement != null) {
                                    String publisherInstance;
                                    publisherInstance = publisherElement.getTextContent();
                                    resourceExtensionReferenceInstance.setPublisher(publisherInstance);
                                }

                                Element nameElement10 = XmlUtility.getElementByTagNameNS(
                                        resourceExtensionReferencesElement,
                                        "http://schemas.microsoft.com/windowsazure", "Name");
                                if (nameElement10 != null) {
                                    String nameInstance10;
                                    nameInstance10 = nameElement10.getTextContent();
                                    resourceExtensionReferenceInstance.setName(nameInstance10);
                                }

                                Element versionElement2 = XmlUtility.getElementByTagNameNS(
                                        resourceExtensionReferencesElement,
                                        "http://schemas.microsoft.com/windowsazure", "Version");
                                if (versionElement2 != null) {
                                    String versionInstance2;
                                    versionInstance2 = versionElement2.getTextContent();
                                    resourceExtensionReferenceInstance.setVersion(versionInstance2);
                                }

                                Element resourceExtensionParameterValuesSequenceElement = XmlUtility
                                        .getElementByTagNameNS(resourceExtensionReferencesElement,
                                                "http://schemas.microsoft.com/windowsazure",
                                                "ResourceExtensionParameterValues");
                                if (resourceExtensionParameterValuesSequenceElement != null) {
                                    for (int i29 = 0; i29 < com.microsoft.windowsazure.core.utils.XmlUtility
                                            .getElementsByTagNameNS(
                                                    resourceExtensionParameterValuesSequenceElement,
                                                    "http://schemas.microsoft.com/windowsazure",
                                                    "ResourceExtensionParameterValue")
                                            .size(); i29 = i29 + 1) {
                                        org.w3c.dom.Element resourceExtensionParameterValuesElement = ((org.w3c.dom.Element) com.microsoft.windowsazure.core.utils.XmlUtility
                                                .getElementsByTagNameNS(
                                                        resourceExtensionParameterValuesSequenceElement,
                                                        "http://schemas.microsoft.com/windowsazure",
                                                        "ResourceExtensionParameterValue")
                                                .get(i29));
                                        ResourceExtensionParameterValue resourceExtensionParameterValueInstance = new ResourceExtensionParameterValue();
                                        resourceExtensionReferenceInstance.getResourceExtensionParameterValues()
                                                .add(resourceExtensionParameterValueInstance);

                                        Element keyElement = XmlUtility.getElementByTagNameNS(
                                                resourceExtensionParameterValuesElement,
                                                "http://schemas.microsoft.com/windowsazure", "Key");
                                        if (keyElement != null) {
                                            String keyInstance;
                                            keyInstance = keyElement.getTextContent();
                                            resourceExtensionParameterValueInstance.setKey(keyInstance);
                                        }

                                        Element valueElement = XmlUtility.getElementByTagNameNS(
                                                resourceExtensionParameterValuesElement,
                                                "http://schemas.microsoft.com/windowsazure", "Value");
                                        if (valueElement != null) {
                                            String valueInstance;
                                            valueInstance = valueElement.getTextContent() != null
                                                    ? new String(Base64.decode(valueElement.getTextContent()))
                                                    : null;
                                            resourceExtensionParameterValueInstance.setValue(valueInstance);
                                        }

                                        Element typeElement = XmlUtility.getElementByTagNameNS(
                                                resourceExtensionParameterValuesElement,
                                                "http://schemas.microsoft.com/windowsazure", "Type");
                                        if (typeElement != null) {
                                            String typeInstance;
                                            typeInstance = typeElement.getTextContent();
                                            resourceExtensionParameterValueInstance.setType(typeInstance);
                                        }
                                    }
                                }

                                Element stateElement = XmlUtility.getElementByTagNameNS(
                                        resourceExtensionReferencesElement,
                                        "http://schemas.microsoft.com/windowsazure", "State");
                                if (stateElement != null) {
                                    String stateInstance;
                                    stateInstance = stateElement.getTextContent();
                                    resourceExtensionReferenceInstance.setState(stateInstance);
                                }

                                Element forceUpdateElement = XmlUtility.getElementByTagNameNS(
                                        resourceExtensionReferencesElement,
                                        "http://schemas.microsoft.com/windowsazure", "ForceUpdate");
                                if (forceUpdateElement != null && forceUpdateElement.getTextContent() != null
                                        && !forceUpdateElement.getTextContent().isEmpty()) {
                                    boolean forceUpdateInstance;
                                    forceUpdateInstance = DatatypeConverter
                                            .parseBoolean(forceUpdateElement.getTextContent().toLowerCase());
                                    resourceExtensionReferenceInstance.setForceUpdate(forceUpdateInstance);
                                }
                            }
                        }

                        Element vMImageNameElement = XmlUtility.getElementByTagNameNS(roleListElement,
                                "http://schemas.microsoft.com/windowsazure", "VMImageName");
                        if (vMImageNameElement != null) {
                            String vMImageNameInstance;
                            vMImageNameInstance = vMImageNameElement.getTextContent();
                            roleInstance.setVMImageName(vMImageNameInstance);
                        }

                        Element mediaLocationElement = XmlUtility.getElementByTagNameNS(roleListElement,
                                "http://schemas.microsoft.com/windowsazure", "MediaLocation");
                        if (mediaLocationElement != null) {
                            URI mediaLocationInstance;
                            mediaLocationInstance = new URI(mediaLocationElement.getTextContent());
                            roleInstance.setMediaLocation(mediaLocationInstance);
                        }

                        Element availabilitySetNameElement = XmlUtility.getElementByTagNameNS(roleListElement,
                                "http://schemas.microsoft.com/windowsazure", "AvailabilitySetName");
                        if (availabilitySetNameElement != null) {
                            String availabilitySetNameInstance;
                            availabilitySetNameInstance = availabilitySetNameElement.getTextContent();
                            roleInstance.setAvailabilitySetName(availabilitySetNameInstance);
                        }

                        Element dataVirtualHardDisksSequenceElement = XmlUtility.getElementByTagNameNS(
                                roleListElement, "http://schemas.microsoft.com/windowsazure",
                                "DataVirtualHardDisks");
                        if (dataVirtualHardDisksSequenceElement != null) {
                            for (int i30 = 0; i30 < com.microsoft.windowsazure.core.utils.XmlUtility
                                    .getElementsByTagNameNS(dataVirtualHardDisksSequenceElement,
                                            "http://schemas.microsoft.com/windowsazure", "DataVirtualHardDisk")
                                    .size(); i30 = i30 + 1) {
                                org.w3c.dom.Element dataVirtualHardDisksElement = ((org.w3c.dom.Element) com.microsoft.windowsazure.core.utils.XmlUtility
                                        .getElementsByTagNameNS(dataVirtualHardDisksSequenceElement,
                                                "http://schemas.microsoft.com/windowsazure",
                                                "DataVirtualHardDisk")
                                        .get(i30));
                                DataVirtualHardDisk dataVirtualHardDiskInstance = new DataVirtualHardDisk();
                                roleInstance.getDataVirtualHardDisks().add(dataVirtualHardDiskInstance);

                                Element hostCachingElement = XmlUtility.getElementByTagNameNS(
                                        dataVirtualHardDisksElement,
                                        "http://schemas.microsoft.com/windowsazure", "HostCaching");
                                if (hostCachingElement != null) {
                                    String hostCachingInstance;
                                    hostCachingInstance = hostCachingElement.getTextContent();
                                    dataVirtualHardDiskInstance.setHostCaching(hostCachingInstance);
                                }

                                Element diskLabelElement = XmlUtility.getElementByTagNameNS(
                                        dataVirtualHardDisksElement,
                                        "http://schemas.microsoft.com/windowsazure", "DiskLabel");
                                if (diskLabelElement != null) {
                                    String diskLabelInstance;
                                    diskLabelInstance = diskLabelElement.getTextContent();
                                    dataVirtualHardDiskInstance.setLabel(diskLabelInstance);
                                }

                                Element diskNameElement = XmlUtility.getElementByTagNameNS(
                                        dataVirtualHardDisksElement,
                                        "http://schemas.microsoft.com/windowsazure", "DiskName");
                                if (diskNameElement != null) {
                                    String diskNameInstance;
                                    diskNameInstance = diskNameElement.getTextContent();
                                    dataVirtualHardDiskInstance.setName(diskNameInstance);
                                }

                                Element lunElement = XmlUtility.getElementByTagNameNS(
                                        dataVirtualHardDisksElement,
                                        "http://schemas.microsoft.com/windowsazure", "Lun");
                                if (lunElement != null && lunElement.getTextContent() != null
                                        && !lunElement.getTextContent().isEmpty()) {
                                    int lunInstance;
                                    lunInstance = DatatypeConverter.parseInt(lunElement.getTextContent());
                                    dataVirtualHardDiskInstance.setLogicalUnitNumber(lunInstance);
                                }

                                Element logicalDiskSizeInGBElement = XmlUtility.getElementByTagNameNS(
                                        dataVirtualHardDisksElement,
                                        "http://schemas.microsoft.com/windowsazure", "LogicalDiskSizeInGB");
                                if (logicalDiskSizeInGBElement != null
                                        && logicalDiskSizeInGBElement.getTextContent() != null
                                        && !logicalDiskSizeInGBElement.getTextContent().isEmpty()) {
                                    int logicalDiskSizeInGBInstance;
                                    logicalDiskSizeInGBInstance = DatatypeConverter
                                            .parseInt(logicalDiskSizeInGBElement.getTextContent());
                                    dataVirtualHardDiskInstance
                                            .setLogicalDiskSizeInGB(logicalDiskSizeInGBInstance);
                                }

                                Element mediaLinkElement = XmlUtility.getElementByTagNameNS(
                                        dataVirtualHardDisksElement,
                                        "http://schemas.microsoft.com/windowsazure", "MediaLink");
                                if (mediaLinkElement != null) {
                                    URI mediaLinkInstance;
                                    mediaLinkInstance = new URI(mediaLinkElement.getTextContent());
                                    dataVirtualHardDiskInstance.setMediaLink(mediaLinkInstance);
                                }

                                Element sourceMediaLinkElement = XmlUtility.getElementByTagNameNS(
                                        dataVirtualHardDisksElement,
                                        "http://schemas.microsoft.com/windowsazure", "SourceMediaLink");
                                if (sourceMediaLinkElement != null) {
                                    URI sourceMediaLinkInstance;
                                    sourceMediaLinkInstance = new URI(sourceMediaLinkElement.getTextContent());
                                    dataVirtualHardDiskInstance.setSourceMediaLink(sourceMediaLinkInstance);
                                }

                                Element iOTypeElement = XmlUtility.getElementByTagNameNS(
                                        dataVirtualHardDisksElement,
                                        "http://schemas.microsoft.com/windowsazure", "IOType");
                                if (iOTypeElement != null) {
                                    String iOTypeInstance;
                                    iOTypeInstance = iOTypeElement.getTextContent();
                                    dataVirtualHardDiskInstance.setIOType(iOTypeInstance);
                                }
                            }
                        }

                        Element labelElement2 = XmlUtility.getElementByTagNameNS(roleListElement,
                                "http://schemas.microsoft.com/windowsazure", "Label");
                        if (labelElement2 != null) {
                            String labelInstance2;
                            labelInstance2 = labelElement2.getTextContent();
                            roleInstance.setLabel(labelInstance2);
                        }

                        Element oSVirtualHardDiskElement = XmlUtility.getElementByTagNameNS(roleListElement,
                                "http://schemas.microsoft.com/windowsazure", "OSVirtualHardDisk");
                        if (oSVirtualHardDiskElement != null) {
                            OSVirtualHardDisk oSVirtualHardDiskInstance = new OSVirtualHardDisk();
                            roleInstance.setOSVirtualHardDisk(oSVirtualHardDiskInstance);

                            Element hostCachingElement2 = XmlUtility.getElementByTagNameNS(
                                    oSVirtualHardDiskElement, "http://schemas.microsoft.com/windowsazure",
                                    "HostCaching");
                            if (hostCachingElement2 != null) {
                                String hostCachingInstance2;
                                hostCachingInstance2 = hostCachingElement2.getTextContent();
                                oSVirtualHardDiskInstance.setHostCaching(hostCachingInstance2);
                            }

                            Element diskLabelElement2 = XmlUtility.getElementByTagNameNS(
                                    oSVirtualHardDiskElement, "http://schemas.microsoft.com/windowsazure",
                                    "DiskLabel");
                            if (diskLabelElement2 != null) {
                                String diskLabelInstance2;
                                diskLabelInstance2 = diskLabelElement2.getTextContent();
                                oSVirtualHardDiskInstance.setLabel(diskLabelInstance2);
                            }

                            Element diskNameElement2 = XmlUtility.getElementByTagNameNS(
                                    oSVirtualHardDiskElement, "http://schemas.microsoft.com/windowsazure",
                                    "DiskName");
                            if (diskNameElement2 != null) {
                                String diskNameInstance2;
                                diskNameInstance2 = diskNameElement2.getTextContent();
                                oSVirtualHardDiskInstance.setName(diskNameInstance2);
                            }

                            Element mediaLinkElement2 = XmlUtility.getElementByTagNameNS(
                                    oSVirtualHardDiskElement, "http://schemas.microsoft.com/windowsazure",
                                    "MediaLink");
                            if (mediaLinkElement2 != null) {
                                URI mediaLinkInstance2;
                                mediaLinkInstance2 = new URI(mediaLinkElement2.getTextContent());
                                oSVirtualHardDiskInstance.setMediaLink(mediaLinkInstance2);
                            }

                            Element sourceImageNameElement = XmlUtility.getElementByTagNameNS(
                                    oSVirtualHardDiskElement, "http://schemas.microsoft.com/windowsazure",
                                    "SourceImageName");
                            if (sourceImageNameElement != null) {
                                String sourceImageNameInstance;
                                sourceImageNameInstance = sourceImageNameElement.getTextContent();
                                oSVirtualHardDiskInstance.setSourceImageName(sourceImageNameInstance);
                            }

                            Element osElement = XmlUtility.getElementByTagNameNS(oSVirtualHardDiskElement,
                                    "http://schemas.microsoft.com/windowsazure", "OS");
                            if (osElement != null) {
                                String osInstance;
                                osInstance = osElement.getTextContent();
                                oSVirtualHardDiskInstance.setOperatingSystem(osInstance);
                            }

                            Element remoteSourceImageLinkElement = XmlUtility.getElementByTagNameNS(
                                    oSVirtualHardDiskElement, "http://schemas.microsoft.com/windowsazure",
                                    "RemoteSourceImageLink");
                            if (remoteSourceImageLinkElement != null) {
                                URI remoteSourceImageLinkInstance;
                                remoteSourceImageLinkInstance = new URI(
                                        remoteSourceImageLinkElement.getTextContent());
                                oSVirtualHardDiskInstance
                                        .setRemoteSourceImageLink(remoteSourceImageLinkInstance);
                            }

                            Element iOTypeElement2 = XmlUtility.getElementByTagNameNS(oSVirtualHardDiskElement,
                                    "http://schemas.microsoft.com/windowsazure", "IOType");
                            if (iOTypeElement2 != null) {
                                String iOTypeInstance2;
                                iOTypeInstance2 = iOTypeElement2.getTextContent();
                                oSVirtualHardDiskInstance.setIOType(iOTypeInstance2);
                            }

                            Element resizedSizeInGBElement = XmlUtility.getElementByTagNameNS(
                                    oSVirtualHardDiskElement, "http://schemas.microsoft.com/windowsazure",
                                    "ResizedSizeInGB");
                            if (resizedSizeInGBElement != null
                                    && resizedSizeInGBElement.getTextContent() != null
                                    && !resizedSizeInGBElement.getTextContent().isEmpty()) {
                                int resizedSizeInGBInstance;
                                resizedSizeInGBInstance = DatatypeConverter
                                        .parseInt(resizedSizeInGBElement.getTextContent());
                                oSVirtualHardDiskInstance.setResizedSizeInGB(resizedSizeInGBInstance);
                            }
                        }

                        Element roleSizeElement = XmlUtility.getElementByTagNameNS(roleListElement,
                                "http://schemas.microsoft.com/windowsazure", "RoleSize");
                        if (roleSizeElement != null) {
                            String roleSizeInstance;
                            roleSizeInstance = roleSizeElement.getTextContent();
                            roleInstance.setRoleSize(roleSizeInstance);
                        }

                        Element defaultWinRmCertificateThumbprintElement = XmlUtility.getElementByTagNameNS(
                                roleListElement, "http://schemas.microsoft.com/windowsazure",
                                "DefaultWinRmCertificateThumbprint");
                        if (defaultWinRmCertificateThumbprintElement != null) {
                            String defaultWinRmCertificateThumbprintInstance;
                            defaultWinRmCertificateThumbprintInstance = defaultWinRmCertificateThumbprintElement
                                    .getTextContent();
                            roleInstance.setDefaultWinRmCertificateThumbprint(
                                    defaultWinRmCertificateThumbprintInstance);
                        }

                        Element provisionGuestAgentElement = XmlUtility.getElementByTagNameNS(roleListElement,
                                "http://schemas.microsoft.com/windowsazure", "ProvisionGuestAgent");
                        if (provisionGuestAgentElement != null
                                && provisionGuestAgentElement.getTextContent() != null
                                && !provisionGuestAgentElement.getTextContent().isEmpty()) {
                            boolean provisionGuestAgentInstance;
                            provisionGuestAgentInstance = DatatypeConverter
                                    .parseBoolean(provisionGuestAgentElement.getTextContent().toLowerCase());
                            roleInstance.setProvisionGuestAgent(provisionGuestAgentInstance);
                        }

                        Element vMImageInputElement = XmlUtility.getElementByTagNameNS(roleListElement,
                                "http://schemas.microsoft.com/windowsazure", "VMImageInput");
                        if (vMImageInputElement != null) {
                            VMImageInput vMImageInputInstance = new VMImageInput();
                            roleInstance.setVMImageInput(vMImageInputInstance);

                            Element oSDiskConfigurationElement = XmlUtility.getElementByTagNameNS(
                                    vMImageInputElement, "http://schemas.microsoft.com/windowsazure",
                                    "OSDiskConfiguration");
                            if (oSDiskConfigurationElement != null) {
                                OSDiskConfiguration oSDiskConfigurationInstance = new OSDiskConfiguration();
                                vMImageInputInstance.setOSDiskConfiguration(oSDiskConfigurationInstance);

                                Element resizedSizeInGBElement2 = XmlUtility.getElementByTagNameNS(
                                        oSDiskConfigurationElement, "http://schemas.microsoft.com/windowsazure",
                                        "ResizedSizeInGB");
                                if (resizedSizeInGBElement2 != null
                                        && resizedSizeInGBElement2.getTextContent() != null
                                        && !resizedSizeInGBElement2.getTextContent().isEmpty()) {
                                    int resizedSizeInGBInstance2;
                                    resizedSizeInGBInstance2 = DatatypeConverter
                                            .parseInt(resizedSizeInGBElement2.getTextContent());
                                    oSDiskConfigurationInstance.setResizedSizeInGB(resizedSizeInGBInstance2);
                                }
                            }

                            Element dataDiskConfigurationsSequenceElement = XmlUtility.getElementByTagNameNS(
                                    vMImageInputElement, "http://schemas.microsoft.com/windowsazure",
                                    "DataDiskConfigurations");
                            if (dataDiskConfigurationsSequenceElement != null) {
                                for (int i31 = 0; i31 < com.microsoft.windowsazure.core.utils.XmlUtility
                                        .getElementsByTagNameNS(dataDiskConfigurationsSequenceElement,
                                                "http://schemas.microsoft.com/windowsazure",
                                                "DataDiskConfiguration")
                                        .size(); i31 = i31 + 1) {
                                    org.w3c.dom.Element dataDiskConfigurationsElement = ((org.w3c.dom.Element) com.microsoft.windowsazure.core.utils.XmlUtility
                                            .getElementsByTagNameNS(dataDiskConfigurationsSequenceElement,
                                                    "http://schemas.microsoft.com/windowsazure",
                                                    "DataDiskConfiguration")
                                            .get(i31));
                                    DataDiskConfiguration dataDiskConfigurationInstance = new DataDiskConfiguration();
                                    vMImageInputInstance.getDataDiskConfigurations()
                                            .add(dataDiskConfigurationInstance);

                                    Element nameElement11 = XmlUtility.getElementByTagNameNS(
                                            dataDiskConfigurationsElement,
                                            "http://schemas.microsoft.com/windowsazure", "Name");
                                    if (nameElement11 != null) {
                                        String nameInstance11;
                                        nameInstance11 = nameElement11.getTextContent();
                                        dataDiskConfigurationInstance.setDiskName(nameInstance11);
                                    }

                                    Element resizedSizeInGBElement3 = XmlUtility.getElementByTagNameNS(
                                            dataDiskConfigurationsElement,
                                            "http://schemas.microsoft.com/windowsazure", "ResizedSizeInGB");
                                    if (resizedSizeInGBElement3 != null
                                            && resizedSizeInGBElement3.getTextContent() != null
                                            && !resizedSizeInGBElement3.getTextContent().isEmpty()) {
                                        int resizedSizeInGBInstance3;
                                        resizedSizeInGBInstance3 = DatatypeConverter
                                                .parseInt(resizedSizeInGBElement3.getTextContent());
                                        dataDiskConfigurationInstance
                                                .setResizedSizeInGB(resizedSizeInGBInstance3);
                                    }
                                }
                            }
                        }
                    }
                }

                Element sdkVersionElement = XmlUtility.getElementByTagNameNS(deploymentElement,
                        "http://schemas.microsoft.com/windowsazure", "SdkVersion");
                if (sdkVersionElement != null) {
                    String sdkVersionInstance;
                    sdkVersionInstance = sdkVersionElement.getTextContent();
                    result.setSdkVersion(sdkVersionInstance);
                }

                Element lockedElement = XmlUtility.getElementByTagNameNS(deploymentElement,
                        "http://schemas.microsoft.com/windowsazure", "Locked");
                if (lockedElement != null && lockedElement.getTextContent() != null
                        && !lockedElement.getTextContent().isEmpty()) {
                    boolean lockedInstance;
                    lockedInstance = DatatypeConverter
                            .parseBoolean(lockedElement.getTextContent().toLowerCase());
                    result.setLocked(lockedInstance);
                }

                Element rollbackAllowedElement = XmlUtility.getElementByTagNameNS(deploymentElement,
                        "http://schemas.microsoft.com/windowsazure", "RollbackAllowed");
                if (rollbackAllowedElement != null && rollbackAllowedElement.getTextContent() != null
                        && !rollbackAllowedElement.getTextContent().isEmpty()) {
                    boolean rollbackAllowedInstance;
                    rollbackAllowedInstance = DatatypeConverter
                            .parseBoolean(rollbackAllowedElement.getTextContent().toLowerCase());
                    result.setRollbackAllowed(rollbackAllowedInstance);
                }

                Element virtualNetworkNameElement = XmlUtility.getElementByTagNameNS(deploymentElement,
                        "http://schemas.microsoft.com/windowsazure", "VirtualNetworkName");
                if (virtualNetworkNameElement != null) {
                    String virtualNetworkNameInstance;
                    virtualNetworkNameInstance = virtualNetworkNameElement.getTextContent();
                    result.setVirtualNetworkName(virtualNetworkNameInstance);
                }

                Element createdTimeElement = XmlUtility.getElementByTagNameNS(deploymentElement,
                        "http://schemas.microsoft.com/windowsazure", "CreatedTime");
                if (createdTimeElement != null) {
                    Calendar createdTimeInstance;
                    createdTimeInstance = DatatypeConverter.parseDateTime(createdTimeElement.getTextContent());
                    result.setCreatedTime(createdTimeInstance);
                }

                Element lastModifiedTimeElement = XmlUtility.getElementByTagNameNS(deploymentElement,
                        "http://schemas.microsoft.com/windowsazure", "LastModifiedTime");
                if (lastModifiedTimeElement != null) {
                    Calendar lastModifiedTimeInstance;
                    lastModifiedTimeInstance = DatatypeConverter
                            .parseDateTime(lastModifiedTimeElement.getTextContent());
                    result.setLastModifiedTime(lastModifiedTimeInstance);
                }

                Element extendedPropertiesSequenceElement = XmlUtility.getElementByTagNameNS(deploymentElement,
                        "http://schemas.microsoft.com/windowsazure", "ExtendedProperties");
                if (extendedPropertiesSequenceElement != null) {
                    for (int i32 = 0; i32 < com.microsoft.windowsazure.core.utils.XmlUtility
                            .getElementsByTagNameNS(extendedPropertiesSequenceElement,
                                    "http://schemas.microsoft.com/windowsazure", "ExtendedProperty")
                            .size(); i32 = i32 + 1) {
                        org.w3c.dom.Element extendedPropertiesElement = ((org.w3c.dom.Element) com.microsoft.windowsazure.core.utils.XmlUtility
                                .getElementsByTagNameNS(extendedPropertiesSequenceElement,
                                        "http://schemas.microsoft.com/windowsazure", "ExtendedProperty")
                                .get(i32));
                        String extendedPropertiesKey = XmlUtility
                                .getElementByTagNameNS(extendedPropertiesElement,
                                        "http://schemas.microsoft.com/windowsazure", "Name")
                                .getTextContent();
                        String extendedPropertiesValue = XmlUtility
                                .getElementByTagNameNS(extendedPropertiesElement,
                                        "http://schemas.microsoft.com/windowsazure", "Value")
                                .getTextContent();
                        result.getExtendedProperties().put(extendedPropertiesKey, extendedPropertiesValue);
                    }
                }

                Element dnsElement = XmlUtility.getElementByTagNameNS(deploymentElement,
                        "http://schemas.microsoft.com/windowsazure", "Dns");
                if (dnsElement != null) {
                    DnsSettings dnsInstance = new DnsSettings();
                    result.setDnsSettings(dnsInstance);

                    Element dnsServersSequenceElement = XmlUtility.getElementByTagNameNS(dnsElement,
                            "http://schemas.microsoft.com/windowsazure", "DnsServers");
                    if (dnsServersSequenceElement != null) {
                        for (int i33 = 0; i33 < com.microsoft.windowsazure.core.utils.XmlUtility
                                .getElementsByTagNameNS(dnsServersSequenceElement,
                                        "http://schemas.microsoft.com/windowsazure", "DnsServer")
                                .size(); i33 = i33 + 1) {
                            org.w3c.dom.Element dnsServersElement = ((org.w3c.dom.Element) com.microsoft.windowsazure.core.utils.XmlUtility
                                    .getElementsByTagNameNS(dnsServersSequenceElement,
                                            "http://schemas.microsoft.com/windowsazure", "DnsServer")
                                    .get(i33));
                            DnsServer dnsServerInstance = new DnsServer();
                            dnsInstance.getDnsServers().add(dnsServerInstance);

                            Element nameElement12 = XmlUtility.getElementByTagNameNS(dnsServersElement,
                                    "http://schemas.microsoft.com/windowsazure", "Name");
                            if (nameElement12 != null) {
                                String nameInstance12;
                                nameInstance12 = nameElement12.getTextContent();
                                dnsServerInstance.setName(nameInstance12);
                            }

                            Element addressElement3 = XmlUtility.getElementByTagNameNS(dnsServersElement,
                                    "http://schemas.microsoft.com/windowsazure", "Address");
                            if (addressElement3 != null) {
                                InetAddress addressInstance3;
                                addressInstance3 = InetAddress.getByName(addressElement3.getTextContent());
                                dnsServerInstance.setAddress(addressInstance3);
                            }
                        }
                    }
                }

                Element persistentVMDowntimeElement = XmlUtility.getElementByTagNameNS(deploymentElement,
                        "http://schemas.microsoft.com/windowsazure", "PersistentVMDowntime");
                if (persistentVMDowntimeElement != null) {
                    PersistentVMDowntime persistentVMDowntimeInstance = new PersistentVMDowntime();
                    result.setPersistentVMDowntime(persistentVMDowntimeInstance);

                    Element startTimeElement = XmlUtility.getElementByTagNameNS(persistentVMDowntimeElement,
                            "http://schemas.microsoft.com/windowsazure", "StartTime");
                    if (startTimeElement != null) {
                        Calendar startTimeInstance;
                        startTimeInstance = DatatypeConverter.parseDateTime(startTimeElement.getTextContent());
                        persistentVMDowntimeInstance.setStartTime(startTimeInstance);
                    }

                    Element endTimeElement = XmlUtility.getElementByTagNameNS(persistentVMDowntimeElement,
                            "http://schemas.microsoft.com/windowsazure", "EndTime");
                    if (endTimeElement != null) {
                        Calendar endTimeInstance;
                        endTimeInstance = DatatypeConverter.parseDateTime(endTimeElement.getTextContent());
                        persistentVMDowntimeInstance.setEndTime(endTimeInstance);
                    }

                    Element statusElement6 = XmlUtility.getElementByTagNameNS(persistentVMDowntimeElement,
                            "http://schemas.microsoft.com/windowsazure", "Status");
                    if (statusElement6 != null) {
                        String statusInstance6;
                        statusInstance6 = statusElement6.getTextContent();
                        persistentVMDowntimeInstance.setStatus(statusInstance6);
                    }
                }

                Element virtualIPsSequenceElement = XmlUtility.getElementByTagNameNS(deploymentElement,
                        "http://schemas.microsoft.com/windowsazure", "VirtualIPs");
                if (virtualIPsSequenceElement != null) {
                    for (int i34 = 0; i34 < com.microsoft.windowsazure.core.utils.XmlUtility
                            .getElementsByTagNameNS(virtualIPsSequenceElement,
                                    "http://schemas.microsoft.com/windowsazure", "VirtualIP")
                            .size(); i34 = i34 + 1) {
                        org.w3c.dom.Element virtualIPsElement = ((org.w3c.dom.Element) com.microsoft.windowsazure.core.utils.XmlUtility
                                .getElementsByTagNameNS(virtualIPsSequenceElement,
                                        "http://schemas.microsoft.com/windowsazure", "VirtualIP")
                                .get(i34));
                        VirtualIPAddress virtualIPInstance = new VirtualIPAddress();
                        result.getVirtualIPAddresses().add(virtualIPInstance);

                        Element addressElement4 = XmlUtility.getElementByTagNameNS(virtualIPsElement,
                                "http://schemas.microsoft.com/windowsazure", "Address");
                        if (addressElement4 != null) {
                            InetAddress addressInstance4;
                            addressInstance4 = InetAddress.getByName(addressElement4.getTextContent());
                            virtualIPInstance.setAddress(addressInstance4);
                        }

                        Element isDnsProgrammedElement = XmlUtility.getElementByTagNameNS(virtualIPsElement,
                                "http://schemas.microsoft.com/windowsazure", "IsDnsProgrammed");
                        if (isDnsProgrammedElement != null && isDnsProgrammedElement.getTextContent() != null
                                && !isDnsProgrammedElement.getTextContent().isEmpty()) {
                            boolean isDnsProgrammedInstance;
                            isDnsProgrammedInstance = DatatypeConverter
                                    .parseBoolean(isDnsProgrammedElement.getTextContent().toLowerCase());
                            virtualIPInstance.setIsDnsProgrammed(isDnsProgrammedInstance);
                        }

                        Element nameElement13 = XmlUtility.getElementByTagNameNS(virtualIPsElement,
                                "http://schemas.microsoft.com/windowsazure", "Name");
                        if (nameElement13 != null) {
                            String nameInstance13;
                            nameInstance13 = nameElement13.getTextContent();
                            virtualIPInstance.setName(nameInstance13);
                        }

                        Element reservedIPNameElement = XmlUtility.getElementByTagNameNS(virtualIPsElement,
                                "http://schemas.microsoft.com/windowsazure", "ReservedIPName");
                        if (reservedIPNameElement != null) {
                            String reservedIPNameInstance;
                            reservedIPNameInstance = reservedIPNameElement.getTextContent();
                            virtualIPInstance.setReservedIPName(reservedIPNameInstance);
                        }
                    }
                }

                Element extensionConfigurationElement = XmlUtility.getElementByTagNameNS(deploymentElement,
                        "http://schemas.microsoft.com/windowsazure", "ExtensionConfiguration");
                if (extensionConfigurationElement != null) {
                    ExtensionConfiguration extensionConfigurationInstance = new ExtensionConfiguration();
                    result.setExtensionConfiguration(extensionConfigurationInstance);

                    Element allRolesSequenceElement = XmlUtility.getElementByTagNameNS(
                            extensionConfigurationElement, "http://schemas.microsoft.com/windowsazure",
                            "AllRoles");
                    if (allRolesSequenceElement != null) {
                        for (int i35 = 0; i35 < com.microsoft.windowsazure.core.utils.XmlUtility
                                .getElementsByTagNameNS(allRolesSequenceElement,
                                        "http://schemas.microsoft.com/windowsazure", "Extension")
                                .size(); i35 = i35 + 1) {
                            org.w3c.dom.Element allRolesElement = ((org.w3c.dom.Element) com.microsoft.windowsazure.core.utils.XmlUtility
                                    .getElementsByTagNameNS(allRolesSequenceElement,
                                            "http://schemas.microsoft.com/windowsazure", "Extension")
                                    .get(i35));
                            ExtensionConfiguration.Extension extensionInstance = new ExtensionConfiguration.Extension();
                            extensionConfigurationInstance.getAllRoles().add(extensionInstance);

                            Element idElement = XmlUtility.getElementByTagNameNS(allRolesElement,
                                    "http://schemas.microsoft.com/windowsazure", "Id");
                            if (idElement != null) {
                                String idInstance;
                                idInstance = idElement.getTextContent();
                                extensionInstance.setId(idInstance);
                            }
                        }
                    }

                    Element namedRolesSequenceElement = XmlUtility.getElementByTagNameNS(
                            extensionConfigurationElement, "http://schemas.microsoft.com/windowsazure",
                            "NamedRoles");
                    if (namedRolesSequenceElement != null) {
                        for (int i36 = 0; i36 < com.microsoft.windowsazure.core.utils.XmlUtility
                                .getElementsByTagNameNS(namedRolesSequenceElement,
                                        "http://schemas.microsoft.com/windowsazure", "Role")
                                .size(); i36 = i36 + 1) {
                            org.w3c.dom.Element namedRolesElement = ((org.w3c.dom.Element) com.microsoft.windowsazure.core.utils.XmlUtility
                                    .getElementsByTagNameNS(namedRolesSequenceElement,
                                            "http://schemas.microsoft.com/windowsazure", "Role")
                                    .get(i36));
                            ExtensionConfiguration.NamedRole roleInstance2 = new ExtensionConfiguration.NamedRole();
                            extensionConfigurationInstance.getNamedRoles().add(roleInstance2);

                            Element roleNameElement3 = XmlUtility.getElementByTagNameNS(namedRolesElement,
                                    "http://schemas.microsoft.com/windowsazure", "RoleName");
                            if (roleNameElement3 != null) {
                                String roleNameInstance3;
                                roleNameInstance3 = roleNameElement3.getTextContent();
                                roleInstance2.setRoleName(roleNameInstance3);
                            }

                            Element extensionsSequenceElement = XmlUtility.getElementByTagNameNS(
                                    namedRolesElement, "http://schemas.microsoft.com/windowsazure",
                                    "Extensions");
                            if (extensionsSequenceElement != null) {
                                for (int i37 = 0; i37 < com.microsoft.windowsazure.core.utils.XmlUtility
                                        .getElementsByTagNameNS(extensionsSequenceElement,
                                                "http://schemas.microsoft.com/windowsazure", "Extension")
                                        .size(); i37 = i37 + 1) {
                                    org.w3c.dom.Element extensionsElement = ((org.w3c.dom.Element) com.microsoft.windowsazure.core.utils.XmlUtility
                                            .getElementsByTagNameNS(extensionsSequenceElement,
                                                    "http://schemas.microsoft.com/windowsazure", "Extension")
                                            .get(i37));
                                    ExtensionConfiguration.Extension extensionInstance2 = new ExtensionConfiguration.Extension();
                                    roleInstance2.getExtensions().add(extensionInstance2);

                                    Element idElement2 = XmlUtility.getElementByTagNameNS(extensionsElement,
                                            "http://schemas.microsoft.com/windowsazure", "Id");
                                    if (idElement2 != null) {
                                        String idInstance2;
                                        idInstance2 = idElement2.getTextContent();
                                        extensionInstance2.setId(idInstance2);
                                    }
                                }
                            }
                        }
                    }
                }

                Element reservedIPNameElement2 = XmlUtility.getElementByTagNameNS(deploymentElement,
                        "http://schemas.microsoft.com/windowsazure", "ReservedIPName");
                if (reservedIPNameElement2 != null) {
                    String reservedIPNameInstance2;
                    reservedIPNameInstance2 = reservedIPNameElement2.getTextContent();
                    result.setReservedIPName(reservedIPNameInstance2);
                }

                Element loadBalancersSequenceElement = XmlUtility.getElementByTagNameNS(deploymentElement,
                        "http://schemas.microsoft.com/windowsazure", "LoadBalancers");
                if (loadBalancersSequenceElement != null) {
                    for (int i38 = 0; i38 < com.microsoft.windowsazure.core.utils.XmlUtility
                            .getElementsByTagNameNS(loadBalancersSequenceElement,
                                    "http://schemas.microsoft.com/windowsazure", "LoadBalancer")
                            .size(); i38 = i38 + 1) {
                        org.w3c.dom.Element loadBalancersElement = ((org.w3c.dom.Element) com.microsoft.windowsazure.core.utils.XmlUtility
                                .getElementsByTagNameNS(loadBalancersSequenceElement,
                                        "http://schemas.microsoft.com/windowsazure", "LoadBalancer")
                                .get(i38));
                        LoadBalancer loadBalancerInstance = new LoadBalancer();
                        result.getLoadBalancers().add(loadBalancerInstance);

                        Element nameElement14 = XmlUtility.getElementByTagNameNS(loadBalancersElement,
                                "http://schemas.microsoft.com/windowsazure", "Name");
                        if (nameElement14 != null) {
                            String nameInstance14;
                            nameInstance14 = nameElement14.getTextContent();
                            loadBalancerInstance.setName(nameInstance14);
                        }

                        Element frontendIpConfigurationElement = XmlUtility.getElementByTagNameNS(
                                loadBalancersElement, "http://schemas.microsoft.com/windowsazure",
                                "FrontendIpConfiguration");
                        if (frontendIpConfigurationElement != null) {
                            FrontendIPConfiguration frontendIpConfigurationInstance = new FrontendIPConfiguration();
                            loadBalancerInstance.setFrontendIPConfiguration(frontendIpConfigurationInstance);

                            Element typeElement2 = XmlUtility.getElementByTagNameNS(
                                    frontendIpConfigurationElement, "http://schemas.microsoft.com/windowsazure",
                                    "Type");
                            if (typeElement2 != null) {
                                String typeInstance2;
                                typeInstance2 = typeElement2.getTextContent();
                                frontendIpConfigurationInstance.setType(typeInstance2);
                            }

                            Element subnetNameElement3 = XmlUtility.getElementByTagNameNS(
                                    frontendIpConfigurationElement, "http://schemas.microsoft.com/windowsazure",
                                    "SubnetName");
                            if (subnetNameElement3 != null) {
                                String subnetNameInstance3;
                                subnetNameInstance3 = subnetNameElement3.getTextContent();
                                frontendIpConfigurationInstance.setSubnetName(subnetNameInstance3);
                            }

                            Element staticVirtualNetworkIPAddressElement3 = XmlUtility.getElementByTagNameNS(
                                    frontendIpConfigurationElement, "http://schemas.microsoft.com/windowsazure",
                                    "StaticVirtualNetworkIPAddress");
                            if (staticVirtualNetworkIPAddressElement3 != null) {
                                InetAddress staticVirtualNetworkIPAddressInstance3;
                                staticVirtualNetworkIPAddressInstance3 = InetAddress
                                        .getByName(staticVirtualNetworkIPAddressElement3.getTextContent());
                                frontendIpConfigurationInstance.setStaticVirtualNetworkIPAddress(
                                        staticVirtualNetworkIPAddressInstance3);
                            }
                        }
                    }
                }
            }

        }
        result.setStatusCode(statusCode);
        if (httpResponse.getHeaders("x-ms-request-id").length > 0) {
            result.setRequestId(httpResponse.getFirstHeader("x-ms-request-id").getValue());
        }

        if (shouldTrace) {
            CloudTracing.exit(invocationId, result);
        }
        return result;
    } finally {
        if (httpResponse != null && httpResponse.getEntity() != null) {
            httpResponse.getEntity().getContent().close();
        }
    }
}

From source file:com.microsoft.windowsazure.management.network.GatewayOperationsImpl.java

/**
* The Get Virtual Network Gateway Connection operation gets information
* about the virtual network gateway connection.
*
* @param gatewayId Required. The virtual network gateway id.
* @param connectedentityId Required. The virtual network gateway connected
* entity Id.// w ww  .  j ava2s.co m
* @throws IOException Signals that an I/O exception of some sort has
* occurred. This class is the general class of exceptions produced by
* failed or interrupted I/O operations.
* @throws ServiceException Thrown if an unexpected response is found.
* @throws ParserConfigurationException Thrown if there was a serious
* configuration error with the document parser.
* @throws SAXException Thrown if there was an error parsing the XML
* response.
* @return A standard service response including an HTTP status code and
* request ID.
*/
@Override
public GatewayConnectionGetResponse getGatewayConnection(String gatewayId, String connectedentityId)
        throws IOException, ServiceException, ParserConfigurationException, SAXException {
    // Validate
    if (gatewayId == null) {
        throw new NullPointerException("gatewayId");
    }
    if (connectedentityId == null) {
        throw new NullPointerException("connectedentityId");
    }

    // Tracing
    boolean shouldTrace = CloudTracing.getIsEnabled();
    String invocationId = null;
    if (shouldTrace) {
        invocationId = Long.toString(CloudTracing.getNextInvocationId());
        HashMap<String, Object> tracingParameters = new HashMap<String, Object>();
        tracingParameters.put("gatewayId", gatewayId);
        tracingParameters.put("connectedentityId", connectedentityId);
        CloudTracing.enter(invocationId, this, "getGatewayConnectionAsync", tracingParameters);
    }

    // Construct URL
    String url = "";
    url = url + "/";
    if (this.getClient().getCredentials().getSubscriptionId() != null) {
        url = url + URLEncoder.encode(this.getClient().getCredentials().getSubscriptionId(), "UTF-8");
    }
    url = url + "/services/networking/gatewayconnections/virtualnetworkgateway/";
    url = url + URLEncoder.encode(gatewayId, "UTF-8");
    url = url + "/connectedentity/";
    url = url + URLEncoder.encode(connectedentityId, "UTF-8");
    ArrayList<String> queryParameters = new ArrayList<String>();
    queryParameters.add("api-version=" + "2015-04-01");
    if (queryParameters.size() > 0) {
        url = url + "?" + CollectionStringBuilder.join(queryParameters, "&");
    }
    String baseUrl = this.getClient().getBaseUri().toString();
    // Trim '/' character from the end of baseUrl and beginning of url.
    if (baseUrl.charAt(baseUrl.length() - 1) == '/') {
        baseUrl = baseUrl.substring(0, (baseUrl.length() - 1) + 0);
    }
    if (url.charAt(0) == '/') {
        url = url.substring(1);
    }
    url = baseUrl + "/" + url;
    url = url.replace(" ", "%20");

    // Create HTTP transport objects
    HttpGet httpRequest = new HttpGet(url);

    // Set Headers
    httpRequest.setHeader("x-ms-version", "2015-04-01");

    // Send Request
    HttpResponse httpResponse = null;
    try {
        if (shouldTrace) {
            CloudTracing.sendRequest(invocationId, httpRequest);
        }
        httpResponse = this.getClient().getHttpClient().execute(httpRequest);
        if (shouldTrace) {
            CloudTracing.receiveResponse(invocationId, httpResponse);
        }
        int statusCode = httpResponse.getStatusLine().getStatusCode();
        if (statusCode != HttpStatus.SC_OK) {
            ServiceException ex = ServiceException.createFromXml(httpRequest, null, httpResponse,
                    httpResponse.getEntity());
            if (shouldTrace) {
                CloudTracing.error(invocationId, ex);
            }
            throw ex;
        }

        // Create Result
        GatewayConnectionGetResponse result = null;
        // Deserialize Response
        if (statusCode == HttpStatus.SC_OK) {
            InputStream responseContent = httpResponse.getEntity().getContent();
            result = new GatewayConnectionGetResponse();
            DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
            documentBuilderFactory.setNamespaceAware(true);
            DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
            Document responseDoc = documentBuilder.parse(new BOMInputStream(responseContent));

            Element gatewayConnectionElement = XmlUtility.getElementByTagNameNS(responseDoc,
                    "http://schemas.microsoft.com/windowsazure", "GatewayConnection");
            if (gatewayConnectionElement != null) {
                Element gatewayConnectionNameElement = XmlUtility.getElementByTagNameNS(
                        gatewayConnectionElement, "http://schemas.microsoft.com/windowsazure",
                        "GatewayConnectionName");
                if (gatewayConnectionNameElement != null) {
                    String gatewayConnectionNameInstance;
                    gatewayConnectionNameInstance = gatewayConnectionNameElement.getTextContent();
                    result.setGatewayConnectionName(gatewayConnectionNameInstance);
                }

                Element virtualNetworkGatewayIdElement = XmlUtility.getElementByTagNameNS(
                        gatewayConnectionElement, "http://schemas.microsoft.com/windowsazure",
                        "VirtualNetworkGatewayId");
                if (virtualNetworkGatewayIdElement != null
                        && virtualNetworkGatewayIdElement.getTextContent() != null
                        && !virtualNetworkGatewayIdElement.getTextContent().isEmpty()) {
                    String virtualNetworkGatewayIdInstance;
                    virtualNetworkGatewayIdInstance = virtualNetworkGatewayIdElement.getTextContent();
                    result.setVirtualNetworkGatewayId(virtualNetworkGatewayIdInstance);
                }

                Element connectedEntityIdElement = XmlUtility.getElementByTagNameNS(gatewayConnectionElement,
                        "http://schemas.microsoft.com/windowsazure", "ConnectedEntityId");
                if (connectedEntityIdElement != null) {
                    String connectedEntityIdInstance;
                    connectedEntityIdInstance = connectedEntityIdElement.getTextContent();
                    result.setConnectedEntityId(connectedEntityIdInstance);
                }

                Element gatewayConnectionTypeElement = XmlUtility.getElementByTagNameNS(
                        gatewayConnectionElement, "http://schemas.microsoft.com/windowsazure",
                        "GatewayConnectionType");
                if (gatewayConnectionTypeElement != null) {
                    String gatewayConnectionTypeInstance;
                    gatewayConnectionTypeInstance = gatewayConnectionTypeElement.getTextContent();
                    result.setGatewayConnectionType(gatewayConnectionTypeInstance);
                }

                Element routingWeightElement = XmlUtility.getElementByTagNameNS(gatewayConnectionElement,
                        "http://schemas.microsoft.com/windowsazure", "RoutingWeight");
                if (routingWeightElement != null) {
                    int routingWeightInstance;
                    routingWeightInstance = DatatypeConverter.parseInt(routingWeightElement.getTextContent());
                    result.setRoutingWeight(routingWeightInstance);
                }

                Element sharedKeyElement = XmlUtility.getElementByTagNameNS(gatewayConnectionElement,
                        "http://schemas.microsoft.com/windowsazure", "SharedKey");
                if (sharedKeyElement != null) {
                    String sharedKeyInstance;
                    sharedKeyInstance = sharedKeyElement.getTextContent();
                    result.setSharedKey(sharedKeyInstance);
                }
            }

        }
        result.setStatusCode(statusCode);
        if (httpResponse.getHeaders("x-ms-request-id").length > 0) {
            result.setRequestId(httpResponse.getFirstHeader("x-ms-request-id").getValue());
        }

        if (shouldTrace) {
            CloudTracing.exit(invocationId, result);
        }
        return result;
    } finally {
        if (httpResponse != null && httpResponse.getEntity() != null) {
            httpResponse.getEntity().getContent().close();
        }
    }
}

From source file:com.microsoft.windowsazure.management.network.GatewayOperationsImpl.java

/**
* The Get IPsec Parameters operation gets the IPsec parameters that have
* been set for the connection between the provided virtual network gateway
* and the provided local network site.//from   ww  w. j  ava 2 s.  c om
*
* @param networkName Required. The name of the virtual network for this
* gateway.
* @param localNetworkName Required. The name of the local network.
* @throws IOException Signals that an I/O exception of some sort has
* occurred. This class is the general class of exceptions produced by
* failed or interrupted I/O operations.
* @throws ServiceException Thrown if an unexpected response is found.
* @throws ParserConfigurationException Thrown if there was a serious
* configuration error with the document parser.
* @throws SAXException Thrown if there was an error parsing the XML
* response.
* @return The response that will be returned from a GetIPsecParameters
* request. This contains the IPsec parameters for the specified connection.
*/
@Override
public GatewayGetIPsecParametersResponse getIPsecParameters(String networkName, String localNetworkName)
        throws IOException, ServiceException, ParserConfigurationException, SAXException {
    // Validate
    if (networkName == null) {
        throw new NullPointerException("networkName");
    }
    if (localNetworkName == null) {
        throw new NullPointerException("localNetworkName");
    }

    // Tracing
    boolean shouldTrace = CloudTracing.getIsEnabled();
    String invocationId = null;
    if (shouldTrace) {
        invocationId = Long.toString(CloudTracing.getNextInvocationId());
        HashMap<String, Object> tracingParameters = new HashMap<String, Object>();
        tracingParameters.put("networkName", networkName);
        tracingParameters.put("localNetworkName", localNetworkName);
        CloudTracing.enter(invocationId, this, "getIPsecParametersAsync", tracingParameters);
    }

    // Construct URL
    String url = "";
    url = url + "/";
    if (this.getClient().getCredentials().getSubscriptionId() != null) {
        url = url + URLEncoder.encode(this.getClient().getCredentials().getSubscriptionId(), "UTF-8");
    }
    url = url + "/services/networking/";
    url = url + URLEncoder.encode(networkName, "UTF-8");
    url = url + "/gateway/connection/";
    url = url + URLEncoder.encode(localNetworkName, "UTF-8");
    url = url + "/ipsecparameters";
    String baseUrl = this.getClient().getBaseUri().toString();
    // Trim '/' character from the end of baseUrl and beginning of url.
    if (baseUrl.charAt(baseUrl.length() - 1) == '/') {
        baseUrl = baseUrl.substring(0, (baseUrl.length() - 1) + 0);
    }
    if (url.charAt(0) == '/') {
        url = url.substring(1);
    }
    url = baseUrl + "/" + url;
    url = url.replace(" ", "%20");

    // Create HTTP transport objects
    HttpGet httpRequest = new HttpGet(url);

    // Set Headers
    httpRequest.setHeader("x-ms-version", "2015-04-01");

    // Send Request
    HttpResponse httpResponse = null;
    try {
        if (shouldTrace) {
            CloudTracing.sendRequest(invocationId, httpRequest);
        }
        httpResponse = this.getClient().getHttpClient().execute(httpRequest);
        if (shouldTrace) {
            CloudTracing.receiveResponse(invocationId, httpResponse);
        }
        int statusCode = httpResponse.getStatusLine().getStatusCode();
        if (statusCode != HttpStatus.SC_OK) {
            ServiceException ex = ServiceException.createFromXml(httpRequest, null, httpResponse,
                    httpResponse.getEntity());
            if (shouldTrace) {
                CloudTracing.error(invocationId, ex);
            }
            throw ex;
        }

        // Create Result
        GatewayGetIPsecParametersResponse result = null;
        // Deserialize Response
        if (statusCode == HttpStatus.SC_OK) {
            InputStream responseContent = httpResponse.getEntity().getContent();
            result = new GatewayGetIPsecParametersResponse();
            DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
            documentBuilderFactory.setNamespaceAware(true);
            DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
            Document responseDoc = documentBuilder.parse(new BOMInputStream(responseContent));

            Element iPsecParametersElement = XmlUtility.getElementByTagNameNS(responseDoc,
                    "http://schemas.microsoft.com/windowsazure", "IPsecParameters");
            if (iPsecParametersElement != null) {
                IPsecParameters iPsecParametersInstance = new IPsecParameters();
                result.setIPsecParameters(iPsecParametersInstance);

                Element encryptionTypeElement = XmlUtility.getElementByTagNameNS(iPsecParametersElement,
                        "http://schemas.microsoft.com/windowsazure", "EncryptionType");
                if (encryptionTypeElement != null) {
                    String encryptionTypeInstance;
                    encryptionTypeInstance = encryptionTypeElement.getTextContent();
                    iPsecParametersInstance.setEncryptionType(encryptionTypeInstance);
                }

                Element pfsGroupElement = XmlUtility.getElementByTagNameNS(iPsecParametersElement,
                        "http://schemas.microsoft.com/windowsazure", "PfsGroup");
                if (pfsGroupElement != null) {
                    String pfsGroupInstance;
                    pfsGroupInstance = pfsGroupElement.getTextContent();
                    iPsecParametersInstance.setPfsGroup(pfsGroupInstance);
                }

                Element sADataSizeKilobytesElement = XmlUtility.getElementByTagNameNS(iPsecParametersElement,
                        "http://schemas.microsoft.com/windowsazure", "SADataSizeKilobytes");
                if (sADataSizeKilobytesElement != null) {
                    int sADataSizeKilobytesInstance;
                    sADataSizeKilobytesInstance = DatatypeConverter
                            .parseInt(sADataSizeKilobytesElement.getTextContent());
                    iPsecParametersInstance.setSADataSizeKilobytes(sADataSizeKilobytesInstance);
                }

                Element sALifeTimeSecondsElement = XmlUtility.getElementByTagNameNS(iPsecParametersElement,
                        "http://schemas.microsoft.com/windowsazure", "SALifeTimeSeconds");
                if (sALifeTimeSecondsElement != null) {
                    int sALifeTimeSecondsInstance;
                    sALifeTimeSecondsInstance = DatatypeConverter
                            .parseInt(sALifeTimeSecondsElement.getTextContent());
                    iPsecParametersInstance.setSALifeTimeSeconds(sALifeTimeSecondsInstance);
                }

                Element hashAlgorithmElement = XmlUtility.getElementByTagNameNS(iPsecParametersElement,
                        "http://schemas.microsoft.com/windowsazure", "HashAlgorithm");
                if (hashAlgorithmElement != null) {
                    String hashAlgorithmInstance;
                    hashAlgorithmInstance = hashAlgorithmElement.getTextContent();
                    iPsecParametersInstance.setHashAlgorithm(hashAlgorithmInstance);
                }
            }

        }
        result.setStatusCode(statusCode);
        if (httpResponse.getHeaders("x-ms-request-id").length > 0) {
            result.setRequestId(httpResponse.getFirstHeader("x-ms-request-id").getValue());
        }

        if (shouldTrace) {
            CloudTracing.exit(invocationId, result);
        }
        return result;
    } finally {
        if (httpResponse != null && httpResponse.getEntity() != null) {
            httpResponse.getEntity().getContent().close();
        }
    }
}