![JAR search and dependency download from the Maven repository](/logo.png)
net.intelie.liverig.witsml.query.MudLogQuery Maven / Gradle / Ivy
The newest version!
package net.intelie.liverig.witsml.query;
import net.intelie.liverig.parser.ParseException;
import net.intelie.liverig.witsml.WITSMLResult;
import net.intelie.liverig.witsml.objects.GeologyInterval;
import net.intelie.liverig.witsml.objects.LogDepthIndex;
import net.intelie.liverig.witsml.objects.MudLogData;
import net.intelie.liverig.witsml.objects.MudLogHeader;
import java.util.List;
import java.util.Map;
import java.util.Objects;
public interface MudLogQuery extends RawDataQuery {
MudLogData parse(WITSMLResult witsmlResult) throws ParseException;
class Parser extends AbstractParser {
private final MudLogData result;
public Parser(MudLogData result) {
this.result = result;
}
static MudLogHeader getHeader(Map object) {
MudLogHeader header = new MudLogHeader();
header.setUidWell(getString(object, "uidWell"));
header.setUidWellbore(getString(object, "uidWellbore"));
header.setUid(getString(object, "uid"));
header.setNameWell(getString(object, "nameWell"));
header.setNameWellbore(getString(object, "nameWellbore"));
header.setName(getString(object, "name"));
LogDepthIndex depth = new LogDepthIndex();
depth.setStartIndex(getDouble(getMapOrValue(object, "startMd"), "value"));
depth.setStartIndexUom(getString(getMapOrValue(object, "startMd"), "uom"));
depth.setStartIndexDatum(getString(getMapOrValue(object, "startMd"), "datum"));
depth.setEndIndex(getDouble(getMapOrValue(object, "endMd"), "value"));
depth.setEndIndexUom(getString(getMapOrValue(object, "endMd"), "uom"));
depth.setEndIndexDatum(getString(getMapOrValue(object, "endMd"), "datum"));
header.setDepth(depth);
return header;
}
@Override
protected void event(Map object, Map data) {
if (!"mudLog".equals(object.get("object")))
return;
MudLogHeader header = result.getHeader();
if (header == null) {
header = getHeader(object);
result.setHeader(header);
} else {
if (!Objects.equals(header.getUidWell(), getString(object, "uidWell")))
return;
if (!Objects.equals(header.getUidWellbore(), getString(object, "uidWellbore")))
return;
if (!Objects.equals(header.getUid(), getString(object, "uid")))
return;
}
List geologyIntervals = result.getData();
if (geologyIntervals != null) {
GeologyInterval geologyInterval = new GeologyInterval();
geologyInterval.setUid(getString(data, "uid"));
geologyInterval.setMdTop(getDouble(getMapOrValue(data, "mdTop"), "value"));
geologyInterval.setMdTopUom(getString(getMapOrValue(data, "mdTop"), "uom"));
geologyInterval.setMdTopDatum(getString(getMapOrValue(data, "mdTop"), "datum"));
geologyInterval.setMdBottom(getDouble(getMapOrValue(data, "mdBottom"), "value"));
geologyInterval.setMdBottomUom(getString(getMapOrValue(data, "mdBottom"), "uom"));
geologyInterval.setMdBottomDatum(getString(getMapOrValue(data, "mdBottom"), "datum"));
geologyIntervals.add(geologyInterval);
}
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy