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

net.intelie.liverig.witsml.objects.CapClient Maven / Gradle / Ivy

The newest version!
package net.intelie.liverig.witsml.objects;

import com.google.common.base.Preconditions;
import net.intelie.liverig.util.XMLOutputFactoryFactory;
import net.intelie.liverig.util.XMLStreamWriterAutoCloseable;

import javax.xml.stream.XMLStreamException;
import javax.xml.stream.XMLStreamWriter;
import java.io.StringWriter;

public class CapClient {
    private final ApiVers apiVers;
    private String name;
    private String vendor;
    private String version;

    public CapClient(ApiVers apiVers) {
        this.apiVers = Preconditions.checkNotNull(apiVers);
    }

    public ApiVers getApiVers() {
        return apiVers;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        Preconditions.checkArgument(name == null || name.length() <= 64);
        this.name = name;
    }

    public String getVendor() {
        return vendor;
    }

    public void setVendor(String vendor) {
        Preconditions.checkArgument(vendor == null || vendor.length() <= 64);
        this.vendor = vendor;
    }

    public String getVersion() {
        return version;
    }

    public void setVersion(String version) {
        Preconditions.checkArgument(version == null || version.length() <= 64);
        this.version = version;
    }

    @Override
    public String toString() {
        final String namespace = apiVers.getNamespace();
        StringWriter sw = new StringWriter();
        try (XMLStreamWriterAutoCloseable ac = XMLOutputFactoryFactory.createXMLStreamWriter(sw)) {
            XMLStreamWriter writer = ac.get();
            writer.setDefaultNamespace(namespace);
            writer.writeStartElement(namespace, "capClients");
            writer.writeDefaultNamespace(namespace);
            writer.writeAttribute("version", apiVers.toString());
            writer.writeStartElement(namespace, "capClient");
            writer.writeAttribute("apiVers", apiVers.toString());
            writeSimpleElement(writer, namespace, "name", name);
            writeSimpleElement(writer, namespace, "vendor", vendor);
            writeSimpleElement(writer, namespace, "version", version);
            writeSimpleElement(writer, namespace, "schemaVersion", "1.3.1.1,1.4.1.1");
            writer.writeEndDocument();
        } catch (XMLStreamException e) {
            throw new RuntimeException(e);
        }
        return sw.toString();
    }

    private static void writeSimpleElement(XMLStreamWriter writer, String namespace, String name, String value) throws XMLStreamException {
        if (value != null) {
            writer.writeStartElement(namespace, name);
            writer.writeCharacters(value);
            writer.writeEndElement();
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy