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

net.intelie.liverig.witsml.query.AbstractTrajectoryQuery141 Maven / Gradle / Ivy

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

import com.google.common.base.Strings;
import net.intelie.liverig.witsml.WitsmlFilters;
import net.intelie.liverig.witsml.objects.LogDepthIndex;
import net.intelie.liverig.witsml.objects.LogIndex;

import javax.xml.stream.XMLStreamException;
import javax.xml.stream.XMLStreamWriter;

import static net.intelie.liverig.witsml.query.QueryUtil.addFilter;

abstract class AbstractTrajectoryQuery141 extends AbstractQuery141 {
    private final String uidWell;
    private final String uidWellbore;
    private final String uid;
    private final WitsmlFilters filters;
    private final LogIndex range;

    AbstractTrajectoryQuery141(String uidWell, String uidWellbore, String uid, WitsmlFilters filters, LogIndex range) {
        this.uidWell = uidWell;
        this.uidWellbore = uidWellbore;
        this.uid = uid;
        this.filters = filters;
        this.range = range;
    }

    @Override
    public String type() {
        return "trajectory";
    }

    @Override
    void query(XMLStreamWriter writer) throws XMLStreamException {
        writeRootElement(writer, "trajectorys");
        writer.writeStartElement(WITSML_NS, "trajectory");
        writer.writeAttribute("uidWell", uidWell);
        writer.writeAttribute("uidWellbore", uidWellbore);
        writer.writeAttribute("uid", Strings.nullToEmpty(uid));

        addFilter(writer, WITSML_NS, "objectGrowing", filters.objectGrowing());

        if (range != null) {
            writer.writeStartElement(WITSML_NS, "mdMn");
            writer.writeAttribute("uom", Strings.nullToEmpty(range.getStartIndexUom()));
            if (range instanceof LogDepthIndex)
                writer.writeAttribute("datum", Strings.nullToEmpty(((LogDepthIndex) range).getStartIndexDatum()));
            writer.writeCharacters(range.getStartIndex() != null ? range.getStartIndex().toString() : "");
            writer.writeEndElement();
            writer.writeStartElement(WITSML_NS, "mdMx");
            writer.writeAttribute("uom", Strings.nullToEmpty(range.getEndIndexUom()));
            if (range instanceof LogDepthIndex)
                writer.writeAttribute("datum", Strings.nullToEmpty(((LogDepthIndex) range).getEndIndexDatum()));
            writer.writeCharacters(range.getEndIndex() != null ? range.getEndIndex().toString() : "");
            writer.writeEndElement();
        }

        writer.writeEndElement();
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy