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

net.intelie.liverig.witsml.etp.ETPMessageFactory Maven / Gradle / Ivy

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

import Energistics.Datatypes.MessageHeader;
import Energistics.Datatypes.Protocols;
import Energistics.Datatypes.SupportedProtocol;
import Energistics.Datatypes.Version;
import Energistics.Protocol.Core.RequestSession;
import net.intelie.liverig.witsml.etp.protocol.MessageFlags;
import net.intelie.liverig.witsml.etp.protocol.MessageTypes;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.concurrent.atomic.AtomicLong;

class ETPMessageFactory {

    private AtomicLong nextMessageId = new AtomicLong(1);

    MessageHeader discoverMessage() {
        return MessageHeader
                .newBuilder()
                .setMessageType(1)
                .setProtocol(Protocols.Discovery.ordinal())
                .setCorrelationId(0)
                .setMessageId(nextMessageId.getAndIncrement())
                .setMessageFlags(MessageFlags.None.ordinal())
                .build();
    }

    MessageHeader objectMessage() {
        return MessageHeader
                .newBuilder()
                .setProtocol(Protocols.Store.ordinal())
                .setMessageType(MessageTypes.Store.GetObject)
                .setCorrelationId(0)
                .setMessageId(nextMessageId.getAndIncrement())
                .setMessageFlags(MessageFlags.FinalPart.getValue())
                .build();
    }

    MessageHeader requestSessionMessage() {
        return MessageHeader
                .newBuilder()
                .setMessageType(MessageTypes.Core.RequestSession)
                .setProtocol(Protocols.Core.ordinal())
                .setCorrelationId(0)
                .setMessageId(nextMessageId.getAndIncrement())
                .setMessageFlags(MessageFlags.None.ordinal())
                .build();
    }

    MessageHeader closeSessionMessage() {
        return MessageHeader
                .newBuilder()
                .setMessageType(MessageTypes.Core.CloseSession)
                .setProtocol(Protocols.Core.ordinal())
                .setCorrelationId(0)
                .setMessageId(nextMessageId.getAndIncrement())
                .setMessageFlags(MessageFlags.None.ordinal())
                .build();
    }

    MessageHeader startMessage() {
        return MessageHeader
                .newBuilder()
                .setMessageType(MessageTypes.ChannelStreaming.Start)
                .setProtocol(Protocols.ChannelStreaming.ordinal())
                .setCorrelationId(0)
                .setMessageId(nextMessageId.getAndIncrement())
                .setMessageFlags(MessageFlags.None.ordinal())
                .build();
    }

    MessageHeader channelStreamingStartMessage() {
        return MessageHeader
                .newBuilder()
                .setMessageType(MessageTypes.ChannelStreaming.ChannelStreamingStart)
                .setProtocol(Protocols.ChannelStreaming.ordinal())
                .setCorrelationId(0)
                .setMessageId(nextMessageId.getAndIncrement())
                .setMessageFlags(MessageFlags.None.ordinal())
                .build();
    }

    MessageHeader channelStreamingStopMessage() {
        return MessageHeader
                .newBuilder()
                .setMessageType(MessageTypes.ChannelStreaming.ChannelStreamingStop)
                .setProtocol(Protocols.ChannelStreaming.ordinal())
                .setCorrelationId(0)
                .setMessageId(nextMessageId.getAndIncrement())
                .setMessageFlags(MessageFlags.None.ordinal())
                .build();
    }


    MessageHeader channelRangeRequestMessage() {
        return MessageHeader
                .newBuilder()
                .setMessageType(MessageTypes.ChannelStreaming.ChannelRangeRequest)
                .setProtocol(Protocols.ChannelStreaming.ordinal())
                .setCorrelationId(0)
                .setMessageId(nextMessageId.getAndIncrement())
                .setMessageFlags(MessageFlags.None.ordinal())
                .build();
    }

    MessageHeader channelDescribeMessage() {
        return MessageHeader
                .newBuilder()
                .setMessageType(MessageTypes.ChannelStreaming.ChannelDescribe)
                .setProtocol(Protocols.ChannelStreaming.ordinal())
                .setCorrelationId(0)
                .setMessageId(nextMessageId.getAndIncrement())
                .setMessageFlags(MessageFlags.None.ordinal())
                .build();
    }

    RequestSession getRequestSession(String application, String appVersion) {
        List supportedProtocols = new ArrayList<>();
        Version version = Version
                .newBuilder()
                .setMajor(1)
                .setMinor(1)
                .setRevision(0)
                .setPatch(0)
                .build();

        supportedProtocols
                .add(
                        SupportedProtocol
                                .newBuilder()
                                .setProtocol(1)
                                .setProtocolVersion(
                                        version
                                )
                                .setRole("producer")
                                .setProtocolCapabilities(new HashMap<>())
                                .build()
                );


        supportedProtocols
                .add(
                        SupportedProtocol
                                .newBuilder()
                                .setProtocol(3)
                                .setProtocolVersion(
                                        version
                                )
                                .setRole("store")
                                .setProtocolCapabilities(new HashMap<>())
                                .build()
                );

        supportedProtocols
                .add(
                        SupportedProtocol
                                .newBuilder()
                                .setProtocol(4)
                                .setProtocolVersion(
                                        version
                                )
                                .setRole("store")
                                .setProtocolCapabilities(new HashMap<>())
                                .build()
                );

        supportedProtocols
                .add(
                        SupportedProtocol
                                .newBuilder()
                                .setProtocol(5)
                                .setProtocolVersion(
                                        version
                                )
                                .setRole("store")
                                .setProtocolCapabilities(new HashMap<>())
                                .build()
                );
        supportedProtocols
                .add(
                        SupportedProtocol
                                .newBuilder()
                                .setProtocol(6)
                                .setProtocolVersion(
                                        version
                                )
                                .setRole("store")
                                .setProtocolCapabilities(new HashMap<>())
                                .build()
                );
        return RequestSession
                .newBuilder()
                .setApplicationName(application)
                .setApplicationVersion(appVersion)
                .setRequestedProtocols(supportedProtocols)
                .setSupportedObjects(new ArrayList<>())
                .build();
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy