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

net.intelie.liverig.witsml.query.AbstractLogQuery141 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.LogDateTimeIndex;
import net.intelie.liverig.witsml.objects.LogIndex;
import net.intelie.liverig.witsml.objects.LogRange;

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

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

abstract class AbstractLogQuery141 extends AbstractQuery141 {
    private final String uidWell;
    private final String uidWellbore;
    private final String uid;
    private final WitsmlFilters filters;
    private final LogRange range;

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

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

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

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

        if (range instanceof LogIndex) {

            LogIndex index = (LogIndex) range;

            if (index.getIndexType() != null) {
                writer.writeStartElement(WITSML_NS, "indexType");
                writer.writeCharacters(index.getIndexType().toString());
                writer.writeEndElement();
            }

            writer.writeStartElement(WITSML_NS, "startIndex");
            writer.writeAttribute("uom", Strings.nullToEmpty(index.getStartIndexUom()));
            writer.writeCharacters(index.getStartIndex() != null ? index.getStartIndex().toString() : "");
            writer.writeEndElement();
            writer.writeStartElement(WITSML_NS, "endIndex");
            writer.writeAttribute("uom", Strings.nullToEmpty(index.getEndIndexUom()));
            writer.writeCharacters(index.getEndIndex() != null ? index.getEndIndex().toString() : "");
            writer.writeEndElement();
        } else if (range instanceof LogDateTimeIndex) {
            writer.writeStartElement(WITSML_NS, "indexType");
            writer.writeCharacters("date time");
            writer.writeEndElement();
        }

        if (range != null && (range.getStepIncrement() != null || range.getStepIncrementUom() != null)) {
            writer.writeStartElement(WITSML_NS, "stepIncrement");
            writer.writeAttribute("uom", Strings.nullToEmpty(range.getStepIncrementUom()));
            if (range.getStepIncrement() != null)
                writer.writeCharacters(String.valueOf(range.getStepIncrement()));
            writer.writeEndElement();
        }

        if (range instanceof LogDateTimeIndex) {
            LogDateTimeIndex dateTimeIndex = (LogDateTimeIndex) range;

            writer.writeStartElement(WITSML_NS, "startDateTimeIndex");
            writer.writeCharacters(Strings.nullToEmpty(dateTimeIndex.getStartDateTimeIndex()));
            writer.writeEndElement();
            writer.writeStartElement(WITSML_NS, "endDateTimeIndex");
            writer.writeCharacters(Strings.nullToEmpty(dateTimeIndex.getEndDateTimeIndex()));
            writer.writeEndElement();
        }

        writer.writeEndElement();
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy