All Downloads are FREE. Search and download functionalities are using the official Maven repository.

software.amazon.awssdk.protocols.xml.internal.marshall.XmlGenerator Maven / Gradle / Ivy

The newest version!
/*
 * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License").
 * You may not use this file except in compliance with the License.
 * A copy of the License is located at
 *
 *  http://aws.amazon.com/apache2.0
 *
 * or in the "license" file accompanying this file. This file is distributed
 * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
 * express or implied. See the License for the specific language governing
 * permissions and limitations under the License.
 */

package software.amazon.awssdk.protocols.xml.internal.marshall;

import java.io.StringWriter;
import java.util.Map;
import software.amazon.awssdk.annotations.SdkInternalApi;

/**
 * Wrapper around the {@link XmlWriter} for marshalling requests for XML protocol
 */
@SdkInternalApi
public final class XmlGenerator {

    private final StringWriter stringWriter;
    private final XmlWriter xmlWriter;

    private XmlGenerator(StringWriter stringWriter, XmlWriter xmlWriter) {
        this.stringWriter = stringWriter;
        this.xmlWriter = xmlWriter;
    }

    public static XmlGenerator create(String xmlns, boolean isS3) {
        StringWriter stringWriter = new StringWriter();
        XmlWriter xmlWriter = isS3 ? new S3XmlWriter(stringWriter, xmlns) : new XmlWriter(stringWriter, xmlns);
        return new XmlGenerator(stringWriter, xmlWriter);
    }

    public XmlWriter xmlWriter() {
        return xmlWriter;
    }

    public StringWriter stringWriter() {
        return stringWriter;
    }

    public void startElement(String element) {
        xmlWriter.startElement(element);
    }

    /**
     * Start to write the element
     *
     * @param element the element to write
     * @param attributes the attributes
     */
    public void  startElement(String element, Map attributes) {
        xmlWriter.startElement(element, attributes);
    }

    public void endElement() {
        xmlWriter.endElement();
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy