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

net.intelie.liverig.witsml.query.MessageQuery 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.MessageData;
import net.intelie.liverig.witsml.objects.MessageHeader;

import java.util.Map;
import java.util.Objects;

public interface MessageQuery extends RawDataQuery {
    MessageData parse(WITSMLResult witsmlResult) throws ParseException;

    class Parser extends AbstractParser {
        private final MessageData result;

        public Parser(MessageData result) {
            this.result = result;
        }

        static MessageHeader getHeader(Map object) {
            MessageHeader header = new MessageHeader();

            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"));

            return header;
        }

        @Override
        protected void event(Map object, Map data) {
            if (!"message".equals(object.get("object")))
                return;

            MessageHeader 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;
            }
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy