static InsecureFileBackend fromXml()

in common/src/main/java/com/microsoft/alm/storage/InsecureFileBackend.java [116:151]


    static InsecureFileBackend fromXml(final InputStream source) {
        try {
            final InsecureFileBackend result = new InsecureFileBackend(null);
            final DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
            final DocumentBuilder builder = dbf.newDocumentBuilder();
            final Document document = builder.parse(source);
            final Element insecureStoreElement = document.getDocumentElement();

            final NodeList tokensOrCredentialsList = insecureStoreElement.getChildNodes();
            for (int toc = 0; toc < tokensOrCredentialsList.getLength(); toc++) {
                final Node tokensOrCredentials = tokensOrCredentialsList.item(toc);
                if (tokensOrCredentials.getNodeType() != Node.ELEMENT_NODE)
                    continue;
                if ("Tokens".equals(tokensOrCredentials.getNodeName())) {
                    result.Tokens.clear();
                } else if ("Credentials".equals(tokensOrCredentials.getNodeName())) {
                    result.Credentials.clear();
                } else continue;
                final NodeList entryList = tokensOrCredentials.getChildNodes();
                for (int e = 0; e < entryList.getLength(); e++) {
                    final Node entryNode = entryList.item(e);
                    if (entryNode.getNodeType() != Node.ELEMENT_NODE || !"entry".equals(entryNode.getNodeName()))
                        continue;
                    if ("Tokens".equals(tokensOrCredentials.getNodeName())) {
                        loadToken(result, entryNode);
                    } else if ("Credentials".equals(tokensOrCredentials.getNodeName())) {
                        loadCredential(result, entryNode);
                    }
                }
            }
            return result;
        } catch (final Exception e) {
            logError(logger, "Warning: unable to deserialize InsecureFileBackend. Is the file corrupted?", e);
            return null;
        }
    }