![JAR search and dependency download from the Maven repository](/logo.png)
net.intelie.liverig.witsml.query.AbstractLogQuery131 Maven / Gradle / Ivy
The newest version!
package net.intelie.liverig.witsml.query;
import com.google.common.base.Preconditions;
import com.google.common.base.Strings;
import net.intelie.liverig.witsml.HeaderElements;
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 AbstractLogQuery131 extends AbstractQuery131 {
private final String uidWell;
private final String uidWellbore;
private final String uid;
private final WitsmlFilters filters;
private final LogRange range;
private final HeaderElements header;
private final boolean logData;
AbstractLogQuery131(String uidWell, String uidWellbore, String uid, WitsmlFilters filters, LogRange range, HeaderElements header,
boolean logData) {
Preconditions.checkArgument(header.hasIndex() || range == null);
this.uidWell = uidWell;
this.uidWellbore = uidWellbore;
this.uid = uid;
this.filters = filters;
this.range = range;
this.header = header;
this.logData = logData;
}
boolean hasLogData() {
return logData;
}
@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));
writer.writeEmptyElement(WITSML_NS, "nameWell");
writer.writeEmptyElement(WITSML_NS, "nameWellbore");
writer.writeEmptyElement(WITSML_NS, "name");
addFilter(writer, WITSML_NS, "objectGrowing", filters.objectGrowing());
if (header.hasShortHeader()) {
if (Strings.isNullOrEmpty(filters.objectGrowing()))
writer.writeEmptyElement(WITSML_NS, "objectGrowing");
writer.writeEmptyElement(WITSML_NS, "dataRowCount");
writer.writeEmptyElement(WITSML_NS, "serviceCompany");
writer.writeEmptyElement(WITSML_NS, "runNumber");
writer.writeEmptyElement(WITSML_NS, "bhaRunNumber");
writer.writeEmptyElement(WITSML_NS, "pass");
writer.writeEmptyElement(WITSML_NS, "creationDate");
writer.writeEmptyElement(WITSML_NS, "description");
}
if (header.hasIndex()) {
LogIndex index = range instanceof LogIndex ? (LogIndex) range : new LogIndex();
LogDateTimeIndex dateTimeIndex = range instanceof LogDateTimeIndex ? (LogDateTimeIndex) range : new LogDateTimeIndex();
if (range instanceof LogIndex && index.getIndexType() != null) {
writer.writeStartElement(WITSML_NS, "indexType");
writer.writeCharacters(index.getIndexType().toString());
writer.writeEndElement();
} else if (range instanceof LogDateTimeIndex) {
writer.writeStartElement(WITSML_NS, "indexType");
writer.writeCharacters("date time");
writer.writeEndElement();
} else {
writer.writeEmptyElement(WITSML_NS, "indexType");
}
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();
writer.writeStartElement(WITSML_NS, "stepIncrement");
writer.writeAttribute("uom", range != null ? Strings.nullToEmpty(range.getStepIncrementUom()) : "");
writer.writeAttribute("numerator", "");
writer.writeAttribute("denominator", "");
if (range != null && range.getStepIncrement() != null)
writer.writeCharacters(String.valueOf(range.getStepIncrement()));
writer.writeEndElement();
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();
}
if (header.hasShortHeader()) {
writer.writeEmptyElement(WITSML_NS, "direction");
writer.writeEmptyElement(WITSML_NS, "indexCurve");
writer.writeAttribute("columnIndex", "");
writer.writeEmptyElement(WITSML_NS, "nullValue");
writer.writeEmptyElement(WITSML_NS, "logParam");
writer.writeAttribute("index", "");
writer.writeAttribute("name", "");
writer.writeAttribute("uom", "");
writer.writeAttribute("description", "");
}
if (header.hasFullHeader()) {
writer.writeStartElement(WITSML_NS, "logCurveInfo");
writer.writeAttribute("uid", "");
writer.writeEmptyElement(WITSML_NS, "mnemonic");
writer.writeEmptyElement(WITSML_NS, "classWitsml");
writer.writeEmptyElement(WITSML_NS, "unit");
writer.writeEmptyElement(WITSML_NS, "mnemAlias");
writer.writeEmptyElement(WITSML_NS, "nullValue");
writer.writeEmptyElement(WITSML_NS, "alternateIndex");
writer.writeEmptyElement(WITSML_NS, "wellDatum");
writer.writeAttribute("uidRef", "");
writer.writeEmptyElement(WITSML_NS, "minIndex");
writer.writeAttribute("uom", "");
writer.writeEmptyElement(WITSML_NS, "maxIndex");
writer.writeAttribute("uom", "");
writer.writeEmptyElement(WITSML_NS, "minDateTimeIndex");
writer.writeEmptyElement(WITSML_NS, "maxDateTimeIndex");
writer.writeEmptyElement(WITSML_NS, "columnIndex");
writer.writeEmptyElement(WITSML_NS, "curveDescription");
writer.writeEmptyElement(WITSML_NS, "sensorOffset");
writer.writeAttribute("uom", "");
writer.writeEmptyElement(WITSML_NS, "dataSource");
writer.writeEmptyElement(WITSML_NS, "densData");
writer.writeAttribute("uom", "");
writer.writeEmptyElement(WITSML_NS, "traceState");
writer.writeEmptyElement(WITSML_NS, "traceOrigin");
writer.writeEmptyElement(WITSML_NS, "typeLogData");
writer.writeStartElement(WITSML_NS, "axisDefinition");
writer.writeAttribute("uid", "");
writer.writeEmptyElement(WITSML_NS, "order");
writer.writeEmptyElement(WITSML_NS, "count");
writer.writeEmptyElement(WITSML_NS, "name");
writer.writeEmptyElement(WITSML_NS, "propertyType");
writer.writeEmptyElement(WITSML_NS, "uom");
writer.writeEndElement();
writer.writeEndElement();
}
if (logData) {
writer.writeStartElement(WITSML_NS, "logData");
writer.writeEmptyElement(WITSML_NS, "data");
writer.writeEndElement();
}
if (header.hasShortHeader()) {
writeCommonData(writer);
writer.writeEmptyElement(WITSML_NS, "customData");
}
writer.writeEndElement();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy