Example usage for javax.xml.bind DatatypeConverter parseBoolean

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

Introduction

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

Prototype

public static boolean parseBoolean(String lexicalXSDBoolean) 

Source Link

Document

Converts the string argument into a boolean value.

Usage

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

/**
* The Update OS Image operation updates an OS image that in your image
* repository.  (see/*  w  w  w .  j a  va 2  s .  com*/
* http://msdn.microsoft.com/en-us/library/windowsazure/jj157198.aspx for
* more information)
*
* @param imageName Required. The name of the virtual machine image to be
* updated.
* @param parameters Required. Parameters supplied to the Update Virtual
* Machine Image operation.
* @throws InterruptedException Thrown when a thread is waiting, sleeping,
* or otherwise occupied, and the thread is interrupted, either before or
* during the activity. Occasionally a method may wish to test whether the
* current thread has been interrupted, and if so, to immediately throw
* this exception. The following code can be used to achieve this effect:
* @throws ExecutionException Thrown when attempting to retrieve the result
* of a task that aborted by throwing an exception. This exception can be
* inspected using the Throwable.getCause() method.
* @throws ServiceException Thrown if the server returned an error for the
* request.
* @throws IOException Thrown if there was an error setting up tracing for
* the request.
* @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 ServiceException Thrown if an unexpected response is found.
* @throws URISyntaxException Thrown if there was an error parsing a URI in
* the response.
* @return Parameters returned from the Create Virtual Machine Image
* operation.
*/
@Override
public VirtualMachineOSImageUpdateResponse update(String imageName,
        VirtualMachineOSImageUpdateParameters parameters)
        throws InterruptedException, ExecutionException, ServiceException, IOException,
        ParserConfigurationException, SAXException, TransformerException, URISyntaxException {
    // Validate
    if (imageName == null) {
        throw new NullPointerException("imageName");
    }
    if (parameters == null) {
        throw new NullPointerException("parameters");
    }
    if (parameters.getLabel() == null) {
        throw new NullPointerException("parameters.Label");
    }

    // 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("imageName", imageName);
        tracingParameters.put("parameters", parameters);
        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/images/";
    url = url + URLEncoder.encode(imageName, "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("Content-Type", "application/xml");
    httpRequest.setHeader("x-ms-version", "2015-04-01");

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

    Element oSImageElement = requestDoc.createElementNS("http://schemas.microsoft.com/windowsazure", "OSImage");
    requestDoc.appendChild(oSImageElement);

    Element labelElement = requestDoc.createElementNS("http://schemas.microsoft.com/windowsazure", "Label");
    labelElement.appendChild(requestDoc.createTextNode(parameters.getLabel()));
    oSImageElement.appendChild(labelElement);

    if (parameters.getEula() != null) {
        Element eulaElement = requestDoc.createElementNS("http://schemas.microsoft.com/windowsazure", "Eula");
        eulaElement.appendChild(requestDoc.createTextNode(parameters.getEula()));
        oSImageElement.appendChild(eulaElement);
    }

    if (parameters.getDescription() != null) {
        Element descriptionElement = requestDoc.createElementNS("http://schemas.microsoft.com/windowsazure",
                "Description");
        descriptionElement.appendChild(requestDoc.createTextNode(parameters.getDescription()));
        oSImageElement.appendChild(descriptionElement);
    }

    if (parameters.getImageFamily() != null) {
        Element imageFamilyElement = requestDoc.createElementNS("http://schemas.microsoft.com/windowsazure",
                "ImageFamily");
        imageFamilyElement.appendChild(requestDoc.createTextNode(parameters.getImageFamily()));
        oSImageElement.appendChild(imageFamilyElement);
    }

    if (parameters.isShowInGui() != null) {
        Element showInGuiElement = requestDoc.createElementNS("http://schemas.microsoft.com/windowsazure",
                "ShowInGui");
        showInGuiElement.appendChild(
                requestDoc.createTextNode(Boolean.toString(parameters.isShowInGui()).toLowerCase()));
        oSImageElement.appendChild(showInGuiElement);
    }

    if (parameters.getPublishedDate() != null) {
        Element publishedDateElement = requestDoc.createElementNS("http://schemas.microsoft.com/windowsazure",
                "PublishedDate");
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSSSS'Z'");
        simpleDateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
        publishedDateElement.appendChild(
                requestDoc.createTextNode(simpleDateFormat.format(parameters.getPublishedDate().getTime())));
        oSImageElement.appendChild(publishedDateElement);
    }

    if (parameters.isPremium() != null) {
        Element isPremiumElement = requestDoc.createElementNS("http://schemas.microsoft.com/windowsazure",
                "IsPremium");
        isPremiumElement
                .appendChild(requestDoc.createTextNode(Boolean.toString(parameters.isPremium()).toLowerCase()));
        oSImageElement.appendChild(isPremiumElement);
    }

    if (parameters.getPrivacyUri() != null) {
        Element privacyUriElement = requestDoc.createElementNS("http://schemas.microsoft.com/windowsazure",
                "PrivacyUri");
        privacyUriElement.appendChild(requestDoc.createTextNode(parameters.getPrivacyUri().toString()));
        oSImageElement.appendChild(privacyUriElement);
    }

    if (parameters.getIconUri() != null) {
        Element iconUriElement = requestDoc.createElementNS("http://schemas.microsoft.com/windowsazure",
                "IconUri");
        iconUriElement.appendChild(requestDoc.createTextNode(parameters.getIconUri()));
        oSImageElement.appendChild(iconUriElement);
    }

    if (parameters.getRecommendedVMSize() != null) {
        Element recommendedVMSizeElement = requestDoc
                .createElementNS("http://schemas.microsoft.com/windowsazure", "RecommendedVMSize");
        recommendedVMSizeElement.appendChild(requestDoc.createTextNode(parameters.getRecommendedVMSize()));
        oSImageElement.appendChild(recommendedVMSizeElement);
    }

    if (parameters.getSmallIconUri() != null) {
        Element smallIconUriElement = requestDoc.createElementNS("http://schemas.microsoft.com/windowsazure",
                "SmallIconUri");
        smallIconUriElement.appendChild(requestDoc.createTextNode(parameters.getSmallIconUri()));
        oSImageElement.appendChild(smallIconUriElement);
    }

    if (parameters.getLanguage() != null) {
        Element languageElement = requestDoc.createElementNS("http://schemas.microsoft.com/windowsazure",
                "Language");
        languageElement.appendChild(requestDoc.createTextNode(parameters.getLanguage()));
        oSImageElement.appendChild(languageElement);
    }

    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/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
        VirtualMachineOSImageUpdateResponse result = null;
        // Deserialize Response
        if (statusCode == HttpStatus.SC_OK) {
            InputStream responseContent = httpResponse.getEntity().getContent();
            result = new VirtualMachineOSImageUpdateResponse();
            DocumentBuilderFactory documentBuilderFactory2 = DocumentBuilderFactory.newInstance();
            documentBuilderFactory2.setNamespaceAware(true);
            DocumentBuilder documentBuilder2 = documentBuilderFactory2.newDocumentBuilder();
            Document responseDoc = documentBuilder2.parse(new BOMInputStream(responseContent));

            Element oSImageElement2 = XmlUtility.getElementByTagNameNS(responseDoc,
                    "http://schemas.microsoft.com/windowsazure", "OSImage");
            if (oSImageElement2 != null) {
                Element locationElement = XmlUtility.getElementByTagNameNS(oSImageElement2,
                        "http://schemas.microsoft.com/windowsazure", "Location");
                if (locationElement != null) {
                    String locationInstance;
                    locationInstance = locationElement.getTextContent();
                    result.setLocation(locationInstance);
                }

                Element categoryElement = XmlUtility.getElementByTagNameNS(oSImageElement2,
                        "http://schemas.microsoft.com/windowsazure", "Category");
                if (categoryElement != null) {
                    String categoryInstance;
                    categoryInstance = categoryElement.getTextContent();
                    result.setCategory(categoryInstance);
                }

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

                Element logicalSizeInGBElement = XmlUtility.getElementByTagNameNS(oSImageElement2,
                        "http://schemas.microsoft.com/windowsazure", "LogicalSizeInGB");
                if (logicalSizeInGBElement != null) {
                    double logicalSizeInGBInstance;
                    logicalSizeInGBInstance = DatatypeConverter
                            .parseDouble(logicalSizeInGBElement.getTextContent());
                    result.setLogicalSizeInGB(logicalSizeInGBInstance);
                }

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

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

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

                Element eulaElement2 = XmlUtility.getElementByTagNameNS(oSImageElement2,
                        "http://schemas.microsoft.com/windowsazure", "Eula");
                if (eulaElement2 != null) {
                    String eulaInstance;
                    eulaInstance = eulaElement2.getTextContent();
                    result.setEula(eulaInstance);
                }

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

                Element imageFamilyElement2 = XmlUtility.getElementByTagNameNS(oSImageElement2,
                        "http://schemas.microsoft.com/windowsazure", "ImageFamily");
                if (imageFamilyElement2 != null) {
                    String imageFamilyInstance;
                    imageFamilyInstance = imageFamilyElement2.getTextContent();
                    result.setImageFamily(imageFamilyInstance);
                }

                Element publishedDateElement2 = XmlUtility.getElementByTagNameNS(oSImageElement2,
                        "http://schemas.microsoft.com/windowsazure", "PublishedDate");
                if (publishedDateElement2 != null && publishedDateElement2.getTextContent() != null
                        && !publishedDateElement2.getTextContent().isEmpty()) {
                    Calendar publishedDateInstance;
                    publishedDateInstance = DatatypeConverter
                            .parseDateTime(publishedDateElement2.getTextContent());
                    result.setPublishedDate(publishedDateInstance);
                }

                Element publisherNameElement = XmlUtility.getElementByTagNameNS(oSImageElement2,
                        "http://schemas.microsoft.com/windowsazure", "PublisherName");
                if (publisherNameElement != null) {
                    String publisherNameInstance;
                    publisherNameInstance = publisherNameElement.getTextContent();
                    result.setPublisherName(publisherNameInstance);
                }

                Element isPremiumElement2 = XmlUtility.getElementByTagNameNS(oSImageElement2,
                        "http://schemas.microsoft.com/windowsazure", "IsPremium");
                if (isPremiumElement2 != null && isPremiumElement2.getTextContent() != null
                        && !isPremiumElement2.getTextContent().isEmpty()) {
                    boolean isPremiumInstance;
                    isPremiumInstance = DatatypeConverter
                            .parseBoolean(isPremiumElement2.getTextContent().toLowerCase());
                    result.setIsPremium(isPremiumInstance);
                }

                Element showInGuiElement2 = XmlUtility.getElementByTagNameNS(oSImageElement2,
                        "http://schemas.microsoft.com/windowsazure", "ShowInGui");
                if (showInGuiElement2 != null && showInGuiElement2.getTextContent() != null
                        && !showInGuiElement2.getTextContent().isEmpty()) {
                    boolean showInGuiInstance;
                    showInGuiInstance = DatatypeConverter
                            .parseBoolean(showInGuiElement2.getTextContent().toLowerCase());
                    result.setShowInGui(showInGuiInstance);
                }

                Element privacyUriElement2 = XmlUtility.getElementByTagNameNS(oSImageElement2,
                        "http://schemas.microsoft.com/windowsazure", "PrivacyUri");
                if (privacyUriElement2 != null) {
                    URI privacyUriInstance;
                    privacyUriInstance = new URI(privacyUriElement2.getTextContent());
                    result.setPrivacyUri(privacyUriInstance);
                }

                Element iconUriElement2 = XmlUtility.getElementByTagNameNS(oSImageElement2,
                        "http://schemas.microsoft.com/windowsazure", "IconUri");
                if (iconUriElement2 != null) {
                    String iconUriInstance;
                    iconUriInstance = iconUriElement2.getTextContent();
                    result.setIconUri(iconUriInstance);
                }

                Element recommendedVMSizeElement2 = XmlUtility.getElementByTagNameNS(oSImageElement2,
                        "http://schemas.microsoft.com/windowsazure", "RecommendedVMSize");
                if (recommendedVMSizeElement2 != null) {
                    String recommendedVMSizeInstance;
                    recommendedVMSizeInstance = recommendedVMSizeElement2.getTextContent();
                    result.setRecommendedVMSize(recommendedVMSizeInstance);
                }

                Element smallIconUriElement2 = XmlUtility.getElementByTagNameNS(oSImageElement2,
                        "http://schemas.microsoft.com/windowsazure", "SmallIconUri");
                if (smallIconUriElement2 != null) {
                    String smallIconUriInstance;
                    smallIconUriInstance = smallIconUriElement2.getTextContent();
                    result.setSmallIconUri(smallIconUriInstance);
                }

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

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

        }
        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

/**
* Scans a backup in a storage account and returns database information etc.
* Should be called before calling Restore to discover what parameters are
* needed for the restore operation.// www .j a  v a2  s . c o m
*
* @param webSpaceName Required. The name of the web space.
* @param webSiteName Required. The name of the web site.
* @param restoreRequest Required. A restore request.
* @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 The information gathered about a backup storaged in a storage
* account.
*/
@Override
public WebSiteRestoreDiscoverResponse discover(String webSpaceName, String webSiteName,
        RestoreRequest restoreRequest)
        throws ParserConfigurationException, SAXException, TransformerException, IOException, ServiceException {
    // Validate
    if (webSpaceName == null) {
        throw new NullPointerException("webSpaceName");
    }
    if (webSiteName == null) {
        throw new NullPointerException("webSiteName");
    }
    if (restoreRequest == null) {
        throw new NullPointerException("restoreRequest");
    }

    // 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("restoreRequest", restoreRequest);
        CloudTracing.enter(invocationId, this, "discoverAsync", 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 + "/restore/discover";
    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/xml");
    httpRequest.setHeader("x-ms-version", "2014-04-01");

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

    Element restoreRequestElement = requestDoc.createElementNS("http://schemas.microsoft.com/windowsazure",
            "RestoreRequest");
    requestDoc.appendChild(restoreRequestElement);

    Element adjustConnectionStringsElement = requestDoc
            .createElementNS("http://schemas.microsoft.com/windowsazure", "AdjustConnectionStrings");
    adjustConnectionStringsElement.appendChild(requestDoc
            .createTextNode(Boolean.toString(restoreRequest.isAdjustConnectionStrings()).toLowerCase()));
    restoreRequestElement.appendChild(adjustConnectionStringsElement);

    if (restoreRequest.getBlobName() != null) {
        Element blobNameElement = requestDoc.createElementNS("http://schemas.microsoft.com/windowsazure",
                "BlobName");
        blobNameElement.appendChild(requestDoc.createTextNode(restoreRequest.getBlobName()));
        restoreRequestElement.appendChild(blobNameElement);
    }

    if (restoreRequest.getDatabases() != null) {
        if (restoreRequest.getDatabases() instanceof LazyCollection == false
                || ((LazyCollection) restoreRequest.getDatabases()).isInitialized()) {
            Element databasesSequenceElement = requestDoc
                    .createElementNS("http://schemas.microsoft.com/windowsazure", "Databases");
            for (DatabaseBackupSetting databasesItem : restoreRequest.getDatabases()) {
                Element databaseBackupSettingElement = requestDoc
                        .createElementNS("http://schemas.microsoft.com/windowsazure", "DatabaseBackupSetting");
                databasesSequenceElement.appendChild(databaseBackupSettingElement);

                if (databasesItem.getConnectionString() != null) {
                    Element connectionStringElement = requestDoc
                            .createElementNS("http://schemas.microsoft.com/windowsazure", "ConnectionString");
                    connectionStringElement
                            .appendChild(requestDoc.createTextNode(databasesItem.getConnectionString()));
                    databaseBackupSettingElement.appendChild(connectionStringElement);
                }

                if (databasesItem.getConnectionStringName() != null) {
                    Element connectionStringNameElement = requestDoc.createElementNS(
                            "http://schemas.microsoft.com/windowsazure", "ConnectionStringName");
                    connectionStringNameElement
                            .appendChild(requestDoc.createTextNode(databasesItem.getConnectionStringName()));
                    databaseBackupSettingElement.appendChild(connectionStringNameElement);
                }

                if (databasesItem.getDatabaseType() != null) {
                    Element databaseTypeElement = requestDoc
                            .createElementNS("http://schemas.microsoft.com/windowsazure", "DatabaseType");
                    databaseTypeElement.appendChild(requestDoc.createTextNode(databasesItem.getDatabaseType()));
                    databaseBackupSettingElement.appendChild(databaseTypeElement);
                }

                if (databasesItem.getName() != null) {
                    Element nameElement = requestDoc
                            .createElementNS("http://schemas.microsoft.com/windowsazure", "Name");
                    nameElement.appendChild(requestDoc.createTextNode(databasesItem.getName()));
                    databaseBackupSettingElement.appendChild(nameElement);
                }
            }
            restoreRequestElement.appendChild(databasesSequenceElement);
        }
    }

    Element ignoreConflictingHostNamesElement = requestDoc
            .createElementNS("http://schemas.microsoft.com/windowsazure", "IgnoreConflictingHostNames");
    ignoreConflictingHostNamesElement.appendChild(requestDoc
            .createTextNode(Boolean.toString(restoreRequest.isIgnoreConflictingHostNames()).toLowerCase()));
    restoreRequestElement.appendChild(ignoreConflictingHostNamesElement);

    Element overwriteElement = requestDoc.createElementNS("http://schemas.microsoft.com/windowsazure",
            "Overwrite");
    overwriteElement.appendChild(
            requestDoc.createTextNode(Boolean.toString(restoreRequest.isOverwrite()).toLowerCase()));
    restoreRequestElement.appendChild(overwriteElement);

    if (restoreRequest.getStorageAccountUrl() != null) {
        Element storageAccountUrlElement = requestDoc
                .createElementNS("http://schemas.microsoft.com/windowsazure", "StorageAccountUrl");
        storageAccountUrlElement.appendChild(requestDoc.createTextNode(restoreRequest.getStorageAccountUrl()));
        restoreRequestElement.appendChild(storageAccountUrlElement);
    }

    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/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
        WebSiteRestoreDiscoverResponse result = null;
        // Deserialize Response
        if (statusCode == HttpStatus.SC_OK) {
            InputStream responseContent = httpResponse.getEntity().getContent();
            result = new WebSiteRestoreDiscoverResponse();
            DocumentBuilderFactory documentBuilderFactory2 = DocumentBuilderFactory.newInstance();
            documentBuilderFactory2.setNamespaceAware(true);
            DocumentBuilder documentBuilder2 = documentBuilderFactory2.newDocumentBuilder();
            Document responseDoc = documentBuilder2.parse(new BOMInputStream(responseContent));

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

                Element blobNameElement2 = XmlUtility.getElementByTagNameNS(restoreRequestElement2,
                        "http://schemas.microsoft.com/windowsazure", "BlobName");
                if (blobNameElement2 != null) {
                    String blobNameInstance;
                    blobNameInstance = blobNameElement2.getTextContent();
                    result.setBlobName(blobNameInstance);
                }

                Element overwriteElement2 = XmlUtility.getElementByTagNameNS(restoreRequestElement2,
                        "http://schemas.microsoft.com/windowsazure", "Overwrite");
                if (overwriteElement2 != null) {
                    boolean overwriteInstance;
                    overwriteInstance = DatatypeConverter
                            .parseBoolean(overwriteElement2.getTextContent().toLowerCase());
                    result.setOverwrite(overwriteInstance);
                }

                Element databasesSequenceElement2 = XmlUtility.getElementByTagNameNS(restoreRequestElement2,
                        "http://schemas.microsoft.com/windowsazure", "Databases");
                if (databasesSequenceElement2 != null) {
                    for (int i1 = 0; i1 < com.microsoft.windowsazure.core.utils.XmlUtility
                            .getElementsByTagNameNS(databasesSequenceElement2,
                                    "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(databasesSequenceElement2,
                                        "http://schemas.microsoft.com/windowsazure", "DatabaseBackupSetting")
                                .get(i1));
                        DatabaseBackupSetting databaseBackupSettingInstance = new DatabaseBackupSetting();
                        result.getDatabases().add(databaseBackupSettingInstance);

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

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

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

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

                Element ignoreConflictingHostNamesElement2 = XmlUtility.getElementByTagNameNS(
                        restoreRequestElement2, "http://schemas.microsoft.com/windowsazure",
                        "IgnoreConflictingHostNames");
                if (ignoreConflictingHostNamesElement2 != null) {
                    boolean ignoreConflictingHostNamesInstance;
                    ignoreConflictingHostNamesInstance = DatatypeConverter
                            .parseBoolean(ignoreConflictingHostNamesElement2.getTextContent().toLowerCase());
                    result.setIgnoreConflictingHostNames(ignoreConflictingHostNamesInstance);
                }

                Element adjustConnectionStringsElement2 = XmlUtility.getElementByTagNameNS(
                        restoreRequestElement2, "http://schemas.microsoft.com/windowsazure",
                        "AdjustConnectionStrings");
                if (adjustConnectionStringsElement2 != null) {
                    boolean adjustConnectionStringsInstance;
                    adjustConnectionStringsInstance = DatatypeConverter
                            .parseBoolean(adjustConnectionStringsElement2.getTextContent().toLowerCase());
                    result.setAdjustConnectionStrings(adjustConnectionStringsInstance);
                }
            }

        }
        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.TopicOperationsImpl.java

/**
* Updates a topic.  (see/*from  w  ww .j a va 2 s .  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.websites.WebSiteOperationsImpl.java

/**
* You can retrieve details for a web site by issuing an HTTP GET request.
* (see http://msdn.microsoft.com/en-us/library/windowsazure/dn167007.aspx
* for more information)/*  ww  w  .  j ava  2 s. c  om*/
*
* @param webSpaceName Required. The name of the web space.
* @param webSiteName Required. The name of the web site.
* @param parameters Optional. Parameters supplied to the Get 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.
* @throws URISyntaxException Thrown if there was an error parsing a URI in
* the response.
* @return The Get Web Site operation response.
*/
@Override
public WebSiteGetResponse get(String webSpaceName, String webSiteName, WebSiteGetParameters parameters)
        throws IOException, ServiceException, ParserConfigurationException, SAXException, URISyntaxException {
    // 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);
        tracingParameters.put("parameters", parameters);
        CloudTracing.enter(invocationId, this, "getAsync", 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");
    ArrayList<String> queryParameters = new ArrayList<String>();
    if (parameters != null && parameters.getPropertiesToInclude() != null
            && parameters.getPropertiesToInclude().size() > 0) {
        queryParameters.add("propertiesToInclude=" + URLEncoder
                .encode(CollectionStringBuilder.join(parameters.getPropertiesToInclude(), ","), "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
        WebSiteGetResponse result = null;
        // Deserialize Response
        if (statusCode == HttpStatus.SC_OK) {
            InputStream responseContent = httpResponse.getEntity().getContent();
            result = new WebSiteGetResponse();
            DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
            documentBuilderFactory.setNamespaceAware(true);
            DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
            Document responseDoc = documentBuilder.parse(new BOMInputStream(responseContent));

            Element siteElement = XmlUtility.getElementByTagNameNS(responseDoc,
                    "http://schemas.microsoft.com/windowsazure", "Site");
            if (siteElement != null) {
                WebSite webSiteInstance = new WebSite();
                result.setWebSite(webSiteInstance);

                Element adminEnabledElement = XmlUtility.getElementByTagNameNS(siteElement,
                        "http://schemas.microsoft.com/windowsazure", "AdminEnabled");
                if (adminEnabledElement != null && adminEnabledElement.getTextContent() != null
                        && !adminEnabledElement.getTextContent().isEmpty()) {
                    boolean adminEnabledInstance;
                    adminEnabledInstance = DatatypeConverter
                            .parseBoolean(adminEnabledElement.getTextContent().toLowerCase());
                    webSiteInstance.setAdminEnabled(adminEnabledInstance);
                }

                Element availabilityStateElement = XmlUtility.getElementByTagNameNS(siteElement,
                        "http://schemas.microsoft.com/windowsazure", "AvailabilityState");
                if (availabilityStateElement != null && availabilityStateElement.getTextContent() != null
                        && !availabilityStateElement.getTextContent().isEmpty()) {
                    WebSpaceAvailabilityState availabilityStateInstance;
                    availabilityStateInstance = WebSpaceAvailabilityState
                            .valueOf(availabilityStateElement.getTextContent());
                    webSiteInstance.setAvailabilityState(availabilityStateInstance);
                }

                Element sKUElement = XmlUtility.getElementByTagNameNS(siteElement,
                        "http://schemas.microsoft.com/windowsazure", "SKU");
                if (sKUElement != null && sKUElement.getTextContent() != null
                        && !sKUElement.getTextContent().isEmpty()) {
                    SkuOptions sKUInstance;
                    sKUInstance = SkuOptions.valueOf(sKUElement.getTextContent());
                    webSiteInstance.setSku(sKUInstance);
                }

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

                Element enabledHostNamesSequenceElement = XmlUtility.getElementByTagNameNS(siteElement,
                        "http://schemas.microsoft.com/windowsazure", "EnabledHostNames");
                if (enabledHostNamesSequenceElement != null) {
                    for (int i1 = 0; i1 < com.microsoft.windowsazure.core.utils.XmlUtility
                            .getElementsByTagNameNS(enabledHostNamesSequenceElement,
                                    "http://schemas.microsoft.com/2003/10/Serialization/Arrays", "string")
                            .size(); i1 = i1 + 1) {
                        org.w3c.dom.Element enabledHostNamesElement = ((org.w3c.dom.Element) com.microsoft.windowsazure.core.utils.XmlUtility
                                .getElementsByTagNameNS(enabledHostNamesSequenceElement,
                                        "http://schemas.microsoft.com/2003/10/Serialization/Arrays", "string")
                                .get(i1));
                        webSiteInstance.getEnabledHostNames().add(enabledHostNamesElement.getTextContent());
                    }
                }

                Element hostNameSslStatesSequenceElement = XmlUtility.getElementByTagNameNS(siteElement,
                        "http://schemas.microsoft.com/windowsazure", "HostNameSslStates");
                if (hostNameSslStatesSequenceElement != null) {
                    for (int i2 = 0; i2 < com.microsoft.windowsazure.core.utils.XmlUtility
                            .getElementsByTagNameNS(hostNameSslStatesSequenceElement,
                                    "http://schemas.microsoft.com/windowsazure", "HostNameSslState")
                            .size(); i2 = i2 + 1) {
                        org.w3c.dom.Element hostNameSslStatesElement = ((org.w3c.dom.Element) com.microsoft.windowsazure.core.utils.XmlUtility
                                .getElementsByTagNameNS(hostNameSslStatesSequenceElement,
                                        "http://schemas.microsoft.com/windowsazure", "HostNameSslState")
                                .get(i2));
                        WebSite.WebSiteHostNameSslState hostNameSslStateInstance = new WebSite.WebSiteHostNameSslState();
                        webSiteInstance.getHostNameSslStates().add(hostNameSslStateInstance);

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

                        Element sslStateElement = XmlUtility.getElementByTagNameNS(hostNameSslStatesElement,
                                "http://schemas.microsoft.com/windowsazure", "SslState");
                        if (sslStateElement != null && sslStateElement.getTextContent() != null
                                && !sslStateElement.getTextContent().isEmpty()) {
                            WebSiteSslState sslStateInstance;
                            sslStateInstance = WebSiteSslState.valueOf(sslStateElement.getTextContent());
                            hostNameSslStateInstance.setSslState(sslStateInstance);
                        }

                        Element thumbprintElement = XmlUtility.getElementByTagNameNS(hostNameSslStatesElement,
                                "http://schemas.microsoft.com/windowsazure", "Thumbprint");
                        if (thumbprintElement != null) {
                            boolean isNil = false;
                            Attr nilAttribute = thumbprintElement
                                    .getAttributeNodeNS("http://www.w3.org/2001/XMLSchema-instance", "nil");
                            if (nilAttribute != null) {
                                isNil = "true".equals(nilAttribute.getValue());
                            }
                            if (isNil == false) {
                                String thumbprintInstance;
                                thumbprintInstance = thumbprintElement.getTextContent();
                                hostNameSslStateInstance.setThumbprint(thumbprintInstance);
                            }
                        }

                        Element virtualIPElement = XmlUtility.getElementByTagNameNS(hostNameSslStatesElement,
                                "http://schemas.microsoft.com/windowsazure", "VirtualIP");
                        if (virtualIPElement != null) {
                            boolean isNil2 = false;
                            Attr nilAttribute2 = virtualIPElement
                                    .getAttributeNodeNS("http://www.w3.org/2001/XMLSchema-instance", "nil");
                            if (nilAttribute2 != null) {
                                isNil2 = "true".equals(nilAttribute2.getValue());
                            }
                            if (isNil2 == false) {
                                InetAddress virtualIPInstance;
                                virtualIPInstance = InetAddress.getByName(virtualIPElement.getTextContent());
                                hostNameSslStateInstance.setVirtualIP(virtualIPInstance);
                            }
                        }
                    }
                }

                Element hostNamesSequenceElement = XmlUtility.getElementByTagNameNS(siteElement,
                        "http://schemas.microsoft.com/windowsazure", "HostNames");
                if (hostNamesSequenceElement != null) {
                    for (int i3 = 0; i3 < com.microsoft.windowsazure.core.utils.XmlUtility
                            .getElementsByTagNameNS(hostNamesSequenceElement,
                                    "http://schemas.microsoft.com/2003/10/Serialization/Arrays", "string")
                            .size(); i3 = i3 + 1) {
                        org.w3c.dom.Element hostNamesElement = ((org.w3c.dom.Element) com.microsoft.windowsazure.core.utils.XmlUtility
                                .getElementsByTagNameNS(hostNamesSequenceElement,
                                        "http://schemas.microsoft.com/2003/10/Serialization/Arrays", "string")
                                .get(i3));
                        webSiteInstance.getHostNames().add(hostNamesElement.getTextContent());
                    }
                }

                Element lastModifiedTimeUtcElement = XmlUtility.getElementByTagNameNS(siteElement,
                        "http://schemas.microsoft.com/windowsazure", "LastModifiedTimeUtc");
                if (lastModifiedTimeUtcElement != null && lastModifiedTimeUtcElement.getTextContent() != null
                        && !lastModifiedTimeUtcElement.getTextContent().isEmpty()) {
                    Calendar lastModifiedTimeUtcInstance;
                    lastModifiedTimeUtcInstance = DatatypeConverter
                            .parseDateTime(lastModifiedTimeUtcElement.getTextContent());
                    webSiteInstance.setLastModifiedTimeUtc(lastModifiedTimeUtcInstance);
                }

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

                Element repositorySiteNameElement = XmlUtility.getElementByTagNameNS(siteElement,
                        "http://schemas.microsoft.com/windowsazure", "RepositorySiteName");
                if (repositorySiteNameElement != null) {
                    String repositorySiteNameInstance;
                    repositorySiteNameInstance = repositorySiteNameElement.getTextContent();
                    webSiteInstance.setRepositorySiteName(repositorySiteNameInstance);
                }

                Element runtimeAvailabilityStateElement = XmlUtility.getElementByTagNameNS(siteElement,
                        "http://schemas.microsoft.com/windowsazure", "RuntimeAvailabilityState");
                if (runtimeAvailabilityStateElement != null
                        && runtimeAvailabilityStateElement.getTextContent() != null
                        && !runtimeAvailabilityStateElement.getTextContent().isEmpty()) {
                    WebSiteRuntimeAvailabilityState runtimeAvailabilityStateInstance;
                    runtimeAvailabilityStateInstance = WebSiteRuntimeAvailabilityState
                            .valueOf(runtimeAvailabilityStateElement.getTextContent());
                    webSiteInstance.setRuntimeAvailabilityState(runtimeAvailabilityStateInstance);
                }

                Element selfLinkElement = XmlUtility.getElementByTagNameNS(siteElement,
                        "http://schemas.microsoft.com/windowsazure", "SelfLink");
                if (selfLinkElement != null) {
                    URI selfLinkInstance;
                    selfLinkInstance = new URI(selfLinkElement.getTextContent());
                    webSiteInstance.setUri(selfLinkInstance);
                }

                Element serverFarmElement = XmlUtility.getElementByTagNameNS(siteElement,
                        "http://schemas.microsoft.com/windowsazure", "ServerFarm");
                if (serverFarmElement != null) {
                    String serverFarmInstance;
                    serverFarmInstance = serverFarmElement.getTextContent();
                    webSiteInstance.setServerFarm(serverFarmInstance);
                }

                Element sitePropertiesElement = XmlUtility.getElementByTagNameNS(siteElement,
                        "http://schemas.microsoft.com/windowsazure", "SiteProperties");
                if (sitePropertiesElement != null) {
                    WebSite.WebSiteProperties sitePropertiesInstance = new WebSite.WebSiteProperties();
                    webSiteInstance.setSiteProperties(sitePropertiesInstance);

                    Element appSettingsSequenceElement = XmlUtility.getElementByTagNameNS(sitePropertiesElement,
                            "http://schemas.microsoft.com/windowsazure", "AppSettings");
                    if (appSettingsSequenceElement != null) {
                        for (int i4 = 0; i4 < com.microsoft.windowsazure.core.utils.XmlUtility
                                .getElementsByTagNameNS(appSettingsSequenceElement,
                                        "http://schemas.microsoft.com/windowsazure", "NameValuePair")
                                .size(); i4 = i4 + 1) {
                            org.w3c.dom.Element appSettingsElement = ((org.w3c.dom.Element) com.microsoft.windowsazure.core.utils.XmlUtility
                                    .getElementsByTagNameNS(appSettingsSequenceElement,
                                            "http://schemas.microsoft.com/windowsazure", "NameValuePair")
                                    .get(i4));
                            String appSettingsKey = XmlUtility
                                    .getElementByTagNameNS(appSettingsElement,
                                            "http://schemas.microsoft.com/windowsazure", "Name")
                                    .getTextContent();
                            String appSettingsValue = XmlUtility
                                    .getElementByTagNameNS(appSettingsElement,
                                            "http://schemas.microsoft.com/windowsazure", "Value")
                                    .getTextContent();
                            sitePropertiesInstance.getAppSettings().put(appSettingsKey, appSettingsValue);
                        }
                    }

                    Element metadataSequenceElement = XmlUtility.getElementByTagNameNS(sitePropertiesElement,
                            "http://schemas.microsoft.com/windowsazure", "Metadata");
                    if (metadataSequenceElement != null) {
                        for (int i5 = 0; i5 < com.microsoft.windowsazure.core.utils.XmlUtility
                                .getElementsByTagNameNS(metadataSequenceElement,
                                        "http://schemas.microsoft.com/windowsazure", "NameValuePair")
                                .size(); i5 = i5 + 1) {
                            org.w3c.dom.Element metadataElement = ((org.w3c.dom.Element) com.microsoft.windowsazure.core.utils.XmlUtility
                                    .getElementsByTagNameNS(metadataSequenceElement,
                                            "http://schemas.microsoft.com/windowsazure", "NameValuePair")
                                    .get(i5));
                            String metadataKey = XmlUtility
                                    .getElementByTagNameNS(metadataElement,
                                            "http://schemas.microsoft.com/windowsazure", "Name")
                                    .getTextContent();
                            String metadataValue = XmlUtility
                                    .getElementByTagNameNS(metadataElement,
                                            "http://schemas.microsoft.com/windowsazure", "Value")
                                    .getTextContent();
                            sitePropertiesInstance.getMetadata().put(metadataKey, metadataValue);
                        }
                    }

                    Element propertiesSequenceElement = XmlUtility.getElementByTagNameNS(sitePropertiesElement,
                            "http://schemas.microsoft.com/windowsazure", "Properties");
                    if (propertiesSequenceElement != null) {
                        for (int i6 = 0; i6 < com.microsoft.windowsazure.core.utils.XmlUtility
                                .getElementsByTagNameNS(propertiesSequenceElement,
                                        "http://schemas.microsoft.com/windowsazure", "NameValuePair")
                                .size(); i6 = i6 + 1) {
                            org.w3c.dom.Element propertiesElement = ((org.w3c.dom.Element) com.microsoft.windowsazure.core.utils.XmlUtility
                                    .getElementsByTagNameNS(propertiesSequenceElement,
                                            "http://schemas.microsoft.com/windowsazure", "NameValuePair")
                                    .get(i6));
                            String propertiesKey = XmlUtility
                                    .getElementByTagNameNS(propertiesElement,
                                            "http://schemas.microsoft.com/windowsazure", "Name")
                                    .getTextContent();
                            String propertiesValue = XmlUtility
                                    .getElementByTagNameNS(propertiesElement,
                                            "http://schemas.microsoft.com/windowsazure", "Value")
                                    .getTextContent();
                            sitePropertiesInstance.getProperties().put(propertiesKey, propertiesValue);
                        }
                    }
                }

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

                Element usageStateElement = XmlUtility.getElementByTagNameNS(siteElement,
                        "http://schemas.microsoft.com/windowsazure", "UsageState");
                if (usageStateElement != null && usageStateElement.getTextContent() != null
                        && !usageStateElement.getTextContent().isEmpty()) {
                    WebSiteUsageState usageStateInstance;
                    usageStateInstance = WebSiteUsageState.valueOf(usageStateElement.getTextContent());
                    webSiteInstance.setUsageState(usageStateInstance);
                }

                Element webSpaceElement = XmlUtility.getElementByTagNameNS(siteElement,
                        "http://schemas.microsoft.com/windowsazure", "WebSpace");
                if (webSpaceElement != null) {
                    String webSpaceInstance;
                    webSpaceInstance = webSpaceElement.getTextContent();
                    webSiteInstance.setWebSpace(webSpaceInstance);
                }
            }

        }
        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// ww  w  .jav  a 2 s .c om
* 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.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./*from ww w  . j  a  va 2  s.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.compute.HostedServiceOperationsImpl.java

/**
* The Get Detailed Hosted Service Properties operation retrieves system
* properties for the specified cloud service. These properties include the
* service name and service type; the name of the affinity group to which
* the service belongs, or its location if it is not part of an affinity
* group; and information on the deployments of the service.  (see
* http://msdn.microsoft.com/en-us/library/windowsazure/ee460806.aspx for
* more information)/* w w w.j  a  v a 2 s  .com*/
*
* @param serviceName Required. The name of the cloud service.
* @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 The detailed Get Hosted Service operation response.
*/
@Override
public HostedServiceGetDetailedResponse getDetailed(String serviceName)
        throws IOException, ServiceException, ParserConfigurationException, SAXException, URISyntaxException {
    // Validate
    if (serviceName == null) {
        throw new NullPointerException("serviceName");
    }

    // 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);
        CloudTracing.enter(invocationId, this, "getDetailedAsync", 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");
    ArrayList<String> queryParameters = new ArrayList<String>();
    queryParameters.add("embed-detail=true");
    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
        HostedServiceGetDetailedResponse result = null;
        // Deserialize Response
        if (statusCode == HttpStatus.SC_OK) {
            InputStream responseContent = httpResponse.getEntity().getContent();
            result = new HostedServiceGetDetailedResponse();
            DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
            documentBuilderFactory.setNamespaceAware(true);
            DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
            Document responseDoc = documentBuilder.parse(new BOMInputStream(responseContent));

            Element hostedServiceElement = XmlUtility.getElementByTagNameNS(responseDoc,
                    "http://schemas.microsoft.com/windowsazure", "HostedService");
            if (hostedServiceElement != null) {
                Element deploymentsSequenceElement = XmlUtility.getElementByTagNameNS(hostedServiceElement,
                        "http://schemas.microsoft.com/windowsazure", "Deployments");
                if (deploymentsSequenceElement != null) {
                    for (int i1 = 0; i1 < com.microsoft.windowsazure.core.utils.XmlUtility
                            .getElementsByTagNameNS(deploymentsSequenceElement,
                                    "http://schemas.microsoft.com/windowsazure", "Deployment")
                            .size(); i1 = i1 + 1) {
                        org.w3c.dom.Element deploymentsElement = ((org.w3c.dom.Element) com.microsoft.windowsazure.core.utils.XmlUtility
                                .getElementsByTagNameNS(deploymentsSequenceElement,
                                        "http://schemas.microsoft.com/windowsazure", "Deployment")
                                .get(i1));
                        HostedServiceGetDetailedResponse.Deployment deploymentInstance = new HostedServiceGetDetailedResponse.Deployment();
                        result.getDeployments().add(deploymentInstance);

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

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

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

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

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

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

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

                        Element roleInstanceListSequenceElement = XmlUtility.getElementByTagNameNS(
                                deploymentsElement, "http://schemas.microsoft.com/windowsazure",
                                "RoleInstanceList");
                        if (roleInstanceListSequenceElement != null) {
                            for (int i2 = 0; i2 < com.microsoft.windowsazure.core.utils.XmlUtility
                                    .getElementsByTagNameNS(roleInstanceListSequenceElement,
                                            "http://schemas.microsoft.com/windowsazure", "RoleInstance")
                                    .size(); i2 = i2 + 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(i2));
                                RoleInstance roleInstanceInstance = new RoleInstance();
                                deploymentInstance.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 i3 = 0; i3 < com.microsoft.windowsazure.core.utils.XmlUtility
                                            .getElementsByTagNameNS(instanceEndpointsSequenceElement,
                                                    "http://schemas.microsoft.com/windowsazure",
                                                    "InstanceEndpoint")
                                            .size(); i3 = i3 + 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(i3));
                                        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 i4 = 0; i4 < com.microsoft.windowsazure.core.utils.XmlUtility
                                                    .getElementsByTagNameNS(paramListSequenceElement,
                                                            "http://schemas.microsoft.com/windowsazure",
                                                            "Param")
                                                    .size(); i4 = i4 + 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(i4));
                                                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 i5 = 0; i5 < com.microsoft.windowsazure.core.utils.XmlUtility
                                            .getElementsByTagNameNS(resourceExtensionStatusListSequenceElement,
                                                    "http://schemas.microsoft.com/windowsazure",
                                                    "ResourceExtensionStatus")
                                            .size(); i5 = i5 + 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(i5));
                                        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 i6 = 0; i6 < com.microsoft.windowsazure.core.utils.XmlUtility
                                                        .getElementsByTagNameNS(paramListSequenceElement2,
                                                                "http://schemas.microsoft.com/windowsazure",
                                                                "Param")
                                                        .size(); i6 = i6 + 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(i6));
                                                    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 i7 = 0; i7 < com.microsoft.windowsazure.core.utils.XmlUtility
                                                            .getElementsByTagNameNS(paramListSequenceElement3,
                                                                    "http://schemas.microsoft.com/windowsazure",
                                                                    "Param")
                                                            .size(); i7 = i7 + 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(i7));
                                                        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 i8 = 0; i8 < com.microsoft.windowsazure.core.utils.XmlUtility
                                                        .getElementsByTagNameNS(subStatusListSequenceElement,
                                                                "http://schemas.microsoft.com/windowsazure",
                                                                "SubStatus")
                                                        .size(); i8 = i8 + 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(i8));
                                                    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 i9 = 0; i9 < com.microsoft.windowsazure.core.utils.XmlUtility
                                                                    .getElementsByTagNameNS(
                                                                            paramListSequenceElement4,
                                                                            "http://schemas.microsoft.com/windowsazure",
                                                                            "Param")
                                                                    .size(); i9 = i9 + 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(i9));
                                                                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 i10 = 0; i10 < com.microsoft.windowsazure.core.utils.XmlUtility
                                            .getElementsByTagNameNS(publicIPsSequenceElement,
                                                    "http://schemas.microsoft.com/windowsazure", "PublicIP")
                                            .size(); i10 = i10 + 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(i10));
                                        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 i11 = 0; i11 < com.microsoft.windowsazure.core.utils.XmlUtility
                                                    .getElementsByTagNameNS(fqdnsSequenceElement,
                                                            "http://schemas.microsoft.com/windowsazure", "Fqdn")
                                                    .size(); i11 = i11 + 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(i11));
                                                publicIPInstance.getFqdns().add(fqdnsElement.getTextContent());
                                            }
                                        }
                                    }
                                }

                                Element networkInterfacesSequenceElement = XmlUtility.getElementByTagNameNS(
                                        roleInstanceListElement, "http://schemas.microsoft.com/windowsazure",
                                        "NetworkInterfaces");
                                if (networkInterfacesSequenceElement != null) {
                                    for (int i12 = 0; i12 < com.microsoft.windowsazure.core.utils.XmlUtility
                                            .getElementsByTagNameNS(networkInterfacesSequenceElement,
                                                    "http://schemas.microsoft.com/windowsazure",
                                                    "NetworkInterface")
                                            .size(); i12 = i12 + 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(i12));
                                        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 i13 = 0; i13 < com.microsoft.windowsazure.core.utils.XmlUtility
                                                    .getElementsByTagNameNS(iPConfigurationsSequenceElement,
                                                            "http://schemas.microsoft.com/windowsazure",
                                                            "IPConfiguration")
                                                    .size(); i13 = i13 + 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(i13));
                                                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(deploymentsElement,
                                "http://schemas.microsoft.com/windowsazure", "UpgradeStatus");
                        if (upgradeStatusElement != null) {
                            UpgradeStatus upgradeStatusInstance = new UpgradeStatus();
                            deploymentInstance.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(deploymentsElement,
                                "http://schemas.microsoft.com/windowsazure", "UpgradeDomainCount");
                        if (upgradeDomainCountElement != null) {
                            int upgradeDomainCountInstance;
                            upgradeDomainCountInstance = DatatypeConverter
                                    .parseInt(upgradeDomainCountElement.getTextContent());
                            deploymentInstance.setUpgradeDomainCount(upgradeDomainCountInstance);
                        }

                        Element roleListSequenceElement = XmlUtility.getElementByTagNameNS(deploymentsElement,
                                "http://schemas.microsoft.com/windowsazure", "RoleList");
                        if (roleListSequenceElement != null) {
                            for (int i14 = 0; i14 < com.microsoft.windowsazure.core.utils.XmlUtility
                                    .getElementsByTagNameNS(roleListSequenceElement,
                                            "http://schemas.microsoft.com/windowsazure", "Role")
                                    .size(); i14 = i14 + 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(i14));
                                Role roleInstance = new Role();
                                deploymentInstance.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 i15 = 0; i15 < com.microsoft.windowsazure.core.utils.XmlUtility
                                            .getElementsByTagNameNS(configurationSetsSequenceElement,
                                                    "http://schemas.microsoft.com/windowsazure",
                                                    "ConfigurationSet")
                                            .size(); i15 = i15 + 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(i15));
                                        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 i16 = 0; i16 < com.microsoft.windowsazure.core.utils.XmlUtility
                                                    .getElementsByTagNameNS(inputEndpointsSequenceElement,
                                                            "http://schemas.microsoft.com/windowsazure",
                                                            "InputEndpoint")
                                                    .size(); i16 = i16 + 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(i16));
                                                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 i17 = 0; i17 < com.microsoft.windowsazure.core.utils.XmlUtility
                                                                .getElementsByTagNameNS(rulesSequenceElement,
                                                                        "http://schemas.microsoft.com/windowsazure",
                                                                        "Rule")
                                                                .size(); i17 = i17 + 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(i17));
                                                            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 i18 = 0; i18 < com.microsoft.windowsazure.core.utils.XmlUtility
                                                    .getElementsByTagNameNS(subnetNamesSequenceElement,
                                                            "http://schemas.microsoft.com/windowsazure",
                                                            "SubnetName")
                                                    .size(); i18 = i18 + 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(i18));
                                                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 i19 = 0; i19 < com.microsoft.windowsazure.core.utils.XmlUtility
                                                    .getElementsByTagNameNS(publicIPsSequenceElement2,
                                                            "http://schemas.microsoft.com/windowsazure",
                                                            "PublicIP")
                                                    .size(); i19 = i19 + 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(i19));
                                                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 i20 = 0; i20 < com.microsoft.windowsazure.core.utils.XmlUtility
                                                    .getElementsByTagNameNS(networkInterfacesSequenceElement2,
                                                            "http://schemas.microsoft.com/windowsazure",
                                                            "NetworkInterface")
                                                    .size(); i20 = i20 + 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(i20));
                                                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 i21 = 0; i21 < com.microsoft.windowsazure.core.utils.XmlUtility
                                                            .getElementsByTagNameNS(
                                                                    iPConfigurationsSequenceElement2,
                                                                    "http://schemas.microsoft.com/windowsazure",
                                                                    "IPConfiguration")
                                                            .size(); i21 = i21 + 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(i21));
                                                        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 i22 = 0; i22 < com.microsoft.windowsazure.core.utils.XmlUtility
                                                    .getElementsByTagNameNS(
                                                            storedCertificateSettingsSequenceElement,
                                                            "http://schemas.microsoft.com/windowsazure",
                                                            "CertificateSetting")
                                                    .size(); i22 = i22 + 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(i22));
                                                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 i23 = 0; i23 < com.microsoft.windowsazure.core.utils.XmlUtility
                                                        .getElementsByTagNameNS(listenersSequenceElement,
                                                                "http://schemas.microsoft.com/windowsazure",
                                                                "Listener")
                                                        .size(); i23 = i23 + 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(i23));
                                                    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 i24 = 0; i24 < com.microsoft.windowsazure.core.utils.XmlUtility
                                                        .getElementsByTagNameNS(passesSequenceElement,
                                                                "http://schemas.microsoft.com/windowsazure",
                                                                "UnattendPass")
                                                        .size(); i24 = i24 + 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(i24));
                                                    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 i25 = 0; i25 < com.microsoft.windowsazure.core.utils.XmlUtility
                                                                .getElementsByTagNameNS(
                                                                        componentsSequenceElement,
                                                                        "http://schemas.microsoft.com/windowsazure",
                                                                        "UnattendComponent")
                                                                .size(); i25 = i25 + 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(i25));
                                                            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 i26 = 0; i26 < com.microsoft.windowsazure.core.utils.XmlUtility
                                                                        .getElementsByTagNameNS(
                                                                                componentSettingsSequenceElement,
                                                                                "http://schemas.microsoft.com/windowsazure",
                                                                                "ComponentSetting")
                                                                        .size(); i26 = i26 + 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(i26));
                                                                    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 i27 = 0; i27 < com.microsoft.windowsazure.core.utils.XmlUtility
                                                        .getElementsByTagNameNS(publicKeysSequenceElement,
                                                                "http://schemas.microsoft.com/windowsazure",
                                                                "PublicKey")
                                                        .size(); i27 = i27 + 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(i27));
                                                    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 i28 = 0; i28 < com.microsoft.windowsazure.core.utils.XmlUtility
                                                        .getElementsByTagNameNS(keyPairsSequenceElement,
                                                                "http://schemas.microsoft.com/windowsazure",
                                                                "KeyPair")
                                                        .size(); i28 = i28 + 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(i28));
                                                    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 i29 = 0; i29 < com.microsoft.windowsazure.core.utils.XmlUtility
                                            .getElementsByTagNameNS(resourceExtensionReferencesSequenceElement,
                                                    "http://schemas.microsoft.com/windowsazure",
                                                    "ResourceExtensionReference")
                                            .size(); i29 = i29 + 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(i29));
                                        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 i30 = 0; i30 < com.microsoft.windowsazure.core.utils.XmlUtility
                                                    .getElementsByTagNameNS(
                                                            resourceExtensionParameterValuesSequenceElement,
                                                            "http://schemas.microsoft.com/windowsazure",
                                                            "ResourceExtensionParameterValue")
                                                    .size(); i30 = i30 + 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(i30));
                                                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 i31 = 0; i31 < com.microsoft.windowsazure.core.utils.XmlUtility
                                            .getElementsByTagNameNS(dataVirtualHardDisksSequenceElement,
                                                    "http://schemas.microsoft.com/windowsazure",
                                                    "DataVirtualHardDisk")
                                            .size(); i31 = i31 + 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(i31));
                                        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 i32 = 0; i32 < com.microsoft.windowsazure.core.utils.XmlUtility
                                                .getElementsByTagNameNS(dataDiskConfigurationsSequenceElement,
                                                        "http://schemas.microsoft.com/windowsazure",
                                                        "DataDiskConfiguration")
                                                .size(); i32 = i32 + 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(i32));
                                            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(deploymentsElement,
                                "http://schemas.microsoft.com/windowsazure", "SdkVersion");
                        if (sdkVersionElement != null) {
                            String sdkVersionInstance;
                            sdkVersionInstance = sdkVersionElement.getTextContent();
                            deploymentInstance.setSdkVersion(sdkVersionInstance);
                        }

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

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

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

                        Element lastModifiedTimeElement = XmlUtility.getElementByTagNameNS(deploymentsElement,
                                "http://schemas.microsoft.com/windowsazure", "LastModifiedTime");
                        if (lastModifiedTimeElement != null) {
                            String lastModifiedTimeInstance;
                            lastModifiedTimeInstance = lastModifiedTimeElement.getTextContent();
                            deploymentInstance.setLastModifiedTime(lastModifiedTimeInstance);
                        }

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

                        Element extendedPropertiesSequenceElement = XmlUtility.getElementByTagNameNS(
                                deploymentsElement, "http://schemas.microsoft.com/windowsazure",
                                "ExtendedProperties");
                        if (extendedPropertiesSequenceElement != null) {
                            for (int i33 = 0; i33 < com.microsoft.windowsazure.core.utils.XmlUtility
                                    .getElementsByTagNameNS(extendedPropertiesSequenceElement,
                                            "http://schemas.microsoft.com/windowsazure", "ExtendedProperty")
                                    .size(); i33 = i33 + 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(i33));
                                String extendedPropertiesKey = XmlUtility
                                        .getElementByTagNameNS(extendedPropertiesElement,
                                                "http://schemas.microsoft.com/windowsazure", "Name")
                                        .getTextContent();
                                String extendedPropertiesValue = XmlUtility
                                        .getElementByTagNameNS(extendedPropertiesElement,
                                                "http://schemas.microsoft.com/windowsazure", "Value")
                                        .getTextContent();
                                deploymentInstance.getExtendedProperties().put(extendedPropertiesKey,
                                        extendedPropertiesValue);
                            }
                        }

                        Element persistentVMDowntimeElement = XmlUtility.getElementByTagNameNS(
                                deploymentsElement, "http://schemas.microsoft.com/windowsazure",
                                "PersistentVMDowntime");
                        if (persistentVMDowntimeElement != null) {
                            PersistentVMDowntime persistentVMDowntimeInstance = new PersistentVMDowntime();
                            deploymentInstance.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(deploymentsElement,
                                "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();
                                deploymentInstance.getVirtualIPAddresses().add(virtualIPInstance);

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

                                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 nameElement12 = XmlUtility.getElementByTagNameNS(virtualIPsElement,
                                        "http://schemas.microsoft.com/windowsazure", "Name");
                                if (nameElement12 != null) {
                                    String nameInstance12;
                                    nameInstance12 = nameElement12.getTextContent();
                                    virtualIPInstance.setName(nameInstance12);
                                }

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

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

                            Element dnsServersSequenceElement = XmlUtility.getElementByTagNameNS(dnsElement,
                                    "http://schemas.microsoft.com/windowsazure", "DnsServers");
                            if (dnsServersSequenceElement != null) {
                                for (int i35 = 0; i35 < com.microsoft.windowsazure.core.utils.XmlUtility
                                        .getElementsByTagNameNS(dnsServersSequenceElement,
                                                "http://schemas.microsoft.com/windowsazure", "DnsServer")
                                        .size(); i35 = i35 + 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(i35));
                                    DnsServer dnsServerInstance = new DnsServer();
                                    dnsInstance.getDnsServers().add(dnsServerInstance);

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

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

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

                Element serviceNameElement = XmlUtility.getElementByTagNameNS(hostedServiceElement,
                        "http://schemas.microsoft.com/windowsazure", "ServiceName");
                if (serviceNameElement != null) {
                    String serviceNameInstance;
                    serviceNameInstance = serviceNameElement.getTextContent();
                    result.setServiceName(serviceNameInstance);
                }

                Element hostedServicePropertiesElement = XmlUtility.getElementByTagNameNS(hostedServiceElement,
                        "http://schemas.microsoft.com/windowsazure", "HostedServiceProperties");
                if (hostedServicePropertiesElement != null) {
                    HostedServiceProperties hostedServicePropertiesInstance = new HostedServiceProperties();
                    result.setProperties(hostedServicePropertiesInstance);

                    Element descriptionElement2 = XmlUtility.getElementByTagNameNS(
                            hostedServicePropertiesElement, "http://schemas.microsoft.com/windowsazure",
                            "Description");
                    if (descriptionElement2 != null) {
                        String descriptionInstance2;
                        descriptionInstance2 = descriptionElement2.getTextContent();
                        hostedServicePropertiesInstance.setDescription(descriptionInstance2);
                    }

                    Element affinityGroupElement = XmlUtility.getElementByTagNameNS(
                            hostedServicePropertiesElement, "http://schemas.microsoft.com/windowsazure",
                            "AffinityGroup");
                    if (affinityGroupElement != null) {
                        String affinityGroupInstance;
                        affinityGroupInstance = affinityGroupElement.getTextContent();
                        hostedServicePropertiesInstance.setAffinityGroup(affinityGroupInstance);
                    }

                    Element locationElement = XmlUtility.getElementByTagNameNS(hostedServicePropertiesElement,
                            "http://schemas.microsoft.com/windowsazure", "Location");
                    if (locationElement != null) {
                        String locationInstance;
                        locationInstance = locationElement.getTextContent();
                        hostedServicePropertiesInstance.setLocation(locationInstance);
                    }

                    Element labelElement3 = XmlUtility.getElementByTagNameNS(hostedServicePropertiesElement,
                            "http://schemas.microsoft.com/windowsazure", "Label");
                    if (labelElement3 != null) {
                        String labelInstance3;
                        labelInstance3 = labelElement3.getTextContent() != null
                                ? new String(Base64.decode(labelElement3.getTextContent()))
                                : null;
                        hostedServicePropertiesInstance.setLabel(labelInstance3);
                    }

                    Element statusElement7 = XmlUtility.getElementByTagNameNS(hostedServicePropertiesElement,
                            "http://schemas.microsoft.com/windowsazure", "Status");
                    if (statusElement7 != null && statusElement7.getTextContent() != null
                            && !statusElement7.getTextContent().isEmpty()) {
                        HostedServiceStatus statusInstance7;
                        statusInstance7 = HostedServiceStatus.valueOf(statusElement7.getTextContent());
                        hostedServicePropertiesInstance.setStatus(statusInstance7);
                    }

                    Element dateCreatedElement = XmlUtility.getElementByTagNameNS(
                            hostedServicePropertiesElement, "http://schemas.microsoft.com/windowsazure",
                            "DateCreated");
                    if (dateCreatedElement != null) {
                        Calendar dateCreatedInstance;
                        dateCreatedInstance = DatatypeConverter
                                .parseDateTime(dateCreatedElement.getTextContent());
                        hostedServicePropertiesInstance.setDateCreated(dateCreatedInstance);
                    }

                    Element dateLastModifiedElement = XmlUtility.getElementByTagNameNS(
                            hostedServicePropertiesElement, "http://schemas.microsoft.com/windowsazure",
                            "DateLastModified");
                    if (dateLastModifiedElement != null) {
                        Calendar dateLastModifiedInstance;
                        dateLastModifiedInstance = DatatypeConverter
                                .parseDateTime(dateLastModifiedElement.getTextContent());
                        hostedServicePropertiesInstance.setDateLastModified(dateLastModifiedInstance);
                    }

                    Element extendedPropertiesSequenceElement2 = XmlUtility.getElementByTagNameNS(
                            hostedServicePropertiesElement, "http://schemas.microsoft.com/windowsazure",
                            "ExtendedProperties");
                    if (extendedPropertiesSequenceElement2 != null) {
                        for (int i36 = 0; i36 < com.microsoft.windowsazure.core.utils.XmlUtility
                                .getElementsByTagNameNS(extendedPropertiesSequenceElement2,
                                        "http://schemas.microsoft.com/windowsazure", "ExtendedProperty")
                                .size(); i36 = i36 + 1) {
                            org.w3c.dom.Element extendedPropertiesElement2 = ((org.w3c.dom.Element) com.microsoft.windowsazure.core.utils.XmlUtility
                                    .getElementsByTagNameNS(extendedPropertiesSequenceElement2,
                                            "http://schemas.microsoft.com/windowsazure", "ExtendedProperty")
                                    .get(i36));
                            String extendedPropertiesKey2 = XmlUtility
                                    .getElementByTagNameNS(extendedPropertiesElement2,
                                            "http://schemas.microsoft.com/windowsazure", "Name")
                                    .getTextContent();
                            String extendedPropertiesValue2 = XmlUtility
                                    .getElementByTagNameNS(extendedPropertiesElement2,
                                            "http://schemas.microsoft.com/windowsazure", "Value")
                                    .getTextContent();
                            hostedServicePropertiesInstance.getExtendedProperties().put(extendedPropertiesKey2,
                                    extendedPropertiesValue2);
                        }
                    }

                    Element reverseDnsFqdnElement = XmlUtility.getElementByTagNameNS(
                            hostedServicePropertiesElement, "http://schemas.microsoft.com/windowsazure",
                            "ReverseDnsFqdn");
                    if (reverseDnsFqdnElement != null) {
                        String reverseDnsFqdnInstance;
                        reverseDnsFqdnInstance = reverseDnsFqdnElement.getTextContent();
                        hostedServicePropertiesInstance.setReverseDnsFqdn(reverseDnsFqdnInstance);
                    }
                }

                Element computeCapabilitiesElement = XmlUtility.getElementByTagNameNS(hostedServiceElement,
                        "http://schemas.microsoft.com/windowsazure", "ComputeCapabilities");
                if (computeCapabilitiesElement != null) {
                    ComputeCapabilities computeCapabilitiesInstance = new ComputeCapabilities();
                    result.setComputeCapabilities(computeCapabilitiesInstance);

                    Element virtualMachinesRoleSizesSequenceElement = XmlUtility.getElementByTagNameNS(
                            computeCapabilitiesElement, "http://schemas.microsoft.com/windowsazure",
                            "VirtualMachinesRoleSizes");
                    if (virtualMachinesRoleSizesSequenceElement != null) {
                        for (int i37 = 0; i37 < com.microsoft.windowsazure.core.utils.XmlUtility
                                .getElementsByTagNameNS(virtualMachinesRoleSizesSequenceElement,
                                        "http://schemas.microsoft.com/windowsazure", "RoleSize")
                                .size(); i37 = i37 + 1) {
                            org.w3c.dom.Element virtualMachinesRoleSizesElement = ((org.w3c.dom.Element) com.microsoft.windowsazure.core.utils.XmlUtility
                                    .getElementsByTagNameNS(virtualMachinesRoleSizesSequenceElement,
                                            "http://schemas.microsoft.com/windowsazure", "RoleSize")
                                    .get(i37));
                            computeCapabilitiesInstance.getVirtualMachinesRoleSizes()
                                    .add(virtualMachinesRoleSizesElement.getTextContent());
                        }
                    }

                    Element webWorkerRoleSizesSequenceElement = XmlUtility.getElementByTagNameNS(
                            computeCapabilitiesElement, "http://schemas.microsoft.com/windowsazure",
                            "WebWorkerRoleSizes");
                    if (webWorkerRoleSizesSequenceElement != null) {
                        for (int i38 = 0; i38 < com.microsoft.windowsazure.core.utils.XmlUtility
                                .getElementsByTagNameNS(webWorkerRoleSizesSequenceElement,
                                        "http://schemas.microsoft.com/windowsazure", "RoleSize")
                                .size(); i38 = i38 + 1) {
                            org.w3c.dom.Element webWorkerRoleSizesElement = ((org.w3c.dom.Element) com.microsoft.windowsazure.core.utils.XmlUtility
                                    .getElementsByTagNameNS(webWorkerRoleSizesSequenceElement,
                                            "http://schemas.microsoft.com/windowsazure", "RoleSize")
                                    .get(i38));
                            computeCapabilitiesInstance.getWebWorkerRoleSizes()
                                    .add(webWorkerRoleSizesElement.getTextContent());
                        }
                    }
                }
            }

        }
        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 the publish settings information for a web site by
* issuing an HTTP GET request.  (see//from   w  ww .  j a  v  a 2s  . c  o m
* http://msdn.microsoft.com/en-us/library/windowsazure/dn166996.aspx for
* more information)
*
* @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.
* @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 The Get Publish Profile Web Site operation response.
*/
@Override
public WebSiteGetPublishProfileResponse getPublishProfile(String webSpaceName, String webSiteName)
        throws IOException, ServiceException, ParserConfigurationException, SAXException, URISyntaxException {
    // 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, "getPublishProfileAsync", 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 + "/publishxml";
    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
        WebSiteGetPublishProfileResponse result = null;
        // Deserialize Response
        if (statusCode == HttpStatus.SC_OK) {
            InputStream responseContent = httpResponse.getEntity().getContent();
            result = new WebSiteGetPublishProfileResponse();
            DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
            documentBuilderFactory.setNamespaceAware(true);
            DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
            Document responseDoc = documentBuilder.parse(new BOMInputStream(responseContent));

            Element publishDataElement = XmlUtility.getElementByTagNameNS(responseDoc, "", "publishData");
            if (publishDataElement != null) {
                if (publishDataElement != null) {
                    for (int i1 = 0; i1 < com.microsoft.windowsazure.core.utils.XmlUtility
                            .getElementsByTagNameNS(publishDataElement, "", "publishProfile")
                            .size(); i1 = i1 + 1) {
                        org.w3c.dom.Element publishProfilesElement = ((org.w3c.dom.Element) com.microsoft.windowsazure.core.utils.XmlUtility
                                .getElementsByTagNameNS(publishDataElement, "", "publishProfile").get(i1));
                        WebSiteGetPublishProfileResponse.PublishProfile publishProfileInstance = new WebSiteGetPublishProfileResponse.PublishProfile();
                        result.getPublishProfiles().add(publishProfileInstance);

                        Attr profileNameAttribute = publishProfilesElement.getAttributeNodeNS("",
                                "profileName");
                        if (profileNameAttribute != null) {
                            publishProfileInstance.setProfileName(profileNameAttribute.getValue());
                        }

                        Attr publishMethodAttribute = publishProfilesElement.getAttributeNodeNS("",
                                "publishMethod");
                        if (publishMethodAttribute != null) {
                            publishProfileInstance.setPublishMethod(publishMethodAttribute.getValue());
                        }

                        Attr publishUrlAttribute = publishProfilesElement.getAttributeNodeNS("", "publishUrl");
                        if (publishUrlAttribute != null) {
                            publishProfileInstance.setPublishUrl(publishUrlAttribute.getValue());
                        }

                        Attr msdeploySiteAttribute = publishProfilesElement.getAttributeNodeNS("",
                                "msdeploySite");
                        if (msdeploySiteAttribute != null) {
                            publishProfileInstance.setMSDeploySite(msdeploySiteAttribute.getValue());
                        }

                        Attr ftpPassiveModeAttribute = publishProfilesElement.getAttributeNodeNS("",
                                "ftpPassiveMode");
                        if (ftpPassiveModeAttribute != null) {
                            publishProfileInstance.setFtpPassiveMode(DatatypeConverter
                                    .parseBoolean(ftpPassiveModeAttribute.getValue().toLowerCase()));
                        }

                        Attr userNameAttribute = publishProfilesElement.getAttributeNodeNS("", "userName");
                        if (userNameAttribute != null) {
                            publishProfileInstance.setUserName(userNameAttribute.getValue());
                        }

                        Attr userPWDAttribute = publishProfilesElement.getAttributeNodeNS("", "userPWD");
                        if (userPWDAttribute != null) {
                            publishProfileInstance.setUserPassword(userPWDAttribute.getValue());
                        }

                        Attr destinationAppUrlAttribute = publishProfilesElement.getAttributeNodeNS("",
                                "destinationAppUrl");
                        if (destinationAppUrlAttribute != null) {
                            publishProfileInstance
                                    .setDestinationAppUri(new URI(destinationAppUrlAttribute.getValue()));
                        }

                        Attr sQLServerDBConnectionStringAttribute = publishProfilesElement
                                .getAttributeNodeNS("", "SQLServerDBConnectionString");
                        if (sQLServerDBConnectionStringAttribute != null) {
                            publishProfileInstance.setSqlServerConnectionString(
                                    sQLServerDBConnectionStringAttribute.getValue());
                        }

                        Attr mySQLDBConnectionStringAttribute = publishProfilesElement.getAttributeNodeNS("",
                                "mySQLDBConnectionString");
                        if (mySQLDBConnectionStringAttribute != null) {
                            publishProfileInstance
                                    .setMySqlConnectionString(mySQLDBConnectionStringAttribute.getValue());
                        }

                        Attr hostingProviderForumLinkAttribute = publishProfilesElement.getAttributeNodeNS("",
                                "hostingProviderForumLink");
                        if (hostingProviderForumLinkAttribute != null) {
                            publishProfileInstance.setHostingProviderForumUri(
                                    new URI(hostingProviderForumLinkAttribute.getValue()));
                        }

                        Attr controlPanelLinkAttribute = publishProfilesElement.getAttributeNodeNS("",
                                "controlPanelLink");
                        if (controlPanelLinkAttribute != null) {
                            publishProfileInstance
                                    .setControlPanelUri(new URI(controlPanelLinkAttribute.getValue()));
                        }

                        Element databasesSequenceElement = XmlUtility
                                .getElementByTagNameNS(publishProfilesElement, "", "databases");
                        if (databasesSequenceElement != null) {
                            for (int i2 = 0; i2 < com.microsoft.windowsazure.core.utils.XmlUtility
                                    .getElementsByTagNameNS(databasesSequenceElement, "", "add")
                                    .size(); i2 = i2 + 1) {
                                org.w3c.dom.Element databasesElement = ((org.w3c.dom.Element) com.microsoft.windowsazure.core.utils.XmlUtility
                                        .getElementsByTagNameNS(databasesSequenceElement, "", "add").get(i2));
                                WebSiteGetPublishProfileResponse.Database addInstance = new WebSiteGetPublishProfileResponse.Database();
                                publishProfileInstance.getDatabases().add(addInstance);

                                Attr nameAttribute = databasesElement.getAttributeNodeNS("", "name");
                                if (nameAttribute != null) {
                                    addInstance.setName(nameAttribute.getValue());
                                }

                                Attr connectionStringAttribute = databasesElement.getAttributeNodeNS("",
                                        "connectionString");
                                if (connectionStringAttribute != null) {
                                    addInstance.setConnectionString(connectionStringAttribute.getValue());
                                }

                                Attr providerNameAttribute = databasesElement.getAttributeNodeNS("",
                                        "providerName");
                                if (providerNameAttribute != null) {
                                    addInstance.setProviderName(providerNameAttribute.getValue());
                                }

                                Attr typeAttribute = databasesElement.getAttributeNodeNS("", "type");
                                if (typeAttribute != null) {
                                    addInstance.setType(typeAttribute.getValue());
                                }
                            }
                        }
                    }
                }
            }

        }
        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

/**
* Determines if a host name is available.
*
* @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./*from  w w w.jav a  2  s .  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 The Is Hostname Available Web Site operation response.
*/
@Override
public WebSiteIsHostnameAvailableResponse isHostnameAvailable(String webSiteName)
        throws IOException, ServiceException, ParserConfigurationException, SAXException {
    // Validate
    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("webSiteName", webSiteName);
        CloudTracing.enter(invocationId, this, "isHostnameAvailableAsync", 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";
    ArrayList<String> queryParameters = new ArrayList<String>();
    queryParameters.add("ishostnameavailable=" + URLEncoder.encode(webSiteName, "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
        WebSiteIsHostnameAvailableResponse result = null;
        // Deserialize Response
        if (statusCode == HttpStatus.SC_OK) {
            InputStream responseContent = httpResponse.getEntity().getContent();
            result = new WebSiteIsHostnameAvailableResponse();
            DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
            documentBuilderFactory.setNamespaceAware(true);
            DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
            Document responseDoc = documentBuilder.parse(new BOMInputStream(responseContent));

            Element booleanElement = XmlUtility.getElementByTagNameNS(responseDoc,
                    "http://schemas.microsoft.com/2003/10/Serialization/", "boolean");
            if (booleanElement != null) {
                boolean booleanInstance;
                booleanInstance = DatatypeConverter.parseBoolean(booleanElement.getTextContent().toLowerCase());
                result.setIsAvailable(booleanInstance);
            }

        }
        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.websites.WebSiteOperationsImpl.java

/**
* Retrieve the publish settings information for a web site.  (see
* http://msdn.microsoft.com/en-us/library/windowsazure/dn166996.aspx for
* more information)//from   w  w w.  j av a 2s .c o m
*
* @param resourceGroupName Required. The name of the resource group.
* @param webSiteName Required. The name of the web site.
* @param slotName Optional. The name of the slot.
* @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 The Get Web Site Publish Profile operation response.
*/
@Override
public WebSiteGetPublishProfileResponse getPublishProfile(String resourceGroupName, String webSiteName,
        String slotName)
        throws IOException, ServiceException, ParserConfigurationException, SAXException, URISyntaxException {
    // Validate
    if (resourceGroupName == null) {
        throw new NullPointerException("resourceGroupName");
    }
    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("resourceGroupName", resourceGroupName);
        tracingParameters.put("webSiteName", webSiteName);
        tracingParameters.put("slotName", slotName);
        CloudTracing.enter(invocationId, this, "getPublishProfileAsync", 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.Web";
    url = url + "/";
    url = url + "sites";
    url = url + "/";
    url = url + URLEncoder.encode(webSiteName, "UTF-8");
    if (slotName != null) {
        url = url + "/slots/" + URLEncoder.encode(slotName, "UTF-8");
    }
    url = url + "/publishxml";
    ArrayList<String> queryParameters = new ArrayList<String>();
    queryParameters.add("api-version=" + "2014-06-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/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, null, httpResponse,
                    httpResponse.getEntity());
            if (shouldTrace) {
                CloudTracing.error(invocationId, ex);
            }
            throw ex;
        }

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

            Element publishDataSequenceElement = XmlUtility.getElementByTagNameNS(responseDoc, "",
                    "publishData");
            if (publishDataSequenceElement != null) {
                for (int i1 = 0; i1 < com.microsoft.windowsazure.core.utils.XmlUtility
                        .getElementsByTagNameNS(publishDataSequenceElement, "", "publishProfile")
                        .size(); i1 = i1 + 1) {
                    org.w3c.dom.Element publishDataElement = ((org.w3c.dom.Element) com.microsoft.windowsazure.core.utils.XmlUtility
                            .getElementsByTagNameNS(publishDataSequenceElement, "", "publishProfile").get(i1));
                    WebSiteGetPublishProfileResponse.PublishProfile publishProfileInstance = new WebSiteGetPublishProfileResponse.PublishProfile();
                    result.getPublishProfiles().add(publishProfileInstance);

                    Attr profileNameAttribute = publishDataElement.getAttributeNodeNS("", "profileName");
                    if (profileNameAttribute != null) {
                        publishProfileInstance.setProfileName(profileNameAttribute.getValue());
                    }

                    Attr publishMethodAttribute = publishDataElement.getAttributeNodeNS("", "publishMethod");
                    if (publishMethodAttribute != null) {
                        publishProfileInstance.setPublishMethod(publishMethodAttribute.getValue());
                    }

                    Attr publishUrlAttribute = publishDataElement.getAttributeNodeNS("", "publishUrl");
                    if (publishUrlAttribute != null) {
                        publishProfileInstance.setPublishUrl(publishUrlAttribute.getValue());
                    }

                    Attr msdeploySiteAttribute = publishDataElement.getAttributeNodeNS("", "msdeploySite");
                    if (msdeploySiteAttribute != null) {
                        publishProfileInstance.setMSDeploySite(msdeploySiteAttribute.getValue());
                    }

                    Attr ftpPassiveModeAttribute = publishDataElement.getAttributeNodeNS("", "ftpPassiveMode");
                    if (ftpPassiveModeAttribute != null) {
                        publishProfileInstance.setFtpPassiveMode(DatatypeConverter
                                .parseBoolean(ftpPassiveModeAttribute.getValue().toLowerCase()));
                    }

                    Attr userNameAttribute = publishDataElement.getAttributeNodeNS("", "userName");
                    if (userNameAttribute != null) {
                        publishProfileInstance.setUserName(userNameAttribute.getValue());
                    }

                    Attr userPWDAttribute = publishDataElement.getAttributeNodeNS("", "userPWD");
                    if (userPWDAttribute != null) {
                        publishProfileInstance.setUserPassword(userPWDAttribute.getValue());
                    }

                    Attr destinationAppUrlAttribute = publishDataElement.getAttributeNodeNS("",
                            "destinationAppUrl");
                    if (destinationAppUrlAttribute != null) {
                        publishProfileInstance
                                .setDestinationAppUri(new URI(destinationAppUrlAttribute.getValue()));
                    }

                    Attr sQLServerDBConnectionStringAttribute = publishDataElement.getAttributeNodeNS("",
                            "SQLServerDBConnectionString");
                    if (sQLServerDBConnectionStringAttribute != null) {
                        publishProfileInstance
                                .setSqlServerConnectionString(sQLServerDBConnectionStringAttribute.getValue());
                    }

                    Attr mySQLDBConnectionStringAttribute = publishDataElement.getAttributeNodeNS("",
                            "mySQLDBConnectionString");
                    if (mySQLDBConnectionStringAttribute != null) {
                        publishProfileInstance
                                .setMySqlConnectionString(mySQLDBConnectionStringAttribute.getValue());
                    }

                    Attr hostingProviderForumLinkAttribute = publishDataElement.getAttributeNodeNS("",
                            "hostingProviderForumLink");
                    if (hostingProviderForumLinkAttribute != null) {
                        publishProfileInstance.setHostingProviderForumUri(
                                new URI(hostingProviderForumLinkAttribute.getValue()));
                    }

                    Attr controlPanelLinkAttribute = publishDataElement.getAttributeNodeNS("",
                            "controlPanelLink");
                    if (controlPanelLinkAttribute != null) {
                        publishProfileInstance
                                .setControlPanelUri(new URI(controlPanelLinkAttribute.getValue()));
                    }

                    Element databasesSequenceElement = XmlUtility.getElementByTagNameNS(publishDataElement, "",
                            "databases");
                    if (databasesSequenceElement != null) {
                        for (int i2 = 0; i2 < com.microsoft.windowsazure.core.utils.XmlUtility
                                .getElementsByTagNameNS(databasesSequenceElement, "", "add")
                                .size(); i2 = i2 + 1) {
                            org.w3c.dom.Element databasesElement = ((org.w3c.dom.Element) com.microsoft.windowsazure.core.utils.XmlUtility
                                    .getElementsByTagNameNS(databasesSequenceElement, "", "add").get(i2));
                            WebSiteGetPublishProfileResponse.Database addInstance = new WebSiteGetPublishProfileResponse.Database();
                            publishProfileInstance.getDatabases().add(addInstance);

                            Attr nameAttribute = databasesElement.getAttributeNodeNS("", "name");
                            if (nameAttribute != null) {
                                addInstance.setName(nameAttribute.getValue());
                            }

                            Attr connectionStringAttribute = databasesElement.getAttributeNodeNS("",
                                    "connectionString");
                            if (connectionStringAttribute != null) {
                                addInstance.setConnectionString(connectionStringAttribute.getValue());
                            }

                            Attr providerNameAttribute = databasesElement.getAttributeNodeNS("",
                                    "providerName");
                            if (providerNameAttribute != null) {
                                addInstance.setProviderName(providerNameAttribute.getValue());
                            }

                            Attr typeAttribute = databasesElement.getAttributeNodeNS("", "type");
                            if (typeAttribute != null) {
                                addInstance.setType(typeAttribute.getValue());
                            }
                        }
                    }
                }
            }

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