From 387b6bbcb4481451adeca91fc78bd7e4367016c1 Mon Sep 17 00:00:00 2001 From: Alexander Nozik Date: Thu, 28 Jan 2021 11:04:47 +0300 Subject: [PATCH] Fixed legacy file reading --- build.gradle.kts | 6 +- .../kotlin/ru/inr/mass/data/api/NumassSet.kt | 11 +- .../ru/inr/mass/data/proto/NumassProto.java | 4995 ----------------- .../inr/mass/data/proto/NumassDirectorySet.kt | 9 +- .../inr/mass/data/proto/NumassEnvelopeType.kt | 139 - .../inr/mass/data/proto/NumassProtoPlugin.kt | 12 +- .../data/proto/TaggedNumassEnvelopeFormat.kt | 295 + .../mass/data/proto/TestNumassDirectory.kt | 26 + .../src/test/resources/testData/set_4/meta | Bin 0 -> 444 bytes .../testData/set_4/p0(10s)(HV1=18700) | Bin 0 -> 5566 bytes .../testData/set_4/p1(10s)(HV1=19015) | Bin 0 -> 3556 bytes .../testData/set_4/p10(10s)(HV1=18800) | Bin 0 -> 5981 bytes .../testData/set_4/p11(10s)(HV1=18700) | Bin 0 -> 5311 bytes .../testData/set_4/p12(10s)(HV1=18600) | Bin 0 -> 6225 bytes .../testData/set_4/p13(10s)(HV1=18400) | Bin 0 -> 6779 bytes .../testData/set_4/p14(10s)(HV1=18200) | Bin 0 -> 5778 bytes .../testData/set_4/p15(10s)(HV1=18000) | Bin 0 -> 5979 bytes .../testData/set_4/p16(10s)(HV1=17500) | Bin 0 -> 4628 bytes .../testData/set_4/p17(10s)(HV1=17000) | Bin 0 -> 7130 bytes .../testData/set_4/p18(10s)(HV1=18700) | Bin 0 -> 3884 bytes .../testData/set_4/p19(10s)(HV1=16500) | Bin 0 -> 5307 bytes .../testData/set_4/p2(10s)(HV1=19005) | Bin 0 -> 2849 bytes .../testData/set_4/p20(10s)(HV1=16000) | Bin 0 -> 4891 bytes .../testData/set_4/p21(10s)(HV1=15500) | Bin 0 -> 4665 bytes .../testData/set_4/p22(10s)(HV1=15000) | Bin 0 -> 5716 bytes .../testData/set_4/p23(10s)(HV1=14500) | Bin 0 -> 6795 bytes .../testData/set_4/p24(10s)(HV1=18700) | Bin 0 -> 5385 bytes .../testData/set_4/p25(10s)(HV1=14000) | Bin 0 -> 7198 bytes .../testData/set_4/p26(10s)(HV1=13500) | Bin 0 -> 9568 bytes .../testData/set_4/p27(10s)(HV1=13000) | Bin 0 -> 7244 bytes .../testData/set_4/p28(10s)(HV1=12500) | Bin 0 -> 7312 bytes .../testData/set_4/p29(10s)(HV1=12000) | Bin 0 -> 8106 bytes .../testData/set_4/p3(10s)(HV1=19000) | Bin 0 -> 4773 bytes .../testData/set_4/p30(10s)(HV1=18700) | Bin 0 -> 4390 bytes .../testData/set_4/p4(10s)(HV1=18995) | Bin 0 -> 5570 bytes .../testData/set_4/p5(10s)(HV1=18990) | Bin 0 -> 3675 bytes .../testData/set_4/p6(10s)(HV1=18700) | Bin 0 -> 4528 bytes .../testData/set_4/p7(10s)(HV1=18980) | Bin 0 -> 5655 bytes .../testData/set_4/p8(10s)(HV1=18950) | Bin 0 -> 5736 bytes .../testData/set_4/p9(10s)(HV1=18900) | Bin 0 -> 7013 bytes .../test/resources/testData/set_4/scenario | 31 + .../src/test/resources/testData/set_4/voltage | Bin 0 -> 8601 bytes 42 files changed, 377 insertions(+), 5147 deletions(-) delete mode 100644 numass-data-proto/gen/main/java/ru/inr/mass/data/proto/NumassProto.java delete mode 100644 numass-data-proto/src/main/kotlin/ru/inr/mass/data/proto/NumassEnvelopeType.kt create mode 100644 numass-data-proto/src/main/kotlin/ru/inr/mass/data/proto/TaggedNumassEnvelopeFormat.kt create mode 100644 numass-data-proto/src/test/kotlin/ru/inr/mass/data/proto/TestNumassDirectory.kt create mode 100644 numass-data-proto/src/test/resources/testData/set_4/meta create mode 100644 numass-data-proto/src/test/resources/testData/set_4/p0(10s)(HV1=18700) create mode 100644 numass-data-proto/src/test/resources/testData/set_4/p1(10s)(HV1=19015) create mode 100644 numass-data-proto/src/test/resources/testData/set_4/p10(10s)(HV1=18800) create mode 100644 numass-data-proto/src/test/resources/testData/set_4/p11(10s)(HV1=18700) create mode 100644 numass-data-proto/src/test/resources/testData/set_4/p12(10s)(HV1=18600) create mode 100644 numass-data-proto/src/test/resources/testData/set_4/p13(10s)(HV1=18400) create mode 100644 numass-data-proto/src/test/resources/testData/set_4/p14(10s)(HV1=18200) create mode 100644 numass-data-proto/src/test/resources/testData/set_4/p15(10s)(HV1=18000) create mode 100644 numass-data-proto/src/test/resources/testData/set_4/p16(10s)(HV1=17500) create mode 100644 numass-data-proto/src/test/resources/testData/set_4/p17(10s)(HV1=17000) create mode 100644 numass-data-proto/src/test/resources/testData/set_4/p18(10s)(HV1=18700) create mode 100644 numass-data-proto/src/test/resources/testData/set_4/p19(10s)(HV1=16500) create mode 100644 numass-data-proto/src/test/resources/testData/set_4/p2(10s)(HV1=19005) create mode 100644 numass-data-proto/src/test/resources/testData/set_4/p20(10s)(HV1=16000) create mode 100644 numass-data-proto/src/test/resources/testData/set_4/p21(10s)(HV1=15500) create mode 100644 numass-data-proto/src/test/resources/testData/set_4/p22(10s)(HV1=15000) create mode 100644 numass-data-proto/src/test/resources/testData/set_4/p23(10s)(HV1=14500) create mode 100644 numass-data-proto/src/test/resources/testData/set_4/p24(10s)(HV1=18700) create mode 100644 numass-data-proto/src/test/resources/testData/set_4/p25(10s)(HV1=14000) create mode 100644 numass-data-proto/src/test/resources/testData/set_4/p26(10s)(HV1=13500) create mode 100644 numass-data-proto/src/test/resources/testData/set_4/p27(10s)(HV1=13000) create mode 100644 numass-data-proto/src/test/resources/testData/set_4/p28(10s)(HV1=12500) create mode 100644 numass-data-proto/src/test/resources/testData/set_4/p29(10s)(HV1=12000) create mode 100644 numass-data-proto/src/test/resources/testData/set_4/p3(10s)(HV1=19000) create mode 100644 numass-data-proto/src/test/resources/testData/set_4/p30(10s)(HV1=18700) create mode 100644 numass-data-proto/src/test/resources/testData/set_4/p4(10s)(HV1=18995) create mode 100644 numass-data-proto/src/test/resources/testData/set_4/p5(10s)(HV1=18990) create mode 100644 numass-data-proto/src/test/resources/testData/set_4/p6(10s)(HV1=18700) create mode 100644 numass-data-proto/src/test/resources/testData/set_4/p7(10s)(HV1=18980) create mode 100644 numass-data-proto/src/test/resources/testData/set_4/p8(10s)(HV1=18950) create mode 100644 numass-data-proto/src/test/resources/testData/set_4/p9(10s)(HV1=18900) create mode 100644 numass-data-proto/src/test/resources/testData/set_4/scenario create mode 100644 numass-data-proto/src/test/resources/testData/set_4/voltage diff --git a/build.gradle.kts b/build.gradle.kts index c3e44b3..8c61ae9 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -3,11 +3,15 @@ plugins { } allprojects { + repositories{ + mavenLocal() + } + group = "ru.inr.mass" version = "0.1.0" } -val dataforgeVersion by extra("0.3.0-dev-1") +val dataforgeVersion by extra("0.3.0-dev-2") apiValidation{ validationDisabled = true diff --git a/numass-data-model/src/main/kotlin/ru/inr/mass/data/api/NumassSet.kt b/numass-data-model/src/main/kotlin/ru/inr/mass/data/api/NumassSet.kt index 03e7721..4521433 100644 --- a/numass-data-model/src/main/kotlin/ru/inr/mass/data/api/NumassSet.kt +++ b/numass-data-model/src/main/kotlin/ru/inr/mass/data/api/NumassSet.kt @@ -40,20 +40,19 @@ public interface NumassSet : Iterable, Provider { return points.iterator() } - - override val defaultTarget: String get() = NUMASS_POINT_PROVIDER_KEY + override val defaultTarget: String get() = NUMASS_POINT_TARGET override fun content(target: String): Map { - return if (target == NUMASS_POINT_PROVIDER_KEY) { + return if (target == NUMASS_POINT_TARGET) { points.associateBy { "point[${it.voltage}]".toName() } } else { super.content(target) } } - companion object { - const val DESCRIPTION_KEY = "info" - const val NUMASS_POINT_PROVIDER_KEY = "point" + public companion object { + //public const val DESCRIPTION_KEY = "info" + public const val NUMASS_POINT_TARGET: String = "point" } } diff --git a/numass-data-proto/gen/main/java/ru/inr/mass/data/proto/NumassProto.java b/numass-data-proto/gen/main/java/ru/inr/mass/data/proto/NumassProto.java deleted file mode 100644 index 70958d3..0000000 --- a/numass-data-proto/gen/main/java/ru/inr/mass/data/proto/NumassProto.java +++ /dev/null @@ -1,4995 +0,0 @@ -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: ru/inr/mass/data/proto/numass-proto.proto - -package ru.inr.mass.data.proto; - -public final class NumassProto { - private NumassProto() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - public interface PointOrBuilder extends - // @@protoc_insertion_point(interface_extends:ru.inr.mass.data.proto.Point) - com.google.protobuf.MessageOrBuilder { - - /** - *
-     * Array of measuring channels
-     * 
- * - * repeated .ru.inr.mass.data.proto.Point.Channel channels = 1; - */ - java.util.List - getChannelsList(); - /** - *
-     * Array of measuring channels
-     * 
- * - * repeated .ru.inr.mass.data.proto.Point.Channel channels = 1; - */ - ru.inr.mass.data.proto.NumassProto.Point.Channel getChannels(int index); - /** - *
-     * Array of measuring channels
-     * 
- * - * repeated .ru.inr.mass.data.proto.Point.Channel channels = 1; - */ - int getChannelsCount(); - /** - *
-     * Array of measuring channels
-     * 
- * - * repeated .ru.inr.mass.data.proto.Point.Channel channels = 1; - */ - java.util.List - getChannelsOrBuilderList(); - /** - *
-     * Array of measuring channels
-     * 
- * - * repeated .ru.inr.mass.data.proto.Point.Channel channels = 1; - */ - ru.inr.mass.data.proto.NumassProto.Point.ChannelOrBuilder getChannelsOrBuilder( - int index); - } - /** - * Protobuf type {@code ru.inr.mass.data.proto.Point} - */ - public static final class Point extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:ru.inr.mass.data.proto.Point) - PointOrBuilder { - private static final long serialVersionUID = 0L; - // Use Point.newBuilder() to construct. - private Point(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private Point() { - channels_ = java.util.Collections.emptyList(); - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new Point(); - } - - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private Point( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - int mutable_bitField0_ = 0; - com.google.protobuf.UnknownFieldSet.Builder unknownFields = - com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 10: { - if (!((mutable_bitField0_ & 0x00000001) != 0)) { - channels_ = new java.util.ArrayList(); - mutable_bitField0_ |= 0x00000001; - } - channels_.add( - input.readMessage(ru.inr.mass.data.proto.NumassProto.Point.Channel.parser(), extensionRegistry)); - break; - } - default: { - if (!parseUnknownField( - input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException( - e).setUnfinishedMessage(this); - } finally { - if (((mutable_bitField0_ & 0x00000001) != 0)) { - channels_ = java.util.Collections.unmodifiableList(channels_); - } - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return ru.inr.mass.data.proto.NumassProto.internal_static_ru_inr_mass_data_proto_Point_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return ru.inr.mass.data.proto.NumassProto.internal_static_ru_inr_mass_data_proto_Point_fieldAccessorTable - .ensureFieldAccessorsInitialized( - ru.inr.mass.data.proto.NumassProto.Point.class, ru.inr.mass.data.proto.NumassProto.Point.Builder.class); - } - - public interface ChannelOrBuilder extends - // @@protoc_insertion_point(interface_extends:ru.inr.mass.data.proto.Point.Channel) - com.google.protobuf.MessageOrBuilder { - - /** - *
-       * The number of measuring channel
-       * 
- * - * uint64 id = 1; - * @return The id. - */ - long getId(); - - /** - *
-       * Blocks
-       * 
- * - * repeated .ru.inr.mass.data.proto.Point.Channel.Block blocks = 2; - */ - java.util.List - getBlocksList(); - /** - *
-       * Blocks
-       * 
- * - * repeated .ru.inr.mass.data.proto.Point.Channel.Block blocks = 2; - */ - ru.inr.mass.data.proto.NumassProto.Point.Channel.Block getBlocks(int index); - /** - *
-       * Blocks
-       * 
- * - * repeated .ru.inr.mass.data.proto.Point.Channel.Block blocks = 2; - */ - int getBlocksCount(); - /** - *
-       * Blocks
-       * 
- * - * repeated .ru.inr.mass.data.proto.Point.Channel.Block blocks = 2; - */ - java.util.List - getBlocksOrBuilderList(); - /** - *
-       * Blocks
-       * 
- * - * repeated .ru.inr.mass.data.proto.Point.Channel.Block blocks = 2; - */ - ru.inr.mass.data.proto.NumassProto.Point.Channel.BlockOrBuilder getBlocksOrBuilder( - int index); - } - /** - *
-     * A single channel for multichannel detector readout
-     * 
- * - * Protobuf type {@code ru.inr.mass.data.proto.Point.Channel} - */ - public static final class Channel extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:ru.inr.mass.data.proto.Point.Channel) - ChannelOrBuilder { - private static final long serialVersionUID = 0L; - // Use Channel.newBuilder() to construct. - private Channel(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private Channel() { - blocks_ = java.util.Collections.emptyList(); - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new Channel(); - } - - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private Channel( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - int mutable_bitField0_ = 0; - com.google.protobuf.UnknownFieldSet.Builder unknownFields = - com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 8: { - - id_ = input.readUInt64(); - break; - } - case 18: { - if (!((mutable_bitField0_ & 0x00000001) != 0)) { - blocks_ = new java.util.ArrayList(); - mutable_bitField0_ |= 0x00000001; - } - blocks_.add( - input.readMessage(ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.parser(), extensionRegistry)); - break; - } - default: { - if (!parseUnknownField( - input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException( - e).setUnfinishedMessage(this); - } finally { - if (((mutable_bitField0_ & 0x00000001) != 0)) { - blocks_ = java.util.Collections.unmodifiableList(blocks_); - } - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return ru.inr.mass.data.proto.NumassProto.internal_static_ru_inr_mass_data_proto_Point_Channel_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return ru.inr.mass.data.proto.NumassProto.internal_static_ru_inr_mass_data_proto_Point_Channel_fieldAccessorTable - .ensureFieldAccessorsInitialized( - ru.inr.mass.data.proto.NumassProto.Point.Channel.class, ru.inr.mass.data.proto.NumassProto.Point.Channel.Builder.class); - } - - public interface BlockOrBuilder extends - // @@protoc_insertion_point(interface_extends:ru.inr.mass.data.proto.Point.Channel.Block) - com.google.protobuf.MessageOrBuilder { - - /** - *
-         * Block start in epoch nanos
-         * 
- * - * uint64 time = 1; - * @return The time. - */ - long getTime(); - - /** - *
-         * Frames array
-         * 
- * - * repeated .ru.inr.mass.data.proto.Point.Channel.Block.Frame frames = 2; - */ - java.util.List - getFramesList(); - /** - *
-         * Frames array
-         * 
- * - * repeated .ru.inr.mass.data.proto.Point.Channel.Block.Frame frames = 2; - */ - ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Frame getFrames(int index); - /** - *
-         * Frames array
-         * 
- * - * repeated .ru.inr.mass.data.proto.Point.Channel.Block.Frame frames = 2; - */ - int getFramesCount(); - /** - *
-         * Frames array
-         * 
- * - * repeated .ru.inr.mass.data.proto.Point.Channel.Block.Frame frames = 2; - */ - java.util.List - getFramesOrBuilderList(); - /** - *
-         * Frames array
-         * 
- * - * repeated .ru.inr.mass.data.proto.Point.Channel.Block.Frame frames = 2; - */ - ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.FrameOrBuilder getFramesOrBuilder( - int index); - - /** - *
-         * Events array
-         * 
- * - * .ru.inr.mass.data.proto.Point.Channel.Block.Events events = 3; - * @return Whether the events field is set. - */ - boolean hasEvents(); - /** - *
-         * Events array
-         * 
- * - * .ru.inr.mass.data.proto.Point.Channel.Block.Events events = 3; - * @return The events. - */ - ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Events getEvents(); - /** - *
-         * Events array
-         * 
- * - * .ru.inr.mass.data.proto.Point.Channel.Block.Events events = 3; - */ - ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.EventsOrBuilder getEventsOrBuilder(); - - /** - *
-         * block size in nanos. If missing, take from meta.
-         * 
- * - * uint64 length = 4; - * @return The length. - */ - long getLength(); - - /** - *
-         * tick size in nanos. Obsolete, to be removed
-         * 
- * - * uint64 bin_size = 5; - * @return The binSize. - */ - long getBinSize(); - } - /** - *
-       *A continuous measurement block
-       * 
- * - * Protobuf type {@code ru.inr.mass.data.proto.Point.Channel.Block} - */ - public static final class Block extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:ru.inr.mass.data.proto.Point.Channel.Block) - BlockOrBuilder { - private static final long serialVersionUID = 0L; - // Use Block.newBuilder() to construct. - private Block(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private Block() { - frames_ = java.util.Collections.emptyList(); - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new Block(); - } - - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private Block( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - int mutable_bitField0_ = 0; - com.google.protobuf.UnknownFieldSet.Builder unknownFields = - com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 8: { - - time_ = input.readUInt64(); - break; - } - case 18: { - if (!((mutable_bitField0_ & 0x00000001) != 0)) { - frames_ = new java.util.ArrayList(); - mutable_bitField0_ |= 0x00000001; - } - frames_.add( - input.readMessage(ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Frame.parser(), extensionRegistry)); - break; - } - case 26: { - ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Events.Builder subBuilder = null; - if (events_ != null) { - subBuilder = events_.toBuilder(); - } - events_ = input.readMessage(ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Events.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(events_); - events_ = subBuilder.buildPartial(); - } - - break; - } - case 32: { - - length_ = input.readUInt64(); - break; - } - case 40: { - - binSize_ = input.readUInt64(); - break; - } - default: { - if (!parseUnknownField( - input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException( - e).setUnfinishedMessage(this); - } finally { - if (((mutable_bitField0_ & 0x00000001) != 0)) { - frames_ = java.util.Collections.unmodifiableList(frames_); - } - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return ru.inr.mass.data.proto.NumassProto.internal_static_ru_inr_mass_data_proto_Point_Channel_Block_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return ru.inr.mass.data.proto.NumassProto.internal_static_ru_inr_mass_data_proto_Point_Channel_Block_fieldAccessorTable - .ensureFieldAccessorsInitialized( - ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.class, ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Builder.class); - } - - public interface FrameOrBuilder extends - // @@protoc_insertion_point(interface_extends:ru.inr.mass.data.proto.Point.Channel.Block.Frame) - com.google.protobuf.MessageOrBuilder { - - /** - *
-           * Time in nanos from the beginning of the block
-           * 
- * - * uint64 time = 1; - * @return The time. - */ - long getTime(); - - /** - *
-           * Frame data as an array of int16 mesured in arbitrary channels
-           * 
- * - * bytes data = 2; - * @return The data. - */ - com.google.protobuf.ByteString getData(); - } - /** - *
-         * Raw data frame
-         * 
- * - * Protobuf type {@code ru.inr.mass.data.proto.Point.Channel.Block.Frame} - */ - public static final class Frame extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:ru.inr.mass.data.proto.Point.Channel.Block.Frame) - FrameOrBuilder { - private static final long serialVersionUID = 0L; - // Use Frame.newBuilder() to construct. - private Frame(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private Frame() { - data_ = com.google.protobuf.ByteString.EMPTY; - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new Frame(); - } - - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private Frame( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - com.google.protobuf.UnknownFieldSet.Builder unknownFields = - com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 8: { - - time_ = input.readUInt64(); - break; - } - case 18: { - - data_ = input.readBytes(); - break; - } - default: { - if (!parseUnknownField( - input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException( - e).setUnfinishedMessage(this); - } finally { - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return ru.inr.mass.data.proto.NumassProto.internal_static_ru_inr_mass_data_proto_Point_Channel_Block_Frame_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return ru.inr.mass.data.proto.NumassProto.internal_static_ru_inr_mass_data_proto_Point_Channel_Block_Frame_fieldAccessorTable - .ensureFieldAccessorsInitialized( - ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Frame.class, ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Frame.Builder.class); - } - - public static final int TIME_FIELD_NUMBER = 1; - private long time_; - /** - *
-           * Time in nanos from the beginning of the block
-           * 
- * - * uint64 time = 1; - * @return The time. - */ - @java.lang.Override - public long getTime() { - return time_; - } - - public static final int DATA_FIELD_NUMBER = 2; - private com.google.protobuf.ByteString data_; - /** - *
-           * Frame data as an array of int16 mesured in arbitrary channels
-           * 
- * - * bytes data = 2; - * @return The data. - */ - @java.lang.Override - public com.google.protobuf.ByteString getData() { - return data_; - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (time_ != 0L) { - output.writeUInt64(1, time_); - } - if (!data_.isEmpty()) { - output.writeBytes(2, data_); - } - unknownFields.writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (time_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(1, time_); - } - if (!data_.isEmpty()) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(2, data_); - } - size += unknownFields.getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Frame)) { - return super.equals(obj); - } - ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Frame other = (ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Frame) obj; - - if (getTime() - != other.getTime()) return false; - if (!getData() - .equals(other.getData())) return false; - if (!unknownFields.equals(other.unknownFields)) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + TIME_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getTime()); - hash = (37 * hash) + DATA_FIELD_NUMBER; - hash = (53 * hash) + getData().hashCode(); - hash = (29 * hash) + unknownFields.hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Frame parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Frame parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Frame parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Frame parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Frame parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Frame parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Frame parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Frame parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - public static ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Frame parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - public static ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Frame parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Frame parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Frame parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Frame prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - *
-           * Raw data frame
-           * 
- * - * Protobuf type {@code ru.inr.mass.data.proto.Point.Channel.Block.Frame} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:ru.inr.mass.data.proto.Point.Channel.Block.Frame) - ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.FrameOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return ru.inr.mass.data.proto.NumassProto.internal_static_ru_inr_mass_data_proto_Point_Channel_Block_Frame_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return ru.inr.mass.data.proto.NumassProto.internal_static_ru_inr_mass_data_proto_Point_Channel_Block_Frame_fieldAccessorTable - .ensureFieldAccessorsInitialized( - ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Frame.class, ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Frame.Builder.class); - } - - // Construct using ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Frame.newBuilder() - private Builder() { - maybeForceBuilderInitialization(); - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - maybeForceBuilderInitialization(); - } - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3 - .alwaysUseFieldBuilders) { - } - } - @java.lang.Override - public Builder clear() { - super.clear(); - time_ = 0L; - - data_ = com.google.protobuf.ByteString.EMPTY; - - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return ru.inr.mass.data.proto.NumassProto.internal_static_ru_inr_mass_data_proto_Point_Channel_Block_Frame_descriptor; - } - - @java.lang.Override - public ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Frame getDefaultInstanceForType() { - return ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Frame.getDefaultInstance(); - } - - @java.lang.Override - public ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Frame build() { - ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Frame result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Frame buildPartial() { - ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Frame result = new ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Frame(this); - result.time_ = time_; - result.data_ = data_; - onBuilt(); - return result; - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Frame) { - return mergeFrom((ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Frame)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Frame other) { - if (other == ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Frame.getDefaultInstance()) return this; - if (other.getTime() != 0L) { - setTime(other.getTime()); - } - if (other.getData() != com.google.protobuf.ByteString.EMPTY) { - setData(other.getData()); - } - this.mergeUnknownFields(other.unknownFields); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Frame parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Frame) e.getUnfinishedMessage(); - throw e.unwrapIOException(); - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - - private long time_ ; - /** - *
-             * Time in nanos from the beginning of the block
-             * 
- * - * uint64 time = 1; - * @return The time. - */ - @java.lang.Override - public long getTime() { - return time_; - } - /** - *
-             * Time in nanos from the beginning of the block
-             * 
- * - * uint64 time = 1; - * @param value The time to set. - * @return This builder for chaining. - */ - public Builder setTime(long value) { - - time_ = value; - onChanged(); - return this; - } - /** - *
-             * Time in nanos from the beginning of the block
-             * 
- * - * uint64 time = 1; - * @return This builder for chaining. - */ - public Builder clearTime() { - - time_ = 0L; - onChanged(); - return this; - } - - private com.google.protobuf.ByteString data_ = com.google.protobuf.ByteString.EMPTY; - /** - *
-             * Frame data as an array of int16 mesured in arbitrary channels
-             * 
- * - * bytes data = 2; - * @return The data. - */ - @java.lang.Override - public com.google.protobuf.ByteString getData() { - return data_; - } - /** - *
-             * Frame data as an array of int16 mesured in arbitrary channels
-             * 
- * - * bytes data = 2; - * @param value The data to set. - * @return This builder for chaining. - */ - public Builder setData(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - - data_ = value; - onChanged(); - return this; - } - /** - *
-             * Frame data as an array of int16 mesured in arbitrary channels
-             * 
- * - * bytes data = 2; - * @return This builder for chaining. - */ - public Builder clearData() { - - data_ = getDefaultInstance().getData(); - onChanged(); - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:ru.inr.mass.data.proto.Point.Channel.Block.Frame) - } - - // @@protoc_insertion_point(class_scope:ru.inr.mass.data.proto.Point.Channel.Block.Frame) - private static final ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Frame DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Frame(); - } - - public static ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Frame getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public Frame parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new Frame(input, extensionRegistry); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Frame getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - public interface EventsOrBuilder extends - // @@protoc_insertion_point(interface_extends:ru.inr.mass.data.proto.Point.Channel.Block.Events) - com.google.protobuf.MessageOrBuilder { - - /** - *
-           * Array of time in nanos from the beginning of the block
-           * 
- * - * repeated uint64 times = 1; - * @return A list containing the times. - */ - java.util.List getTimesList(); - /** - *
-           * Array of time in nanos from the beginning of the block
-           * 
- * - * repeated uint64 times = 1; - * @return The count of times. - */ - int getTimesCount(); - /** - *
-           * Array of time in nanos from the beginning of the block
-           * 
- * - * repeated uint64 times = 1; - * @param index The index of the element to return. - * @return The times at the given index. - */ - long getTimes(int index); - - /** - *
-           * Array of amplitudes of events in channels
-           * 
- * - * repeated uint64 amplitudes = 2; - * @return A list containing the amplitudes. - */ - java.util.List getAmplitudesList(); - /** - *
-           * Array of amplitudes of events in channels
-           * 
- * - * repeated uint64 amplitudes = 2; - * @return The count of amplitudes. - */ - int getAmplitudesCount(); - /** - *
-           * Array of amplitudes of events in channels
-           * 
- * - * repeated uint64 amplitudes = 2; - * @param index The index of the element to return. - * @return The amplitudes at the given index. - */ - long getAmplitudes(int index); - } - /** - *
-         * Event block obtained directly from  device of from frame analysis
-         * In order to save space, times and amplitudes are in separate arrays.
-         * Amplitude and time with the same index correspond to the same event
-         * 
- * - * Protobuf type {@code ru.inr.mass.data.proto.Point.Channel.Block.Events} - */ - public static final class Events extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:ru.inr.mass.data.proto.Point.Channel.Block.Events) - EventsOrBuilder { - private static final long serialVersionUID = 0L; - // Use Events.newBuilder() to construct. - private Events(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private Events() { - times_ = emptyLongList(); - amplitudes_ = emptyLongList(); - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new Events(); - } - - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private Events( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - int mutable_bitField0_ = 0; - com.google.protobuf.UnknownFieldSet.Builder unknownFields = - com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 8: { - if (!((mutable_bitField0_ & 0x00000001) != 0)) { - times_ = newLongList(); - mutable_bitField0_ |= 0x00000001; - } - times_.addLong(input.readUInt64()); - break; - } - case 10: { - int length = input.readRawVarint32(); - int limit = input.pushLimit(length); - if (!((mutable_bitField0_ & 0x00000001) != 0) && input.getBytesUntilLimit() > 0) { - times_ = newLongList(); - mutable_bitField0_ |= 0x00000001; - } - while (input.getBytesUntilLimit() > 0) { - times_.addLong(input.readUInt64()); - } - input.popLimit(limit); - break; - } - case 16: { - if (!((mutable_bitField0_ & 0x00000002) != 0)) { - amplitudes_ = newLongList(); - mutable_bitField0_ |= 0x00000002; - } - amplitudes_.addLong(input.readUInt64()); - break; - } - case 18: { - int length = input.readRawVarint32(); - int limit = input.pushLimit(length); - if (!((mutable_bitField0_ & 0x00000002) != 0) && input.getBytesUntilLimit() > 0) { - amplitudes_ = newLongList(); - mutable_bitField0_ |= 0x00000002; - } - while (input.getBytesUntilLimit() > 0) { - amplitudes_.addLong(input.readUInt64()); - } - input.popLimit(limit); - break; - } - default: { - if (!parseUnknownField( - input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException( - e).setUnfinishedMessage(this); - } finally { - if (((mutable_bitField0_ & 0x00000001) != 0)) { - times_.makeImmutable(); // C - } - if (((mutable_bitField0_ & 0x00000002) != 0)) { - amplitudes_.makeImmutable(); // C - } - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return ru.inr.mass.data.proto.NumassProto.internal_static_ru_inr_mass_data_proto_Point_Channel_Block_Events_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return ru.inr.mass.data.proto.NumassProto.internal_static_ru_inr_mass_data_proto_Point_Channel_Block_Events_fieldAccessorTable - .ensureFieldAccessorsInitialized( - ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Events.class, ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Events.Builder.class); - } - - public static final int TIMES_FIELD_NUMBER = 1; - private com.google.protobuf.Internal.LongList times_; - /** - *
-           * Array of time in nanos from the beginning of the block
-           * 
- * - * repeated uint64 times = 1; - * @return A list containing the times. - */ - @java.lang.Override - public java.util.List - getTimesList() { - return times_; - } - /** - *
-           * Array of time in nanos from the beginning of the block
-           * 
- * - * repeated uint64 times = 1; - * @return The count of times. - */ - public int getTimesCount() { - return times_.size(); - } - /** - *
-           * Array of time in nanos from the beginning of the block
-           * 
- * - * repeated uint64 times = 1; - * @param index The index of the element to return. - * @return The times at the given index. - */ - public long getTimes(int index) { - return times_.getLong(index); - } - private int timesMemoizedSerializedSize = -1; - - public static final int AMPLITUDES_FIELD_NUMBER = 2; - private com.google.protobuf.Internal.LongList amplitudes_; - /** - *
-           * Array of amplitudes of events in channels
-           * 
- * - * repeated uint64 amplitudes = 2; - * @return A list containing the amplitudes. - */ - @java.lang.Override - public java.util.List - getAmplitudesList() { - return amplitudes_; - } - /** - *
-           * Array of amplitudes of events in channels
-           * 
- * - * repeated uint64 amplitudes = 2; - * @return The count of amplitudes. - */ - public int getAmplitudesCount() { - return amplitudes_.size(); - } - /** - *
-           * Array of amplitudes of events in channels
-           * 
- * - * repeated uint64 amplitudes = 2; - * @param index The index of the element to return. - * @return The amplitudes at the given index. - */ - public long getAmplitudes(int index) { - return amplitudes_.getLong(index); - } - private int amplitudesMemoizedSerializedSize = -1; - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - getSerializedSize(); - if (getTimesList().size() > 0) { - output.writeUInt32NoTag(10); - output.writeUInt32NoTag(timesMemoizedSerializedSize); - } - for (int i = 0; i < times_.size(); i++) { - output.writeUInt64NoTag(times_.getLong(i)); - } - if (getAmplitudesList().size() > 0) { - output.writeUInt32NoTag(18); - output.writeUInt32NoTag(amplitudesMemoizedSerializedSize); - } - for (int i = 0; i < amplitudes_.size(); i++) { - output.writeUInt64NoTag(amplitudes_.getLong(i)); - } - unknownFields.writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - { - int dataSize = 0; - for (int i = 0; i < times_.size(); i++) { - dataSize += com.google.protobuf.CodedOutputStream - .computeUInt64SizeNoTag(times_.getLong(i)); - } - size += dataSize; - if (!getTimesList().isEmpty()) { - size += 1; - size += com.google.protobuf.CodedOutputStream - .computeInt32SizeNoTag(dataSize); - } - timesMemoizedSerializedSize = dataSize; - } - { - int dataSize = 0; - for (int i = 0; i < amplitudes_.size(); i++) { - dataSize += com.google.protobuf.CodedOutputStream - .computeUInt64SizeNoTag(amplitudes_.getLong(i)); - } - size += dataSize; - if (!getAmplitudesList().isEmpty()) { - size += 1; - size += com.google.protobuf.CodedOutputStream - .computeInt32SizeNoTag(dataSize); - } - amplitudesMemoizedSerializedSize = dataSize; - } - size += unknownFields.getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Events)) { - return super.equals(obj); - } - ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Events other = (ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Events) obj; - - if (!getTimesList() - .equals(other.getTimesList())) return false; - if (!getAmplitudesList() - .equals(other.getAmplitudesList())) return false; - if (!unknownFields.equals(other.unknownFields)) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - if (getTimesCount() > 0) { - hash = (37 * hash) + TIMES_FIELD_NUMBER; - hash = (53 * hash) + getTimesList().hashCode(); - } - if (getAmplitudesCount() > 0) { - hash = (37 * hash) + AMPLITUDES_FIELD_NUMBER; - hash = (53 * hash) + getAmplitudesList().hashCode(); - } - hash = (29 * hash) + unknownFields.hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Events parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Events parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Events parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Events parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Events parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Events parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Events parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Events parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - public static ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Events parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - public static ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Events parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Events parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Events parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Events prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - *
-           * Event block obtained directly from  device of from frame analysis
-           * In order to save space, times and amplitudes are in separate arrays.
-           * Amplitude and time with the same index correspond to the same event
-           * 
- * - * Protobuf type {@code ru.inr.mass.data.proto.Point.Channel.Block.Events} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:ru.inr.mass.data.proto.Point.Channel.Block.Events) - ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.EventsOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return ru.inr.mass.data.proto.NumassProto.internal_static_ru_inr_mass_data_proto_Point_Channel_Block_Events_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return ru.inr.mass.data.proto.NumassProto.internal_static_ru_inr_mass_data_proto_Point_Channel_Block_Events_fieldAccessorTable - .ensureFieldAccessorsInitialized( - ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Events.class, ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Events.Builder.class); - } - - // Construct using ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Events.newBuilder() - private Builder() { - maybeForceBuilderInitialization(); - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - maybeForceBuilderInitialization(); - } - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3 - .alwaysUseFieldBuilders) { - } - } - @java.lang.Override - public Builder clear() { - super.clear(); - times_ = emptyLongList(); - bitField0_ = (bitField0_ & ~0x00000001); - amplitudes_ = emptyLongList(); - bitField0_ = (bitField0_ & ~0x00000002); - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return ru.inr.mass.data.proto.NumassProto.internal_static_ru_inr_mass_data_proto_Point_Channel_Block_Events_descriptor; - } - - @java.lang.Override - public ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Events getDefaultInstanceForType() { - return ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Events.getDefaultInstance(); - } - - @java.lang.Override - public ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Events build() { - ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Events result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Events buildPartial() { - ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Events result = new ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Events(this); - int from_bitField0_ = bitField0_; - if (((bitField0_ & 0x00000001) != 0)) { - times_.makeImmutable(); - bitField0_ = (bitField0_ & ~0x00000001); - } - result.times_ = times_; - if (((bitField0_ & 0x00000002) != 0)) { - amplitudes_.makeImmutable(); - bitField0_ = (bitField0_ & ~0x00000002); - } - result.amplitudes_ = amplitudes_; - onBuilt(); - return result; - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Events) { - return mergeFrom((ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Events)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Events other) { - if (other == ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Events.getDefaultInstance()) return this; - if (!other.times_.isEmpty()) { - if (times_.isEmpty()) { - times_ = other.times_; - bitField0_ = (bitField0_ & ~0x00000001); - } else { - ensureTimesIsMutable(); - times_.addAll(other.times_); - } - onChanged(); - } - if (!other.amplitudes_.isEmpty()) { - if (amplitudes_.isEmpty()) { - amplitudes_ = other.amplitudes_; - bitField0_ = (bitField0_ & ~0x00000002); - } else { - ensureAmplitudesIsMutable(); - amplitudes_.addAll(other.amplitudes_); - } - onChanged(); - } - this.mergeUnknownFields(other.unknownFields); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Events parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Events) e.getUnfinishedMessage(); - throw e.unwrapIOException(); - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - private com.google.protobuf.Internal.LongList times_ = emptyLongList(); - private void ensureTimesIsMutable() { - if (!((bitField0_ & 0x00000001) != 0)) { - times_ = mutableCopy(times_); - bitField0_ |= 0x00000001; - } - } - /** - *
-             * Array of time in nanos from the beginning of the block
-             * 
- * - * repeated uint64 times = 1; - * @return A list containing the times. - */ - public java.util.List - getTimesList() { - return ((bitField0_ & 0x00000001) != 0) ? - java.util.Collections.unmodifiableList(times_) : times_; - } - /** - *
-             * Array of time in nanos from the beginning of the block
-             * 
- * - * repeated uint64 times = 1; - * @return The count of times. - */ - public int getTimesCount() { - return times_.size(); - } - /** - *
-             * Array of time in nanos from the beginning of the block
-             * 
- * - * repeated uint64 times = 1; - * @param index The index of the element to return. - * @return The times at the given index. - */ - public long getTimes(int index) { - return times_.getLong(index); - } - /** - *
-             * Array of time in nanos from the beginning of the block
-             * 
- * - * repeated uint64 times = 1; - * @param index The index to set the value at. - * @param value The times to set. - * @return This builder for chaining. - */ - public Builder setTimes( - int index, long value) { - ensureTimesIsMutable(); - times_.setLong(index, value); - onChanged(); - return this; - } - /** - *
-             * Array of time in nanos from the beginning of the block
-             * 
- * - * repeated uint64 times = 1; - * @param value The times to add. - * @return This builder for chaining. - */ - public Builder addTimes(long value) { - ensureTimesIsMutable(); - times_.addLong(value); - onChanged(); - return this; - } - /** - *
-             * Array of time in nanos from the beginning of the block
-             * 
- * - * repeated uint64 times = 1; - * @param values The times to add. - * @return This builder for chaining. - */ - public Builder addAllTimes( - java.lang.Iterable values) { - ensureTimesIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll( - values, times_); - onChanged(); - return this; - } - /** - *
-             * Array of time in nanos from the beginning of the block
-             * 
- * - * repeated uint64 times = 1; - * @return This builder for chaining. - */ - public Builder clearTimes() { - times_ = emptyLongList(); - bitField0_ = (bitField0_ & ~0x00000001); - onChanged(); - return this; - } - - private com.google.protobuf.Internal.LongList amplitudes_ = emptyLongList(); - private void ensureAmplitudesIsMutable() { - if (!((bitField0_ & 0x00000002) != 0)) { - amplitudes_ = mutableCopy(amplitudes_); - bitField0_ |= 0x00000002; - } - } - /** - *
-             * Array of amplitudes of events in channels
-             * 
- * - * repeated uint64 amplitudes = 2; - * @return A list containing the amplitudes. - */ - public java.util.List - getAmplitudesList() { - return ((bitField0_ & 0x00000002) != 0) ? - java.util.Collections.unmodifiableList(amplitudes_) : amplitudes_; - } - /** - *
-             * Array of amplitudes of events in channels
-             * 
- * - * repeated uint64 amplitudes = 2; - * @return The count of amplitudes. - */ - public int getAmplitudesCount() { - return amplitudes_.size(); - } - /** - *
-             * Array of amplitudes of events in channels
-             * 
- * - * repeated uint64 amplitudes = 2; - * @param index The index of the element to return. - * @return The amplitudes at the given index. - */ - public long getAmplitudes(int index) { - return amplitudes_.getLong(index); - } - /** - *
-             * Array of amplitudes of events in channels
-             * 
- * - * repeated uint64 amplitudes = 2; - * @param index The index to set the value at. - * @param value The amplitudes to set. - * @return This builder for chaining. - */ - public Builder setAmplitudes( - int index, long value) { - ensureAmplitudesIsMutable(); - amplitudes_.setLong(index, value); - onChanged(); - return this; - } - /** - *
-             * Array of amplitudes of events in channels
-             * 
- * - * repeated uint64 amplitudes = 2; - * @param value The amplitudes to add. - * @return This builder for chaining. - */ - public Builder addAmplitudes(long value) { - ensureAmplitudesIsMutable(); - amplitudes_.addLong(value); - onChanged(); - return this; - } - /** - *
-             * Array of amplitudes of events in channels
-             * 
- * - * repeated uint64 amplitudes = 2; - * @param values The amplitudes to add. - * @return This builder for chaining. - */ - public Builder addAllAmplitudes( - java.lang.Iterable values) { - ensureAmplitudesIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll( - values, amplitudes_); - onChanged(); - return this; - } - /** - *
-             * Array of amplitudes of events in channels
-             * 
- * - * repeated uint64 amplitudes = 2; - * @return This builder for chaining. - */ - public Builder clearAmplitudes() { - amplitudes_ = emptyLongList(); - bitField0_ = (bitField0_ & ~0x00000002); - onChanged(); - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:ru.inr.mass.data.proto.Point.Channel.Block.Events) - } - - // @@protoc_insertion_point(class_scope:ru.inr.mass.data.proto.Point.Channel.Block.Events) - private static final ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Events DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Events(); - } - - public static ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Events getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public Events parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new Events(input, extensionRegistry); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Events getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - public static final int TIME_FIELD_NUMBER = 1; - private long time_; - /** - *
-         * Block start in epoch nanos
-         * 
- * - * uint64 time = 1; - * @return The time. - */ - @java.lang.Override - public long getTime() { - return time_; - } - - public static final int FRAMES_FIELD_NUMBER = 2; - private java.util.List frames_; - /** - *
-         * Frames array
-         * 
- * - * repeated .ru.inr.mass.data.proto.Point.Channel.Block.Frame frames = 2; - */ - @java.lang.Override - public java.util.List getFramesList() { - return frames_; - } - /** - *
-         * Frames array
-         * 
- * - * repeated .ru.inr.mass.data.proto.Point.Channel.Block.Frame frames = 2; - */ - @java.lang.Override - public java.util.List - getFramesOrBuilderList() { - return frames_; - } - /** - *
-         * Frames array
-         * 
- * - * repeated .ru.inr.mass.data.proto.Point.Channel.Block.Frame frames = 2; - */ - @java.lang.Override - public int getFramesCount() { - return frames_.size(); - } - /** - *
-         * Frames array
-         * 
- * - * repeated .ru.inr.mass.data.proto.Point.Channel.Block.Frame frames = 2; - */ - @java.lang.Override - public ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Frame getFrames(int index) { - return frames_.get(index); - } - /** - *
-         * Frames array
-         * 
- * - * repeated .ru.inr.mass.data.proto.Point.Channel.Block.Frame frames = 2; - */ - @java.lang.Override - public ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.FrameOrBuilder getFramesOrBuilder( - int index) { - return frames_.get(index); - } - - public static final int EVENTS_FIELD_NUMBER = 3; - private ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Events events_; - /** - *
-         * Events array
-         * 
- * - * .ru.inr.mass.data.proto.Point.Channel.Block.Events events = 3; - * @return Whether the events field is set. - */ - @java.lang.Override - public boolean hasEvents() { - return events_ != null; - } - /** - *
-         * Events array
-         * 
- * - * .ru.inr.mass.data.proto.Point.Channel.Block.Events events = 3; - * @return The events. - */ - @java.lang.Override - public ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Events getEvents() { - return events_ == null ? ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Events.getDefaultInstance() : events_; - } - /** - *
-         * Events array
-         * 
- * - * .ru.inr.mass.data.proto.Point.Channel.Block.Events events = 3; - */ - @java.lang.Override - public ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.EventsOrBuilder getEventsOrBuilder() { - return getEvents(); - } - - public static final int LENGTH_FIELD_NUMBER = 4; - private long length_; - /** - *
-         * block size in nanos. If missing, take from meta.
-         * 
- * - * uint64 length = 4; - * @return The length. - */ - @java.lang.Override - public long getLength() { - return length_; - } - - public static final int BIN_SIZE_FIELD_NUMBER = 5; - private long binSize_; - /** - *
-         * tick size in nanos. Obsolete, to be removed
-         * 
- * - * uint64 bin_size = 5; - * @return The binSize. - */ - @java.lang.Override - public long getBinSize() { - return binSize_; - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (time_ != 0L) { - output.writeUInt64(1, time_); - } - for (int i = 0; i < frames_.size(); i++) { - output.writeMessage(2, frames_.get(i)); - } - if (events_ != null) { - output.writeMessage(3, getEvents()); - } - if (length_ != 0L) { - output.writeUInt64(4, length_); - } - if (binSize_ != 0L) { - output.writeUInt64(5, binSize_); - } - unknownFields.writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (time_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(1, time_); - } - for (int i = 0; i < frames_.size(); i++) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(2, frames_.get(i)); - } - if (events_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(3, getEvents()); - } - if (length_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(4, length_); - } - if (binSize_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(5, binSize_); - } - size += unknownFields.getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof ru.inr.mass.data.proto.NumassProto.Point.Channel.Block)) { - return super.equals(obj); - } - ru.inr.mass.data.proto.NumassProto.Point.Channel.Block other = (ru.inr.mass.data.proto.NumassProto.Point.Channel.Block) obj; - - if (getTime() - != other.getTime()) return false; - if (!getFramesList() - .equals(other.getFramesList())) return false; - if (hasEvents() != other.hasEvents()) return false; - if (hasEvents()) { - if (!getEvents() - .equals(other.getEvents())) return false; - } - if (getLength() - != other.getLength()) return false; - if (getBinSize() - != other.getBinSize()) return false; - if (!unknownFields.equals(other.unknownFields)) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + TIME_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getTime()); - if (getFramesCount() > 0) { - hash = (37 * hash) + FRAMES_FIELD_NUMBER; - hash = (53 * hash) + getFramesList().hashCode(); - } - if (hasEvents()) { - hash = (37 * hash) + EVENTS_FIELD_NUMBER; - hash = (53 * hash) + getEvents().hashCode(); - } - hash = (37 * hash) + LENGTH_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getLength()); - hash = (37 * hash) + BIN_SIZE_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getBinSize()); - hash = (29 * hash) + unknownFields.hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static ru.inr.mass.data.proto.NumassProto.Point.Channel.Block parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static ru.inr.mass.data.proto.NumassProto.Point.Channel.Block parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static ru.inr.mass.data.proto.NumassProto.Point.Channel.Block parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static ru.inr.mass.data.proto.NumassProto.Point.Channel.Block parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static ru.inr.mass.data.proto.NumassProto.Point.Channel.Block parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static ru.inr.mass.data.proto.NumassProto.Point.Channel.Block parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static ru.inr.mass.data.proto.NumassProto.Point.Channel.Block parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static ru.inr.mass.data.proto.NumassProto.Point.Channel.Block parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - public static ru.inr.mass.data.proto.NumassProto.Point.Channel.Block parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - public static ru.inr.mass.data.proto.NumassProto.Point.Channel.Block parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static ru.inr.mass.data.proto.NumassProto.Point.Channel.Block parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static ru.inr.mass.data.proto.NumassProto.Point.Channel.Block parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(ru.inr.mass.data.proto.NumassProto.Point.Channel.Block prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - *
-         *A continuous measurement block
-         * 
- * - * Protobuf type {@code ru.inr.mass.data.proto.Point.Channel.Block} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:ru.inr.mass.data.proto.Point.Channel.Block) - ru.inr.mass.data.proto.NumassProto.Point.Channel.BlockOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return ru.inr.mass.data.proto.NumassProto.internal_static_ru_inr_mass_data_proto_Point_Channel_Block_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return ru.inr.mass.data.proto.NumassProto.internal_static_ru_inr_mass_data_proto_Point_Channel_Block_fieldAccessorTable - .ensureFieldAccessorsInitialized( - ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.class, ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Builder.class); - } - - // Construct using ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.newBuilder() - private Builder() { - maybeForceBuilderInitialization(); - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - maybeForceBuilderInitialization(); - } - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3 - .alwaysUseFieldBuilders) { - getFramesFieldBuilder(); - } - } - @java.lang.Override - public Builder clear() { - super.clear(); - time_ = 0L; - - if (framesBuilder_ == null) { - frames_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); - } else { - framesBuilder_.clear(); - } - if (eventsBuilder_ == null) { - events_ = null; - } else { - events_ = null; - eventsBuilder_ = null; - } - length_ = 0L; - - binSize_ = 0L; - - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return ru.inr.mass.data.proto.NumassProto.internal_static_ru_inr_mass_data_proto_Point_Channel_Block_descriptor; - } - - @java.lang.Override - public ru.inr.mass.data.proto.NumassProto.Point.Channel.Block getDefaultInstanceForType() { - return ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.getDefaultInstance(); - } - - @java.lang.Override - public ru.inr.mass.data.proto.NumassProto.Point.Channel.Block build() { - ru.inr.mass.data.proto.NumassProto.Point.Channel.Block result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public ru.inr.mass.data.proto.NumassProto.Point.Channel.Block buildPartial() { - ru.inr.mass.data.proto.NumassProto.Point.Channel.Block result = new ru.inr.mass.data.proto.NumassProto.Point.Channel.Block(this); - int from_bitField0_ = bitField0_; - result.time_ = time_; - if (framesBuilder_ == null) { - if (((bitField0_ & 0x00000001) != 0)) { - frames_ = java.util.Collections.unmodifiableList(frames_); - bitField0_ = (bitField0_ & ~0x00000001); - } - result.frames_ = frames_; - } else { - result.frames_ = framesBuilder_.build(); - } - if (eventsBuilder_ == null) { - result.events_ = events_; - } else { - result.events_ = eventsBuilder_.build(); - } - result.length_ = length_; - result.binSize_ = binSize_; - onBuilt(); - return result; - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof ru.inr.mass.data.proto.NumassProto.Point.Channel.Block) { - return mergeFrom((ru.inr.mass.data.proto.NumassProto.Point.Channel.Block)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(ru.inr.mass.data.proto.NumassProto.Point.Channel.Block other) { - if (other == ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.getDefaultInstance()) return this; - if (other.getTime() != 0L) { - setTime(other.getTime()); - } - if (framesBuilder_ == null) { - if (!other.frames_.isEmpty()) { - if (frames_.isEmpty()) { - frames_ = other.frames_; - bitField0_ = (bitField0_ & ~0x00000001); - } else { - ensureFramesIsMutable(); - frames_.addAll(other.frames_); - } - onChanged(); - } - } else { - if (!other.frames_.isEmpty()) { - if (framesBuilder_.isEmpty()) { - framesBuilder_.dispose(); - framesBuilder_ = null; - frames_ = other.frames_; - bitField0_ = (bitField0_ & ~0x00000001); - framesBuilder_ = - com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? - getFramesFieldBuilder() : null; - } else { - framesBuilder_.addAllMessages(other.frames_); - } - } - } - if (other.hasEvents()) { - mergeEvents(other.getEvents()); - } - if (other.getLength() != 0L) { - setLength(other.getLength()); - } - if (other.getBinSize() != 0L) { - setBinSize(other.getBinSize()); - } - this.mergeUnknownFields(other.unknownFields); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - ru.inr.mass.data.proto.NumassProto.Point.Channel.Block parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (ru.inr.mass.data.proto.NumassProto.Point.Channel.Block) e.getUnfinishedMessage(); - throw e.unwrapIOException(); - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - private long time_ ; - /** - *
-           * Block start in epoch nanos
-           * 
- * - * uint64 time = 1; - * @return The time. - */ - @java.lang.Override - public long getTime() { - return time_; - } - /** - *
-           * Block start in epoch nanos
-           * 
- * - * uint64 time = 1; - * @param value The time to set. - * @return This builder for chaining. - */ - public Builder setTime(long value) { - - time_ = value; - onChanged(); - return this; - } - /** - *
-           * Block start in epoch nanos
-           * 
- * - * uint64 time = 1; - * @return This builder for chaining. - */ - public Builder clearTime() { - - time_ = 0L; - onChanged(); - return this; - } - - private java.util.List frames_ = - java.util.Collections.emptyList(); - private void ensureFramesIsMutable() { - if (!((bitField0_ & 0x00000001) != 0)) { - frames_ = new java.util.ArrayList(frames_); - bitField0_ |= 0x00000001; - } - } - - private com.google.protobuf.RepeatedFieldBuilderV3< - ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Frame, ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Frame.Builder, ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.FrameOrBuilder> framesBuilder_; - - /** - *
-           * Frames array
-           * 
- * - * repeated .ru.inr.mass.data.proto.Point.Channel.Block.Frame frames = 2; - */ - public java.util.List getFramesList() { - if (framesBuilder_ == null) { - return java.util.Collections.unmodifiableList(frames_); - } else { - return framesBuilder_.getMessageList(); - } - } - /** - *
-           * Frames array
-           * 
- * - * repeated .ru.inr.mass.data.proto.Point.Channel.Block.Frame frames = 2; - */ - public int getFramesCount() { - if (framesBuilder_ == null) { - return frames_.size(); - } else { - return framesBuilder_.getCount(); - } - } - /** - *
-           * Frames array
-           * 
- * - * repeated .ru.inr.mass.data.proto.Point.Channel.Block.Frame frames = 2; - */ - public ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Frame getFrames(int index) { - if (framesBuilder_ == null) { - return frames_.get(index); - } else { - return framesBuilder_.getMessage(index); - } - } - /** - *
-           * Frames array
-           * 
- * - * repeated .ru.inr.mass.data.proto.Point.Channel.Block.Frame frames = 2; - */ - public Builder setFrames( - int index, ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Frame value) { - if (framesBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureFramesIsMutable(); - frames_.set(index, value); - onChanged(); - } else { - framesBuilder_.setMessage(index, value); - } - return this; - } - /** - *
-           * Frames array
-           * 
- * - * repeated .ru.inr.mass.data.proto.Point.Channel.Block.Frame frames = 2; - */ - public Builder setFrames( - int index, ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Frame.Builder builderForValue) { - if (framesBuilder_ == null) { - ensureFramesIsMutable(); - frames_.set(index, builderForValue.build()); - onChanged(); - } else { - framesBuilder_.setMessage(index, builderForValue.build()); - } - return this; - } - /** - *
-           * Frames array
-           * 
- * - * repeated .ru.inr.mass.data.proto.Point.Channel.Block.Frame frames = 2; - */ - public Builder addFrames(ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Frame value) { - if (framesBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureFramesIsMutable(); - frames_.add(value); - onChanged(); - } else { - framesBuilder_.addMessage(value); - } - return this; - } - /** - *
-           * Frames array
-           * 
- * - * repeated .ru.inr.mass.data.proto.Point.Channel.Block.Frame frames = 2; - */ - public Builder addFrames( - int index, ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Frame value) { - if (framesBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureFramesIsMutable(); - frames_.add(index, value); - onChanged(); - } else { - framesBuilder_.addMessage(index, value); - } - return this; - } - /** - *
-           * Frames array
-           * 
- * - * repeated .ru.inr.mass.data.proto.Point.Channel.Block.Frame frames = 2; - */ - public Builder addFrames( - ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Frame.Builder builderForValue) { - if (framesBuilder_ == null) { - ensureFramesIsMutable(); - frames_.add(builderForValue.build()); - onChanged(); - } else { - framesBuilder_.addMessage(builderForValue.build()); - } - return this; - } - /** - *
-           * Frames array
-           * 
- * - * repeated .ru.inr.mass.data.proto.Point.Channel.Block.Frame frames = 2; - */ - public Builder addFrames( - int index, ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Frame.Builder builderForValue) { - if (framesBuilder_ == null) { - ensureFramesIsMutable(); - frames_.add(index, builderForValue.build()); - onChanged(); - } else { - framesBuilder_.addMessage(index, builderForValue.build()); - } - return this; - } - /** - *
-           * Frames array
-           * 
- * - * repeated .ru.inr.mass.data.proto.Point.Channel.Block.Frame frames = 2; - */ - public Builder addAllFrames( - java.lang.Iterable values) { - if (framesBuilder_ == null) { - ensureFramesIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll( - values, frames_); - onChanged(); - } else { - framesBuilder_.addAllMessages(values); - } - return this; - } - /** - *
-           * Frames array
-           * 
- * - * repeated .ru.inr.mass.data.proto.Point.Channel.Block.Frame frames = 2; - */ - public Builder clearFrames() { - if (framesBuilder_ == null) { - frames_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); - onChanged(); - } else { - framesBuilder_.clear(); - } - return this; - } - /** - *
-           * Frames array
-           * 
- * - * repeated .ru.inr.mass.data.proto.Point.Channel.Block.Frame frames = 2; - */ - public Builder removeFrames(int index) { - if (framesBuilder_ == null) { - ensureFramesIsMutable(); - frames_.remove(index); - onChanged(); - } else { - framesBuilder_.remove(index); - } - return this; - } - /** - *
-           * Frames array
-           * 
- * - * repeated .ru.inr.mass.data.proto.Point.Channel.Block.Frame frames = 2; - */ - public ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Frame.Builder getFramesBuilder( - int index) { - return getFramesFieldBuilder().getBuilder(index); - } - /** - *
-           * Frames array
-           * 
- * - * repeated .ru.inr.mass.data.proto.Point.Channel.Block.Frame frames = 2; - */ - public ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.FrameOrBuilder getFramesOrBuilder( - int index) { - if (framesBuilder_ == null) { - return frames_.get(index); } else { - return framesBuilder_.getMessageOrBuilder(index); - } - } - /** - *
-           * Frames array
-           * 
- * - * repeated .ru.inr.mass.data.proto.Point.Channel.Block.Frame frames = 2; - */ - public java.util.List - getFramesOrBuilderList() { - if (framesBuilder_ != null) { - return framesBuilder_.getMessageOrBuilderList(); - } else { - return java.util.Collections.unmodifiableList(frames_); - } - } - /** - *
-           * Frames array
-           * 
- * - * repeated .ru.inr.mass.data.proto.Point.Channel.Block.Frame frames = 2; - */ - public ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Frame.Builder addFramesBuilder() { - return getFramesFieldBuilder().addBuilder( - ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Frame.getDefaultInstance()); - } - /** - *
-           * Frames array
-           * 
- * - * repeated .ru.inr.mass.data.proto.Point.Channel.Block.Frame frames = 2; - */ - public ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Frame.Builder addFramesBuilder( - int index) { - return getFramesFieldBuilder().addBuilder( - index, ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Frame.getDefaultInstance()); - } - /** - *
-           * Frames array
-           * 
- * - * repeated .ru.inr.mass.data.proto.Point.Channel.Block.Frame frames = 2; - */ - public java.util.List - getFramesBuilderList() { - return getFramesFieldBuilder().getBuilderList(); - } - private com.google.protobuf.RepeatedFieldBuilderV3< - ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Frame, ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Frame.Builder, ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.FrameOrBuilder> - getFramesFieldBuilder() { - if (framesBuilder_ == null) { - framesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< - ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Frame, ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Frame.Builder, ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.FrameOrBuilder>( - frames_, - ((bitField0_ & 0x00000001) != 0), - getParentForChildren(), - isClean()); - frames_ = null; - } - return framesBuilder_; - } - - private ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Events events_; - private com.google.protobuf.SingleFieldBuilderV3< - ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Events, ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Events.Builder, ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.EventsOrBuilder> eventsBuilder_; - /** - *
-           * Events array
-           * 
- * - * .ru.inr.mass.data.proto.Point.Channel.Block.Events events = 3; - * @return Whether the events field is set. - */ - public boolean hasEvents() { - return eventsBuilder_ != null || events_ != null; - } - /** - *
-           * Events array
-           * 
- * - * .ru.inr.mass.data.proto.Point.Channel.Block.Events events = 3; - * @return The events. - */ - public ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Events getEvents() { - if (eventsBuilder_ == null) { - return events_ == null ? ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Events.getDefaultInstance() : events_; - } else { - return eventsBuilder_.getMessage(); - } - } - /** - *
-           * Events array
-           * 
- * - * .ru.inr.mass.data.proto.Point.Channel.Block.Events events = 3; - */ - public Builder setEvents(ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Events value) { - if (eventsBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - events_ = value; - onChanged(); - } else { - eventsBuilder_.setMessage(value); - } - - return this; - } - /** - *
-           * Events array
-           * 
- * - * .ru.inr.mass.data.proto.Point.Channel.Block.Events events = 3; - */ - public Builder setEvents( - ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Events.Builder builderForValue) { - if (eventsBuilder_ == null) { - events_ = builderForValue.build(); - onChanged(); - } else { - eventsBuilder_.setMessage(builderForValue.build()); - } - - return this; - } - /** - *
-           * Events array
-           * 
- * - * .ru.inr.mass.data.proto.Point.Channel.Block.Events events = 3; - */ - public Builder mergeEvents(ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Events value) { - if (eventsBuilder_ == null) { - if (events_ != null) { - events_ = - ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Events.newBuilder(events_).mergeFrom(value).buildPartial(); - } else { - events_ = value; - } - onChanged(); - } else { - eventsBuilder_.mergeFrom(value); - } - - return this; - } - /** - *
-           * Events array
-           * 
- * - * .ru.inr.mass.data.proto.Point.Channel.Block.Events events = 3; - */ - public Builder clearEvents() { - if (eventsBuilder_ == null) { - events_ = null; - onChanged(); - } else { - events_ = null; - eventsBuilder_ = null; - } - - return this; - } - /** - *
-           * Events array
-           * 
- * - * .ru.inr.mass.data.proto.Point.Channel.Block.Events events = 3; - */ - public ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Events.Builder getEventsBuilder() { - - onChanged(); - return getEventsFieldBuilder().getBuilder(); - } - /** - *
-           * Events array
-           * 
- * - * .ru.inr.mass.data.proto.Point.Channel.Block.Events events = 3; - */ - public ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.EventsOrBuilder getEventsOrBuilder() { - if (eventsBuilder_ != null) { - return eventsBuilder_.getMessageOrBuilder(); - } else { - return events_ == null ? - ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Events.getDefaultInstance() : events_; - } - } - /** - *
-           * Events array
-           * 
- * - * .ru.inr.mass.data.proto.Point.Channel.Block.Events events = 3; - */ - private com.google.protobuf.SingleFieldBuilderV3< - ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Events, ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Events.Builder, ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.EventsOrBuilder> - getEventsFieldBuilder() { - if (eventsBuilder_ == null) { - eventsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Events, ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Events.Builder, ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.EventsOrBuilder>( - getEvents(), - getParentForChildren(), - isClean()); - events_ = null; - } - return eventsBuilder_; - } - - private long length_ ; - /** - *
-           * block size in nanos. If missing, take from meta.
-           * 
- * - * uint64 length = 4; - * @return The length. - */ - @java.lang.Override - public long getLength() { - return length_; - } - /** - *
-           * block size in nanos. If missing, take from meta.
-           * 
- * - * uint64 length = 4; - * @param value The length to set. - * @return This builder for chaining. - */ - public Builder setLength(long value) { - - length_ = value; - onChanged(); - return this; - } - /** - *
-           * block size in nanos. If missing, take from meta.
-           * 
- * - * uint64 length = 4; - * @return This builder for chaining. - */ - public Builder clearLength() { - - length_ = 0L; - onChanged(); - return this; - } - - private long binSize_ ; - /** - *
-           * tick size in nanos. Obsolete, to be removed
-           * 
- * - * uint64 bin_size = 5; - * @return The binSize. - */ - @java.lang.Override - public long getBinSize() { - return binSize_; - } - /** - *
-           * tick size in nanos. Obsolete, to be removed
-           * 
- * - * uint64 bin_size = 5; - * @param value The binSize to set. - * @return This builder for chaining. - */ - public Builder setBinSize(long value) { - - binSize_ = value; - onChanged(); - return this; - } - /** - *
-           * tick size in nanos. Obsolete, to be removed
-           * 
- * - * uint64 bin_size = 5; - * @return This builder for chaining. - */ - public Builder clearBinSize() { - - binSize_ = 0L; - onChanged(); - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:ru.inr.mass.data.proto.Point.Channel.Block) - } - - // @@protoc_insertion_point(class_scope:ru.inr.mass.data.proto.Point.Channel.Block) - private static final ru.inr.mass.data.proto.NumassProto.Point.Channel.Block DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new ru.inr.mass.data.proto.NumassProto.Point.Channel.Block(); - } - - public static ru.inr.mass.data.proto.NumassProto.Point.Channel.Block getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public Block parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new Block(input, extensionRegistry); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public ru.inr.mass.data.proto.NumassProto.Point.Channel.Block getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - public static final int ID_FIELD_NUMBER = 1; - private long id_; - /** - *
-       * The number of measuring channel
-       * 
- * - * uint64 id = 1; - * @return The id. - */ - @java.lang.Override - public long getId() { - return id_; - } - - public static final int BLOCKS_FIELD_NUMBER = 2; - private java.util.List blocks_; - /** - *
-       * Blocks
-       * 
- * - * repeated .ru.inr.mass.data.proto.Point.Channel.Block blocks = 2; - */ - @java.lang.Override - public java.util.List getBlocksList() { - return blocks_; - } - /** - *
-       * Blocks
-       * 
- * - * repeated .ru.inr.mass.data.proto.Point.Channel.Block blocks = 2; - */ - @java.lang.Override - public java.util.List - getBlocksOrBuilderList() { - return blocks_; - } - /** - *
-       * Blocks
-       * 
- * - * repeated .ru.inr.mass.data.proto.Point.Channel.Block blocks = 2; - */ - @java.lang.Override - public int getBlocksCount() { - return blocks_.size(); - } - /** - *
-       * Blocks
-       * 
- * - * repeated .ru.inr.mass.data.proto.Point.Channel.Block blocks = 2; - */ - @java.lang.Override - public ru.inr.mass.data.proto.NumassProto.Point.Channel.Block getBlocks(int index) { - return blocks_.get(index); - } - /** - *
-       * Blocks
-       * 
- * - * repeated .ru.inr.mass.data.proto.Point.Channel.Block blocks = 2; - */ - @java.lang.Override - public ru.inr.mass.data.proto.NumassProto.Point.Channel.BlockOrBuilder getBlocksOrBuilder( - int index) { - return blocks_.get(index); - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (id_ != 0L) { - output.writeUInt64(1, id_); - } - for (int i = 0; i < blocks_.size(); i++) { - output.writeMessage(2, blocks_.get(i)); - } - unknownFields.writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (id_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(1, id_); - } - for (int i = 0; i < blocks_.size(); i++) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(2, blocks_.get(i)); - } - size += unknownFields.getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof ru.inr.mass.data.proto.NumassProto.Point.Channel)) { - return super.equals(obj); - } - ru.inr.mass.data.proto.NumassProto.Point.Channel other = (ru.inr.mass.data.proto.NumassProto.Point.Channel) obj; - - if (getId() - != other.getId()) return false; - if (!getBlocksList() - .equals(other.getBlocksList())) return false; - if (!unknownFields.equals(other.unknownFields)) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + ID_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getId()); - if (getBlocksCount() > 0) { - hash = (37 * hash) + BLOCKS_FIELD_NUMBER; - hash = (53 * hash) + getBlocksList().hashCode(); - } - hash = (29 * hash) + unknownFields.hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static ru.inr.mass.data.proto.NumassProto.Point.Channel parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static ru.inr.mass.data.proto.NumassProto.Point.Channel parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static ru.inr.mass.data.proto.NumassProto.Point.Channel parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static ru.inr.mass.data.proto.NumassProto.Point.Channel parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static ru.inr.mass.data.proto.NumassProto.Point.Channel parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static ru.inr.mass.data.proto.NumassProto.Point.Channel parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static ru.inr.mass.data.proto.NumassProto.Point.Channel parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static ru.inr.mass.data.proto.NumassProto.Point.Channel parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - public static ru.inr.mass.data.proto.NumassProto.Point.Channel parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - public static ru.inr.mass.data.proto.NumassProto.Point.Channel parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static ru.inr.mass.data.proto.NumassProto.Point.Channel parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static ru.inr.mass.data.proto.NumassProto.Point.Channel parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(ru.inr.mass.data.proto.NumassProto.Point.Channel prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - *
-       * A single channel for multichannel detector readout
-       * 
- * - * Protobuf type {@code ru.inr.mass.data.proto.Point.Channel} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:ru.inr.mass.data.proto.Point.Channel) - ru.inr.mass.data.proto.NumassProto.Point.ChannelOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return ru.inr.mass.data.proto.NumassProto.internal_static_ru_inr_mass_data_proto_Point_Channel_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return ru.inr.mass.data.proto.NumassProto.internal_static_ru_inr_mass_data_proto_Point_Channel_fieldAccessorTable - .ensureFieldAccessorsInitialized( - ru.inr.mass.data.proto.NumassProto.Point.Channel.class, ru.inr.mass.data.proto.NumassProto.Point.Channel.Builder.class); - } - - // Construct using ru.inr.mass.data.proto.NumassProto.Point.Channel.newBuilder() - private Builder() { - maybeForceBuilderInitialization(); - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - maybeForceBuilderInitialization(); - } - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3 - .alwaysUseFieldBuilders) { - getBlocksFieldBuilder(); - } - } - @java.lang.Override - public Builder clear() { - super.clear(); - id_ = 0L; - - if (blocksBuilder_ == null) { - blocks_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); - } else { - blocksBuilder_.clear(); - } - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return ru.inr.mass.data.proto.NumassProto.internal_static_ru_inr_mass_data_proto_Point_Channel_descriptor; - } - - @java.lang.Override - public ru.inr.mass.data.proto.NumassProto.Point.Channel getDefaultInstanceForType() { - return ru.inr.mass.data.proto.NumassProto.Point.Channel.getDefaultInstance(); - } - - @java.lang.Override - public ru.inr.mass.data.proto.NumassProto.Point.Channel build() { - ru.inr.mass.data.proto.NumassProto.Point.Channel result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public ru.inr.mass.data.proto.NumassProto.Point.Channel buildPartial() { - ru.inr.mass.data.proto.NumassProto.Point.Channel result = new ru.inr.mass.data.proto.NumassProto.Point.Channel(this); - int from_bitField0_ = bitField0_; - result.id_ = id_; - if (blocksBuilder_ == null) { - if (((bitField0_ & 0x00000001) != 0)) { - blocks_ = java.util.Collections.unmodifiableList(blocks_); - bitField0_ = (bitField0_ & ~0x00000001); - } - result.blocks_ = blocks_; - } else { - result.blocks_ = blocksBuilder_.build(); - } - onBuilt(); - return result; - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof ru.inr.mass.data.proto.NumassProto.Point.Channel) { - return mergeFrom((ru.inr.mass.data.proto.NumassProto.Point.Channel)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(ru.inr.mass.data.proto.NumassProto.Point.Channel other) { - if (other == ru.inr.mass.data.proto.NumassProto.Point.Channel.getDefaultInstance()) return this; - if (other.getId() != 0L) { - setId(other.getId()); - } - if (blocksBuilder_ == null) { - if (!other.blocks_.isEmpty()) { - if (blocks_.isEmpty()) { - blocks_ = other.blocks_; - bitField0_ = (bitField0_ & ~0x00000001); - } else { - ensureBlocksIsMutable(); - blocks_.addAll(other.blocks_); - } - onChanged(); - } - } else { - if (!other.blocks_.isEmpty()) { - if (blocksBuilder_.isEmpty()) { - blocksBuilder_.dispose(); - blocksBuilder_ = null; - blocks_ = other.blocks_; - bitField0_ = (bitField0_ & ~0x00000001); - blocksBuilder_ = - com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? - getBlocksFieldBuilder() : null; - } else { - blocksBuilder_.addAllMessages(other.blocks_); - } - } - } - this.mergeUnknownFields(other.unknownFields); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - ru.inr.mass.data.proto.NumassProto.Point.Channel parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (ru.inr.mass.data.proto.NumassProto.Point.Channel) e.getUnfinishedMessage(); - throw e.unwrapIOException(); - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - private long id_ ; - /** - *
-         * The number of measuring channel
-         * 
- * - * uint64 id = 1; - * @return The id. - */ - @java.lang.Override - public long getId() { - return id_; - } - /** - *
-         * The number of measuring channel
-         * 
- * - * uint64 id = 1; - * @param value The id to set. - * @return This builder for chaining. - */ - public Builder setId(long value) { - - id_ = value; - onChanged(); - return this; - } - /** - *
-         * The number of measuring channel
-         * 
- * - * uint64 id = 1; - * @return This builder for chaining. - */ - public Builder clearId() { - - id_ = 0L; - onChanged(); - return this; - } - - private java.util.List blocks_ = - java.util.Collections.emptyList(); - private void ensureBlocksIsMutable() { - if (!((bitField0_ & 0x00000001) != 0)) { - blocks_ = new java.util.ArrayList(blocks_); - bitField0_ |= 0x00000001; - } - } - - private com.google.protobuf.RepeatedFieldBuilderV3< - ru.inr.mass.data.proto.NumassProto.Point.Channel.Block, ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Builder, ru.inr.mass.data.proto.NumassProto.Point.Channel.BlockOrBuilder> blocksBuilder_; - - /** - *
-         * Blocks
-         * 
- * - * repeated .ru.inr.mass.data.proto.Point.Channel.Block blocks = 2; - */ - public java.util.List getBlocksList() { - if (blocksBuilder_ == null) { - return java.util.Collections.unmodifiableList(blocks_); - } else { - return blocksBuilder_.getMessageList(); - } - } - /** - *
-         * Blocks
-         * 
- * - * repeated .ru.inr.mass.data.proto.Point.Channel.Block blocks = 2; - */ - public int getBlocksCount() { - if (blocksBuilder_ == null) { - return blocks_.size(); - } else { - return blocksBuilder_.getCount(); - } - } - /** - *
-         * Blocks
-         * 
- * - * repeated .ru.inr.mass.data.proto.Point.Channel.Block blocks = 2; - */ - public ru.inr.mass.data.proto.NumassProto.Point.Channel.Block getBlocks(int index) { - if (blocksBuilder_ == null) { - return blocks_.get(index); - } else { - return blocksBuilder_.getMessage(index); - } - } - /** - *
-         * Blocks
-         * 
- * - * repeated .ru.inr.mass.data.proto.Point.Channel.Block blocks = 2; - */ - public Builder setBlocks( - int index, ru.inr.mass.data.proto.NumassProto.Point.Channel.Block value) { - if (blocksBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureBlocksIsMutable(); - blocks_.set(index, value); - onChanged(); - } else { - blocksBuilder_.setMessage(index, value); - } - return this; - } - /** - *
-         * Blocks
-         * 
- * - * repeated .ru.inr.mass.data.proto.Point.Channel.Block blocks = 2; - */ - public Builder setBlocks( - int index, ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Builder builderForValue) { - if (blocksBuilder_ == null) { - ensureBlocksIsMutable(); - blocks_.set(index, builderForValue.build()); - onChanged(); - } else { - blocksBuilder_.setMessage(index, builderForValue.build()); - } - return this; - } - /** - *
-         * Blocks
-         * 
- * - * repeated .ru.inr.mass.data.proto.Point.Channel.Block blocks = 2; - */ - public Builder addBlocks(ru.inr.mass.data.proto.NumassProto.Point.Channel.Block value) { - if (blocksBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureBlocksIsMutable(); - blocks_.add(value); - onChanged(); - } else { - blocksBuilder_.addMessage(value); - } - return this; - } - /** - *
-         * Blocks
-         * 
- * - * repeated .ru.inr.mass.data.proto.Point.Channel.Block blocks = 2; - */ - public Builder addBlocks( - int index, ru.inr.mass.data.proto.NumassProto.Point.Channel.Block value) { - if (blocksBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureBlocksIsMutable(); - blocks_.add(index, value); - onChanged(); - } else { - blocksBuilder_.addMessage(index, value); - } - return this; - } - /** - *
-         * Blocks
-         * 
- * - * repeated .ru.inr.mass.data.proto.Point.Channel.Block blocks = 2; - */ - public Builder addBlocks( - ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Builder builderForValue) { - if (blocksBuilder_ == null) { - ensureBlocksIsMutable(); - blocks_.add(builderForValue.build()); - onChanged(); - } else { - blocksBuilder_.addMessage(builderForValue.build()); - } - return this; - } - /** - *
-         * Blocks
-         * 
- * - * repeated .ru.inr.mass.data.proto.Point.Channel.Block blocks = 2; - */ - public Builder addBlocks( - int index, ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Builder builderForValue) { - if (blocksBuilder_ == null) { - ensureBlocksIsMutable(); - blocks_.add(index, builderForValue.build()); - onChanged(); - } else { - blocksBuilder_.addMessage(index, builderForValue.build()); - } - return this; - } - /** - *
-         * Blocks
-         * 
- * - * repeated .ru.inr.mass.data.proto.Point.Channel.Block blocks = 2; - */ - public Builder addAllBlocks( - java.lang.Iterable values) { - if (blocksBuilder_ == null) { - ensureBlocksIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll( - values, blocks_); - onChanged(); - } else { - blocksBuilder_.addAllMessages(values); - } - return this; - } - /** - *
-         * Blocks
-         * 
- * - * repeated .ru.inr.mass.data.proto.Point.Channel.Block blocks = 2; - */ - public Builder clearBlocks() { - if (blocksBuilder_ == null) { - blocks_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); - onChanged(); - } else { - blocksBuilder_.clear(); - } - return this; - } - /** - *
-         * Blocks
-         * 
- * - * repeated .ru.inr.mass.data.proto.Point.Channel.Block blocks = 2; - */ - public Builder removeBlocks(int index) { - if (blocksBuilder_ == null) { - ensureBlocksIsMutable(); - blocks_.remove(index); - onChanged(); - } else { - blocksBuilder_.remove(index); - } - return this; - } - /** - *
-         * Blocks
-         * 
- * - * repeated .ru.inr.mass.data.proto.Point.Channel.Block blocks = 2; - */ - public ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Builder getBlocksBuilder( - int index) { - return getBlocksFieldBuilder().getBuilder(index); - } - /** - *
-         * Blocks
-         * 
- * - * repeated .ru.inr.mass.data.proto.Point.Channel.Block blocks = 2; - */ - public ru.inr.mass.data.proto.NumassProto.Point.Channel.BlockOrBuilder getBlocksOrBuilder( - int index) { - if (blocksBuilder_ == null) { - return blocks_.get(index); } else { - return blocksBuilder_.getMessageOrBuilder(index); - } - } - /** - *
-         * Blocks
-         * 
- * - * repeated .ru.inr.mass.data.proto.Point.Channel.Block blocks = 2; - */ - public java.util.List - getBlocksOrBuilderList() { - if (blocksBuilder_ != null) { - return blocksBuilder_.getMessageOrBuilderList(); - } else { - return java.util.Collections.unmodifiableList(blocks_); - } - } - /** - *
-         * Blocks
-         * 
- * - * repeated .ru.inr.mass.data.proto.Point.Channel.Block blocks = 2; - */ - public ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Builder addBlocksBuilder() { - return getBlocksFieldBuilder().addBuilder( - ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.getDefaultInstance()); - } - /** - *
-         * Blocks
-         * 
- * - * repeated .ru.inr.mass.data.proto.Point.Channel.Block blocks = 2; - */ - public ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Builder addBlocksBuilder( - int index) { - return getBlocksFieldBuilder().addBuilder( - index, ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.getDefaultInstance()); - } - /** - *
-         * Blocks
-         * 
- * - * repeated .ru.inr.mass.data.proto.Point.Channel.Block blocks = 2; - */ - public java.util.List - getBlocksBuilderList() { - return getBlocksFieldBuilder().getBuilderList(); - } - private com.google.protobuf.RepeatedFieldBuilderV3< - ru.inr.mass.data.proto.NumassProto.Point.Channel.Block, ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Builder, ru.inr.mass.data.proto.NumassProto.Point.Channel.BlockOrBuilder> - getBlocksFieldBuilder() { - if (blocksBuilder_ == null) { - blocksBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< - ru.inr.mass.data.proto.NumassProto.Point.Channel.Block, ru.inr.mass.data.proto.NumassProto.Point.Channel.Block.Builder, ru.inr.mass.data.proto.NumassProto.Point.Channel.BlockOrBuilder>( - blocks_, - ((bitField0_ & 0x00000001) != 0), - getParentForChildren(), - isClean()); - blocks_ = null; - } - return blocksBuilder_; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:ru.inr.mass.data.proto.Point.Channel) - } - - // @@protoc_insertion_point(class_scope:ru.inr.mass.data.proto.Point.Channel) - private static final ru.inr.mass.data.proto.NumassProto.Point.Channel DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new ru.inr.mass.data.proto.NumassProto.Point.Channel(); - } - - public static ru.inr.mass.data.proto.NumassProto.Point.Channel getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public Channel parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new Channel(input, extensionRegistry); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public ru.inr.mass.data.proto.NumassProto.Point.Channel getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - public static final int CHANNELS_FIELD_NUMBER = 1; - private java.util.List channels_; - /** - *
-     * Array of measuring channels
-     * 
- * - * repeated .ru.inr.mass.data.proto.Point.Channel channels = 1; - */ - @java.lang.Override - public java.util.List getChannelsList() { - return channels_; - } - /** - *
-     * Array of measuring channels
-     * 
- * - * repeated .ru.inr.mass.data.proto.Point.Channel channels = 1; - */ - @java.lang.Override - public java.util.List - getChannelsOrBuilderList() { - return channels_; - } - /** - *
-     * Array of measuring channels
-     * 
- * - * repeated .ru.inr.mass.data.proto.Point.Channel channels = 1; - */ - @java.lang.Override - public int getChannelsCount() { - return channels_.size(); - } - /** - *
-     * Array of measuring channels
-     * 
- * - * repeated .ru.inr.mass.data.proto.Point.Channel channels = 1; - */ - @java.lang.Override - public ru.inr.mass.data.proto.NumassProto.Point.Channel getChannels(int index) { - return channels_.get(index); - } - /** - *
-     * Array of measuring channels
-     * 
- * - * repeated .ru.inr.mass.data.proto.Point.Channel channels = 1; - */ - @java.lang.Override - public ru.inr.mass.data.proto.NumassProto.Point.ChannelOrBuilder getChannelsOrBuilder( - int index) { - return channels_.get(index); - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - for (int i = 0; i < channels_.size(); i++) { - output.writeMessage(1, channels_.get(i)); - } - unknownFields.writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - for (int i = 0; i < channels_.size(); i++) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(1, channels_.get(i)); - } - size += unknownFields.getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof ru.inr.mass.data.proto.NumassProto.Point)) { - return super.equals(obj); - } - ru.inr.mass.data.proto.NumassProto.Point other = (ru.inr.mass.data.proto.NumassProto.Point) obj; - - if (!getChannelsList() - .equals(other.getChannelsList())) return false; - if (!unknownFields.equals(other.unknownFields)) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - if (getChannelsCount() > 0) { - hash = (37 * hash) + CHANNELS_FIELD_NUMBER; - hash = (53 * hash) + getChannelsList().hashCode(); - } - hash = (29 * hash) + unknownFields.hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static ru.inr.mass.data.proto.NumassProto.Point parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static ru.inr.mass.data.proto.NumassProto.Point parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static ru.inr.mass.data.proto.NumassProto.Point parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static ru.inr.mass.data.proto.NumassProto.Point parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static ru.inr.mass.data.proto.NumassProto.Point parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static ru.inr.mass.data.proto.NumassProto.Point parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static ru.inr.mass.data.proto.NumassProto.Point parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static ru.inr.mass.data.proto.NumassProto.Point parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - public static ru.inr.mass.data.proto.NumassProto.Point parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - public static ru.inr.mass.data.proto.NumassProto.Point parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static ru.inr.mass.data.proto.NumassProto.Point parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static ru.inr.mass.data.proto.NumassProto.Point parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(ru.inr.mass.data.proto.NumassProto.Point prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code ru.inr.mass.data.proto.Point} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:ru.inr.mass.data.proto.Point) - ru.inr.mass.data.proto.NumassProto.PointOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return ru.inr.mass.data.proto.NumassProto.internal_static_ru_inr_mass_data_proto_Point_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return ru.inr.mass.data.proto.NumassProto.internal_static_ru_inr_mass_data_proto_Point_fieldAccessorTable - .ensureFieldAccessorsInitialized( - ru.inr.mass.data.proto.NumassProto.Point.class, ru.inr.mass.data.proto.NumassProto.Point.Builder.class); - } - - // Construct using ru.inr.mass.data.proto.NumassProto.Point.newBuilder() - private Builder() { - maybeForceBuilderInitialization(); - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - maybeForceBuilderInitialization(); - } - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3 - .alwaysUseFieldBuilders) { - getChannelsFieldBuilder(); - } - } - @java.lang.Override - public Builder clear() { - super.clear(); - if (channelsBuilder_ == null) { - channels_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); - } else { - channelsBuilder_.clear(); - } - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return ru.inr.mass.data.proto.NumassProto.internal_static_ru_inr_mass_data_proto_Point_descriptor; - } - - @java.lang.Override - public ru.inr.mass.data.proto.NumassProto.Point getDefaultInstanceForType() { - return ru.inr.mass.data.proto.NumassProto.Point.getDefaultInstance(); - } - - @java.lang.Override - public ru.inr.mass.data.proto.NumassProto.Point build() { - ru.inr.mass.data.proto.NumassProto.Point result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public ru.inr.mass.data.proto.NumassProto.Point buildPartial() { - ru.inr.mass.data.proto.NumassProto.Point result = new ru.inr.mass.data.proto.NumassProto.Point(this); - int from_bitField0_ = bitField0_; - if (channelsBuilder_ == null) { - if (((bitField0_ & 0x00000001) != 0)) { - channels_ = java.util.Collections.unmodifiableList(channels_); - bitField0_ = (bitField0_ & ~0x00000001); - } - result.channels_ = channels_; - } else { - result.channels_ = channelsBuilder_.build(); - } - onBuilt(); - return result; - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof ru.inr.mass.data.proto.NumassProto.Point) { - return mergeFrom((ru.inr.mass.data.proto.NumassProto.Point)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(ru.inr.mass.data.proto.NumassProto.Point other) { - if (other == ru.inr.mass.data.proto.NumassProto.Point.getDefaultInstance()) return this; - if (channelsBuilder_ == null) { - if (!other.channels_.isEmpty()) { - if (channels_.isEmpty()) { - channels_ = other.channels_; - bitField0_ = (bitField0_ & ~0x00000001); - } else { - ensureChannelsIsMutable(); - channels_.addAll(other.channels_); - } - onChanged(); - } - } else { - if (!other.channels_.isEmpty()) { - if (channelsBuilder_.isEmpty()) { - channelsBuilder_.dispose(); - channelsBuilder_ = null; - channels_ = other.channels_; - bitField0_ = (bitField0_ & ~0x00000001); - channelsBuilder_ = - com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? - getChannelsFieldBuilder() : null; - } else { - channelsBuilder_.addAllMessages(other.channels_); - } - } - } - this.mergeUnknownFields(other.unknownFields); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - ru.inr.mass.data.proto.NumassProto.Point parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (ru.inr.mass.data.proto.NumassProto.Point) e.getUnfinishedMessage(); - throw e.unwrapIOException(); - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - private java.util.List channels_ = - java.util.Collections.emptyList(); - private void ensureChannelsIsMutable() { - if (!((bitField0_ & 0x00000001) != 0)) { - channels_ = new java.util.ArrayList(channels_); - bitField0_ |= 0x00000001; - } - } - - private com.google.protobuf.RepeatedFieldBuilderV3< - ru.inr.mass.data.proto.NumassProto.Point.Channel, ru.inr.mass.data.proto.NumassProto.Point.Channel.Builder, ru.inr.mass.data.proto.NumassProto.Point.ChannelOrBuilder> channelsBuilder_; - - /** - *
-       * Array of measuring channels
-       * 
- * - * repeated .ru.inr.mass.data.proto.Point.Channel channels = 1; - */ - public java.util.List getChannelsList() { - if (channelsBuilder_ == null) { - return java.util.Collections.unmodifiableList(channels_); - } else { - return channelsBuilder_.getMessageList(); - } - } - /** - *
-       * Array of measuring channels
-       * 
- * - * repeated .ru.inr.mass.data.proto.Point.Channel channels = 1; - */ - public int getChannelsCount() { - if (channelsBuilder_ == null) { - return channels_.size(); - } else { - return channelsBuilder_.getCount(); - } - } - /** - *
-       * Array of measuring channels
-       * 
- * - * repeated .ru.inr.mass.data.proto.Point.Channel channels = 1; - */ - public ru.inr.mass.data.proto.NumassProto.Point.Channel getChannels(int index) { - if (channelsBuilder_ == null) { - return channels_.get(index); - } else { - return channelsBuilder_.getMessage(index); - } - } - /** - *
-       * Array of measuring channels
-       * 
- * - * repeated .ru.inr.mass.data.proto.Point.Channel channels = 1; - */ - public Builder setChannels( - int index, ru.inr.mass.data.proto.NumassProto.Point.Channel value) { - if (channelsBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureChannelsIsMutable(); - channels_.set(index, value); - onChanged(); - } else { - channelsBuilder_.setMessage(index, value); - } - return this; - } - /** - *
-       * Array of measuring channels
-       * 
- * - * repeated .ru.inr.mass.data.proto.Point.Channel channels = 1; - */ - public Builder setChannels( - int index, ru.inr.mass.data.proto.NumassProto.Point.Channel.Builder builderForValue) { - if (channelsBuilder_ == null) { - ensureChannelsIsMutable(); - channels_.set(index, builderForValue.build()); - onChanged(); - } else { - channelsBuilder_.setMessage(index, builderForValue.build()); - } - return this; - } - /** - *
-       * Array of measuring channels
-       * 
- * - * repeated .ru.inr.mass.data.proto.Point.Channel channels = 1; - */ - public Builder addChannels(ru.inr.mass.data.proto.NumassProto.Point.Channel value) { - if (channelsBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureChannelsIsMutable(); - channels_.add(value); - onChanged(); - } else { - channelsBuilder_.addMessage(value); - } - return this; - } - /** - *
-       * Array of measuring channels
-       * 
- * - * repeated .ru.inr.mass.data.proto.Point.Channel channels = 1; - */ - public Builder addChannels( - int index, ru.inr.mass.data.proto.NumassProto.Point.Channel value) { - if (channelsBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureChannelsIsMutable(); - channels_.add(index, value); - onChanged(); - } else { - channelsBuilder_.addMessage(index, value); - } - return this; - } - /** - *
-       * Array of measuring channels
-       * 
- * - * repeated .ru.inr.mass.data.proto.Point.Channel channels = 1; - */ - public Builder addChannels( - ru.inr.mass.data.proto.NumassProto.Point.Channel.Builder builderForValue) { - if (channelsBuilder_ == null) { - ensureChannelsIsMutable(); - channels_.add(builderForValue.build()); - onChanged(); - } else { - channelsBuilder_.addMessage(builderForValue.build()); - } - return this; - } - /** - *
-       * Array of measuring channels
-       * 
- * - * repeated .ru.inr.mass.data.proto.Point.Channel channels = 1; - */ - public Builder addChannels( - int index, ru.inr.mass.data.proto.NumassProto.Point.Channel.Builder builderForValue) { - if (channelsBuilder_ == null) { - ensureChannelsIsMutable(); - channels_.add(index, builderForValue.build()); - onChanged(); - } else { - channelsBuilder_.addMessage(index, builderForValue.build()); - } - return this; - } - /** - *
-       * Array of measuring channels
-       * 
- * - * repeated .ru.inr.mass.data.proto.Point.Channel channels = 1; - */ - public Builder addAllChannels( - java.lang.Iterable values) { - if (channelsBuilder_ == null) { - ensureChannelsIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll( - values, channels_); - onChanged(); - } else { - channelsBuilder_.addAllMessages(values); - } - return this; - } - /** - *
-       * Array of measuring channels
-       * 
- * - * repeated .ru.inr.mass.data.proto.Point.Channel channels = 1; - */ - public Builder clearChannels() { - if (channelsBuilder_ == null) { - channels_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); - onChanged(); - } else { - channelsBuilder_.clear(); - } - return this; - } - /** - *
-       * Array of measuring channels
-       * 
- * - * repeated .ru.inr.mass.data.proto.Point.Channel channels = 1; - */ - public Builder removeChannels(int index) { - if (channelsBuilder_ == null) { - ensureChannelsIsMutable(); - channels_.remove(index); - onChanged(); - } else { - channelsBuilder_.remove(index); - } - return this; - } - /** - *
-       * Array of measuring channels
-       * 
- * - * repeated .ru.inr.mass.data.proto.Point.Channel channels = 1; - */ - public ru.inr.mass.data.proto.NumassProto.Point.Channel.Builder getChannelsBuilder( - int index) { - return getChannelsFieldBuilder().getBuilder(index); - } - /** - *
-       * Array of measuring channels
-       * 
- * - * repeated .ru.inr.mass.data.proto.Point.Channel channels = 1; - */ - public ru.inr.mass.data.proto.NumassProto.Point.ChannelOrBuilder getChannelsOrBuilder( - int index) { - if (channelsBuilder_ == null) { - return channels_.get(index); } else { - return channelsBuilder_.getMessageOrBuilder(index); - } - } - /** - *
-       * Array of measuring channels
-       * 
- * - * repeated .ru.inr.mass.data.proto.Point.Channel channels = 1; - */ - public java.util.List - getChannelsOrBuilderList() { - if (channelsBuilder_ != null) { - return channelsBuilder_.getMessageOrBuilderList(); - } else { - return java.util.Collections.unmodifiableList(channels_); - } - } - /** - *
-       * Array of measuring channels
-       * 
- * - * repeated .ru.inr.mass.data.proto.Point.Channel channels = 1; - */ - public ru.inr.mass.data.proto.NumassProto.Point.Channel.Builder addChannelsBuilder() { - return getChannelsFieldBuilder().addBuilder( - ru.inr.mass.data.proto.NumassProto.Point.Channel.getDefaultInstance()); - } - /** - *
-       * Array of measuring channels
-       * 
- * - * repeated .ru.inr.mass.data.proto.Point.Channel channels = 1; - */ - public ru.inr.mass.data.proto.NumassProto.Point.Channel.Builder addChannelsBuilder( - int index) { - return getChannelsFieldBuilder().addBuilder( - index, ru.inr.mass.data.proto.NumassProto.Point.Channel.getDefaultInstance()); - } - /** - *
-       * Array of measuring channels
-       * 
- * - * repeated .ru.inr.mass.data.proto.Point.Channel channels = 1; - */ - public java.util.List - getChannelsBuilderList() { - return getChannelsFieldBuilder().getBuilderList(); - } - private com.google.protobuf.RepeatedFieldBuilderV3< - ru.inr.mass.data.proto.NumassProto.Point.Channel, ru.inr.mass.data.proto.NumassProto.Point.Channel.Builder, ru.inr.mass.data.proto.NumassProto.Point.ChannelOrBuilder> - getChannelsFieldBuilder() { - if (channelsBuilder_ == null) { - channelsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< - ru.inr.mass.data.proto.NumassProto.Point.Channel, ru.inr.mass.data.proto.NumassProto.Point.Channel.Builder, ru.inr.mass.data.proto.NumassProto.Point.ChannelOrBuilder>( - channels_, - ((bitField0_ & 0x00000001) != 0), - getParentForChildren(), - isClean()); - channels_ = null; - } - return channelsBuilder_; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:ru.inr.mass.data.proto.Point) - } - - // @@protoc_insertion_point(class_scope:ru.inr.mass.data.proto.Point) - private static final ru.inr.mass.data.proto.NumassProto.Point DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new ru.inr.mass.data.proto.NumassProto.Point(); - } - - public static ru.inr.mass.data.proto.NumassProto.Point getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public Point parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new Point(input, extensionRegistry); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public ru.inr.mass.data.proto.NumassProto.Point getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_ru_inr_mass_data_proto_Point_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_ru_inr_mass_data_proto_Point_fieldAccessorTable; - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_ru_inr_mass_data_proto_Point_Channel_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_ru_inr_mass_data_proto_Point_Channel_fieldAccessorTable; - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_ru_inr_mass_data_proto_Point_Channel_Block_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_ru_inr_mass_data_proto_Point_Channel_Block_fieldAccessorTable; - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_ru_inr_mass_data_proto_Point_Channel_Block_Frame_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_ru_inr_mass_data_proto_Point_Channel_Block_Frame_fieldAccessorTable; - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_ru_inr_mass_data_proto_Point_Channel_Block_Events_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_ru_inr_mass_data_proto_Point_Channel_Block_Events_fieldAccessorTable; - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - java.lang.String[] descriptorData = { - "\n)ru/inr/mass/data/proto/numass-proto.pr" + - "oto\022\026ru.inr.mass.data.proto\"\250\003\n\005Point\0227\n" + - "\010channels\030\001 \003(\0132%.ru.inr.mass.data.proto" + - ".Point.Channel\032\345\002\n\007Channel\022\n\n\002id\030\001 \001(\004\022;" + - "\n\006blocks\030\002 \003(\0132+.ru.inr.mass.data.proto." + - "Point.Channel.Block\032\220\002\n\005Block\022\014\n\004time\030\001 " + - "\001(\004\022A\n\006frames\030\002 \003(\01321.ru.inr.mass.data.p" + - "roto.Point.Channel.Block.Frame\022B\n\006events" + - "\030\003 \001(\01322.ru.inr.mass.data.proto.Point.Ch" + - "annel.Block.Events\022\016\n\006length\030\004 \001(\004\022\020\n\010bi" + - "n_size\030\005 \001(\004\032#\n\005Frame\022\014\n\004time\030\001 \001(\004\022\014\n\004d" + - "ata\030\002 \001(\014\032+\n\006Events\022\r\n\005times\030\001 \003(\004\022\022\n\nam" + - "plitudes\030\002 \003(\004b\006proto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - }); - internal_static_ru_inr_mass_data_proto_Point_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_ru_inr_mass_data_proto_Point_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_ru_inr_mass_data_proto_Point_descriptor, - new java.lang.String[] { "Channels", }); - internal_static_ru_inr_mass_data_proto_Point_Channel_descriptor = - internal_static_ru_inr_mass_data_proto_Point_descriptor.getNestedTypes().get(0); - internal_static_ru_inr_mass_data_proto_Point_Channel_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_ru_inr_mass_data_proto_Point_Channel_descriptor, - new java.lang.String[] { "Id", "Blocks", }); - internal_static_ru_inr_mass_data_proto_Point_Channel_Block_descriptor = - internal_static_ru_inr_mass_data_proto_Point_Channel_descriptor.getNestedTypes().get(0); - internal_static_ru_inr_mass_data_proto_Point_Channel_Block_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_ru_inr_mass_data_proto_Point_Channel_Block_descriptor, - new java.lang.String[] { "Time", "Frames", "Events", "Length", "BinSize", }); - internal_static_ru_inr_mass_data_proto_Point_Channel_Block_Frame_descriptor = - internal_static_ru_inr_mass_data_proto_Point_Channel_Block_descriptor.getNestedTypes().get(0); - internal_static_ru_inr_mass_data_proto_Point_Channel_Block_Frame_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_ru_inr_mass_data_proto_Point_Channel_Block_Frame_descriptor, - new java.lang.String[] { "Time", "Data", }); - internal_static_ru_inr_mass_data_proto_Point_Channel_Block_Events_descriptor = - internal_static_ru_inr_mass_data_proto_Point_Channel_Block_descriptor.getNestedTypes().get(1); - internal_static_ru_inr_mass_data_proto_Point_Channel_Block_Events_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_ru_inr_mass_data_proto_Point_Channel_Block_Events_descriptor, - new java.lang.String[] { "Times", "Amplitudes", }); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/numass-data-proto/src/main/kotlin/ru/inr/mass/data/proto/NumassDirectorySet.kt b/numass-data-proto/src/main/kotlin/ru/inr/mass/data/proto/NumassDirectorySet.kt index ffee513..6f18b9f 100644 --- a/numass-data-proto/src/main/kotlin/ru/inr/mass/data/proto/NumassDirectorySet.kt +++ b/numass-data-proto/src/main/kotlin/ru/inr/mass/data/proto/NumassDirectorySet.kt @@ -10,10 +10,7 @@ import ru.inr.mass.data.api.NumassPoint import ru.inr.mass.data.api.NumassSet import java.nio.file.Files import java.nio.file.Path -import kotlin.io.path.ExperimentalPathApi -import kotlin.io.path.div -import kotlin.io.path.exists -import kotlin.io.path.isDirectory +import kotlin.io.path.* import kotlin.streams.toList @OptIn(ExperimentalPathApi::class) @@ -35,7 +32,9 @@ public class NumassDirectorySet internal constructor( } override val points: List by lazy> { - Files.list(path).filter { it.fileName.startsWith("p") }.map { pointPath -> + Files.list(path).filter { + it.fileName.name.startsWith("p") + }.map { pointPath -> try { context.readNumassFile(pointPath) } catch (e: Exception) { diff --git a/numass-data-proto/src/main/kotlin/ru/inr/mass/data/proto/NumassEnvelopeType.kt b/numass-data-proto/src/main/kotlin/ru/inr/mass/data/proto/NumassEnvelopeType.kt deleted file mode 100644 index 2fa3e35..0000000 --- a/numass-data-proto/src/main/kotlin/ru/inr/mass/data/proto/NumassEnvelopeType.kt +++ /dev/null @@ -1,139 +0,0 @@ -///* -// * Copyright 2018 Alexander Nozik. -// * -// * Licensed under the Apache License, Version 2.0 (the "License"); -// * you may not use this file except in compliance with the License. -// * You may obtain a copy of the License at -// * -// * http://www.apache.org/licenses/LICENSE-2.0 -// * -// * Unless required by applicable law or agreed to in writing, software -// * distributed under the License is distributed on an "AS IS" BASIS, -// * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// * See the License for the specific language governing permissions and -// * limitations under the License. -// */ -// -//package ru.inr.mass.data.proto -// -//import hep.dataforge.io.envelopes.* -//import hep.dataforge.values.Value -//import org.slf4j.LoggerFactory -//import java.io.IOException -//import java.nio.ByteBuffer -//import java.nio.channels.FileChannel -//import java.nio.file.Path -//import java.nio.file.StandardOpenOption -//import java.util.* -// -///** -// * An envelope type for legacy numass tags. Reads legacy tag and writes DF02 tags -// */ -//class NumassEnvelopeType : EnvelopeType { -// -// override val code: Int = DefaultEnvelopeType.DEFAULT_ENVELOPE_CODE -// -// override val name: String = "numass" -// -// override fun description(): String = "Numass legacy envelope" -// -// /** -// * Read as legacy -// */ -// override fun getReader(properties: Map): EnvelopeReader { -// return NumassEnvelopeReader() -// } -// -// /** -// * Write as default -// */ -// override fun getWriter(properties: Map): EnvelopeWriter { -// return DefaultEnvelopeWriter(this, MetaType.resolve(properties)) -// } -// -// class LegacyTag : EnvelopeTag() { -// override val startSequence: ByteArray -// get() = LEGACY_START_SEQUENCE -// -// override val endSequence: ByteArray -// get() = LEGACY_END_SEQUENCE -// -// /** -// * Get the length of tag in bytes. -1 means undefined size in case tag was modified -// * -// * @return -// */ -// override val length: Int -// get() = 30 -// -// /** -// * Read leagscy version 1 tag without leading tag head -// * -// * @param buffer -// * @return -// * @throws IOException -// */ -// override fun readHeader(buffer: ByteBuffer): Map { -// val res = HashMap() -// -// val type = buffer.getInt(2) -// res[Envelope.TYPE_PROPERTY] = Value.of(type) -// -// val metaTypeCode = buffer.getShort(10) -// val metaType = MetaType.resolve(metaTypeCode) -// -// if (metaType != null) { -// res[Envelope.META_TYPE_PROPERTY] = metaType.name.parseValue() -// } else { -// LoggerFactory.getLogger(EnvelopeTag::class.java).warn("Could not resolve meta type. Using default") -// } -// -// val metaLength = Integer.toUnsignedLong(buffer.getInt(14)) -// res[Envelope.META_LENGTH_PROPERTY] = Value.of(metaLength) -// val dataLength = Integer.toUnsignedLong(buffer.getInt(22)) -// res[Envelope.DATA_LENGTH_PROPERTY] = Value.of(dataLength) -// return res -// } -// } -// -// private class NumassEnvelopeReader : DefaultEnvelopeReader() { -// override fun newTag(): EnvelopeTag { -// return LegacyTag() -// } -// } -// -// companion object { -// val INSTANCE = NumassEnvelopeType() -// -// val LEGACY_START_SEQUENCE = byteArrayOf('#'.toByte(), '!'.toByte()) -// val LEGACY_END_SEQUENCE = byteArrayOf('!'.toByte(), '#'.toByte(), '\r'.toByte(), '\n'.toByte()) -// -// /** -// * Replacement for standard type infer to include legacy type -// * -// * @param path -// * @return -// */ -// fun infer(path: Path): EnvelopeType? { -// return try { -// FileChannel.open(path, StandardOpenOption.READ).use { -// val buffer = it.map(FileChannel.MapMode.READ_ONLY, 0, 6) -// when { -// //TODO use templates from appropriate types -// buffer.get(0) == '#'.toByte() && buffer.get(1) == '!'.toByte() -> INSTANCE -// buffer.get(0) == '#'.toByte() && buffer.get(1) == '!'.toByte() && -// buffer.get(4) == 'T'.toByte() && buffer.get(5) == 'L'.toByte() -> TaglessEnvelopeType.INSTANCE -// buffer.get(0) == '#'.toByte() && buffer.get(1) == '~'.toByte() -> DefaultEnvelopeType.INSTANCE -// else -> null -// } -// } -// } catch (ex: Exception) { -// LoggerFactory.getLogger(EnvelopeType::class.java).warn("Could not infer envelope type of file {} due to exception: {}", path, ex) -// null -// } -// -// } -// -// } -// -//} diff --git a/numass-data-proto/src/main/kotlin/ru/inr/mass/data/proto/NumassProtoPlugin.kt b/numass-data-proto/src/main/kotlin/ru/inr/mass/data/proto/NumassProtoPlugin.kt index 883a7fd..d5deb69 100644 --- a/numass-data-proto/src/main/kotlin/ru/inr/mass/data/proto/NumassProtoPlugin.kt +++ b/numass-data-proto/src/main/kotlin/ru/inr/mass/data/proto/NumassProtoPlugin.kt @@ -4,17 +4,27 @@ import hep.dataforge.context.AbstractPlugin import hep.dataforge.context.Context import hep.dataforge.context.PluginFactory import hep.dataforge.context.PluginTag +import hep.dataforge.io.EnvelopeFormatFactory import hep.dataforge.io.IOPlugin import hep.dataforge.meta.Meta +import hep.dataforge.names.Name import kotlin.reflect.KClass public class NumassProtoPlugin : AbstractPlugin() { public val io: IOPlugin by require(IOPlugin) override val tag: PluginTag get() = Companion.tag + override fun content(target: String): Map { + return if(target== EnvelopeFormatFactory.ENVELOPE_FORMAT_TYPE){ + mapOf(TaggedNumassEnvelopeFormat.name to TaggedNumassEnvelopeFormat) + } else{ + super.content(target) + } + } + public companion object : PluginFactory { override fun invoke(meta: Meta, context: Context): NumassProtoPlugin = NumassProtoPlugin() override val tag: PluginTag = PluginTag("numass-proto", group = "ru.inr.mass") override val type: KClass = NumassProtoPlugin::class } -} \ No newline at end of file +} diff --git a/numass-data-proto/src/main/kotlin/ru/inr/mass/data/proto/TaggedNumassEnvelopeFormat.kt b/numass-data-proto/src/main/kotlin/ru/inr/mass/data/proto/TaggedNumassEnvelopeFormat.kt new file mode 100644 index 0000000..74aad61 --- /dev/null +++ b/numass-data-proto/src/main/kotlin/ru/inr/mass/data/proto/TaggedNumassEnvelopeFormat.kt @@ -0,0 +1,295 @@ +/* + * Copyright 2018 Alexander Nozik. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package ru.inr.mass.data.proto + +import hep.dataforge.context.Context +import hep.dataforge.io.* +import hep.dataforge.meta.Meta +import hep.dataforge.meta.get +import hep.dataforge.meta.string +import hep.dataforge.names.Name +import hep.dataforge.names.plus +import hep.dataforge.names.toName +import kotlinx.io.* +import java.util.* + + +/** + * A streaming-friendly envelope format with a short binary tag. + * TODO add description + */ +public class TaggedNumassEnvelopeFormat(private val io: IOPlugin) : EnvelopeFormat { + +// private val metaFormat = io.metaFormat(metaFormatKey) +// ?: error("Meta format with key $metaFormatKey could not be resolved in $io") + + + private fun Tag.toBinary() = Binary(24) { + writeRawString(START_SEQUENCE) + writeRawString("DFNU") + writeShort(metaFormatKey) + writeUInt(metaSize) + writeUInt(dataSize.toUInt()) + writeRawString(END_SEQUENCE) + } + + override fun writeEnvelope( + output: Output, + envelope: Envelope, + metaFormatFactory: MetaFormatFactory, + formatMeta: Meta, + ) { + error("Don't write legacy formats") +// val metaFormat = metaFormatFactory.invoke(formatMeta, io.context) +// val metaBytes = metaFormat.toBinary(envelope.meta) +// val actualSize: ULong = (envelope.data?.size ?: 0).toULong() +// val tag = Tag(metaFormatFactory.key, metaBytes.size.toUInt() + 2u, actualSize) +// output.writeBinary(tag.toBinary()) +// output.writeBinary(metaBytes) +// output.writeRawString("\r\n") +// envelope.data?.let { +// output.writeBinary(it) +// } +// output.flush() + } + + /** + * Read an envelope from input into memory + * + * @param input an input to read from + * @param formats a collection of meta formats to resolve + */ + override fun readObject(input: Input): Envelope { + val tag = input.readTag() + + val metaFormat = io.resolveMetaFormat(tag.metaFormatKey) + ?: error("Meta format with key ${tag.metaFormatKey} not found") + + val meta: Meta = metaFormat.readObject(input.limit(tag.metaSize.toInt())) + + val data = input.readBinary(tag.dataSize.toInt()) + + return SimpleEnvelope(meta, data) + } + + override fun readPartial(input: Input): PartialEnvelope { + val tag = input.readTag() + + val metaFormat = if (tag.metaFormatKey == 1.toShort()) { + JsonMetaFormat + } else { + io.resolveMetaFormat(tag.metaFormatKey) + ?: error("Meta format with key ${tag.metaFormatKey} not found") + } + + val meta: Meta = metaFormat.readObject(input.limit(tag.metaSize.toInt())) + + + return PartialEnvelope(meta, 30u + tag.metaSize, tag.dataSize) + } + + private data class Tag( + val metaFormatKey: Short, + val metaSize: UInt, + val dataSize: ULong, + ) + + override fun toMeta(): Meta = Meta { + IOFormat.NAME_KEY put name.toString() + } + + public companion object : EnvelopeFormatFactory { + private const val START_SEQUENCE = "#!" + private const val END_SEQUENCE = "!#\r\n" + + override val name: Name = super.name + "numass" + + override fun invoke(meta: Meta, context: Context): EnvelopeFormat { + val io = context.io + + val metaFormatName = meta["name"].string?.toName() ?: JsonMetaFormat.name + //Check if appropriate factory exists + io.metaFormatFactories.find { it.name == metaFormatName } ?: error("Meta format could not be resolved") + + return TaggedNumassEnvelopeFormat(io) + } + + private fun Input.readTag(): Tag { + val start = readRawString(2) + if (start != START_SEQUENCE) error("The input is not an envelope") + val versionString = readRawString(4) + val junk1 = readInt() + val metaFormatKey = readShort() + val junk2 = readShort() + val metaLength = readUInt() + val dataLength: ULong = readULong() + val end = readRawString(4) + if (end != END_SEQUENCE) error("The input is not an envelope") + return Tag(metaFormatKey, metaLength, dataLength) + } + + override fun peekFormat(io: IOPlugin, input: Input): EnvelopeFormat? { + return try { + input.preview { + val header = readRawString(30) + if (header.startsWith(START_SEQUENCE) && header.endsWith(END_SEQUENCE)) { + TaggedNumassEnvelopeFormat(io) + } else { + null + } + } + } catch (ex: Exception) { + null + } + } + + private val default by lazy { invoke() } + + override fun readPartial(input: Input): PartialEnvelope = + default.run { readPartial(input) } + + override fun writeEnvelope( + output: Output, + envelope: Envelope, + metaFormatFactory: MetaFormatFactory, + formatMeta: Meta, + ): Unit = default.run { + writeEnvelope( + output, + envelope, + metaFormatFactory, + formatMeta + ) + } + + override fun readObject(input: Input): Envelope = default.readObject(input) + } + +} + + +///** +// * An envelope type for legacy numass tags. Reads legacy tag and writes DF02 tags +// */ +//object NumassEnvelopeType : EnvelopeFormatFactory { +// +// override val code: Int = DefaultEnvelopeType.DEFAULT_ENVELOPE_CODE +// +// override val name: String = "numass" +// +// override fun description(): String = "Numass legacy envelope" +// +// /** +// * Read as legacy +// */ +// override fun getReader(properties: Map): EnvelopeReader { +// return NumassEnvelopeReader() +// } +// +// /** +// * Write as default +// */ +// override fun getWriter(properties: Map): EnvelopeWriter { +// return DefaultEnvelopeWriter(this, MetaType.resolve(properties)) +// } +// +// class LegacyTag : EnvelopeTag() { +// override val startSequence: ByteArray +// get() = LEGACY_START_SEQUENCE +// +// override val endSequence: ByteArray +// get() = LEGACY_END_SEQUENCE +// +// /** +// * Get the length of tag in bytes. -1 means undefined size in case tag was modified +// * +// * @return +// */ +// override val length: Int +// get() = 30 +// +// /** +// * Read leagscy version 1 tag without leading tag head +// * +// * @param buffer +// * @return +// * @throws IOException +// */ +// override fun readHeader(buffer: ByteBuffer): Map { +// val res = HashMap() +// +// val type = buffer.getInt(2) +// res[Envelope.TYPE_PROPERTY] = Value.of(type) +// +// val metaTypeCode = buffer.getShort(10) +// val metaType = MetaType.resolve(metaTypeCode) +// +// if (metaType != null) { +// res[Envelope.META_TYPE_PROPERTY] = metaType.name.parseValue() +// } else { +// LoggerFactory.getLogger(EnvelopeTag::class.java).warn("Could not resolve meta type. Using default") +// } +// +// val metaLength = Integer.toUnsignedLong(buffer.getInt(14)) +// res[Envelope.META_LENGTH_PROPERTY] = Value.of(metaLength) +// val dataLength = Integer.toUnsignedLong(buffer.getInt(22)) +// res[Envelope.DATA_LENGTH_PROPERTY] = Value.of(dataLength) +// return res +// } +// } +// +// private class NumassEnvelopeReader : DefaultEnvelopeReader() { +// override fun newTag(): EnvelopeTag { +// return LegacyTag() +// } +// } +// +// companion object { +// val INSTANCE = NumassEnvelopeType() +// +// val LEGACY_START_SEQUENCE = byteArrayOf('#'.toByte(), '!'.toByte()) +// val LEGACY_END_SEQUENCE = byteArrayOf('!'.toByte(), '#'.toByte(), '\r'.toByte(), '\n'.toByte()) +// +// /** +// * Replacement for standard type infer to include legacy type +// * +// * @param path +// * @return +// */ +// fun infer(path: Path): EnvelopeType? { +// return try { +// FileChannel.open(path, StandardOpenOption.READ).use { +// val buffer = it.map(FileChannel.MapMode.READ_ONLY, 0, 6) +// when { +// //TODO use templates from appropriate types +// buffer.get(0) == '#'.toByte() && buffer.get(1) == '!'.toByte() -> INSTANCE +// buffer.get(0) == '#'.toByte() && buffer.get(1) == '!'.toByte() && +// buffer.get(4) == 'T'.toByte() && buffer.get(5) == 'L'.toByte() -> TaglessEnvelopeType.INSTANCE +// buffer.get(0) == '#'.toByte() && buffer.get(1) == '~'.toByte() -> DefaultEnvelopeType.INSTANCE +// else -> null +// } +// } +// } catch (ex: Exception) { +// LoggerFactory.getLogger(EnvelopeType::class.java).warn("Could not infer envelope type of file {} due to exception: {}", path, ex) +// null +// } +// +// } +// +// } +// +//} diff --git a/numass-data-proto/src/test/kotlin/ru/inr/mass/data/proto/TestNumassDirectory.kt b/numass-data-proto/src/test/kotlin/ru/inr/mass/data/proto/TestNumassDirectory.kt new file mode 100644 index 0000000..52e0646 --- /dev/null +++ b/numass-data-proto/src/test/kotlin/ru/inr/mass/data/proto/TestNumassDirectory.kt @@ -0,0 +1,26 @@ +package ru.inr.mass.data.proto + +import hep.dataforge.context.Context +import hep.dataforge.meta.get +import hep.dataforge.meta.string +import hep.dataforge.meta.value +import hep.dataforge.values.ListValue +import org.junit.jupiter.api.Test +import java.nio.file.Path +import kotlin.test.assertEquals + +class TestNumassDirectory { + val context = Context("numass-test") { + plugin(NumassProtoPlugin) + } + + @Test + fun testDirectoryRead() { + val dataPath = Path.of("src/test/resources", "testData/set_4") + val testSet = context.readNumassDirectory(dataPath) + assertEquals("2018-04-13T22:01:46", testSet.meta["end_time"].string) + assertEquals(ListValue.EMPTY, testSet.meta["comments"].value) + assertEquals(31, testSet.points.size) + assertEquals("2018-04-13T21:56:09", testSet.points.find { it.index == 22 }?.meta["end_time"].string) + } +} \ No newline at end of file diff --git a/numass-data-proto/src/test/resources/testData/set_4/meta b/numass-data-proto/src/test/resources/testData/set_4/meta new file mode 100644 index 0000000000000000000000000000000000000000..60b243ef0ca71d6750008f7999e8e66a948c65cf GIT binary patch literal 444 zcmZvYOHRWu5QdX&q~4)Tx8&KREs+opu?B%qfg)sCj^mofaca9r0res*I1?vA*m-ot zShD09&;0ZK(}`tYSnHqPFUz)c*x%+hF`15>PiL&dMVv8QDd}e8mp1cy(iL!(14S9u z1vd_(r57e%G<%5SER3>b?)KjbE*MlG#}WxzE6OX=uu-a(SrFtLNuO{|O6+ST^WGb| zAP=H=$Ex-HZJIXo4-qaO3-9Xg`I2qR9Vyag_6Eo`SZ!}4dO`utsXE`w`b=)1pcNU^ zsloypQ9!GLYvqorB|Fx1I_b7;^8&wPAq`gnONm?BLr=qNGmi_yu!547v>Bvo!HIy3 x0o_k!&l&mpc#BhyEKrDGezZj@DAd3HY4fy&$uL$mb!)NN9~892u5)lk&L0K+dU*f< literal 0 HcmV?d00001 diff --git a/numass-data-proto/src/test/resources/testData/set_4/p0(10s)(HV1=18700) b/numass-data-proto/src/test/resources/testData/set_4/p0(10s)(HV1=18700) new file mode 100644 index 0000000000000000000000000000000000000000..397d2f309d91bc74177a376ccd881828e4a5a499 GIT binary patch literal 5566 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 Df6V4S literal 0 HcmV?d00001 diff --git a/numass-data-proto/src/test/resources/testData/set_4/p1(10s)(HV1=19015) b/numass-data-proto/src/test/resources/testData/set_4/p1(10s)(HV1=19015) new file mode 100644 index 0000000000000000000000000000000000000000..5088d9c5f51f67f5ba9eb61b20d0e22cf5989754 GIT binary patch literal 3556 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
  • e5o=?U7Br)I%7Vr(&s(slqy-CB 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 literal 0 HcmV?d00001 diff --git a/numass-data-proto/src/test/resources/testData/set_4/p14(10s)(HV1=18200) b/numass-data-proto/src/test/resources/testData/set_4/p14(10s)(HV1=18200) new file mode 100644 index 0000000000000000000000000000000000000000..1c7e87830eefafa17240b9ebe40da3e319b94253 GIT binary patch literal 5778 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 literal 0 HcmV?d00001 diff --git a/numass-data-proto/src/test/resources/testData/set_4/p15(10s)(HV1=18000) b/numass-data-proto/src/test/resources/testData/set_4/p15(10s)(HV1=18000) new file mode 100644 index 0000000000000000000000000000000000000000..a4275786df3e4216ca945745ffb062c8c9640da5 GIT binary patch literal 5979 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 r$r#5c literal 0 HcmV?d00001 diff --git a/numass-data-proto/src/test/resources/testData/set_4/p16(10s)(HV1=17500) b/numass-data-proto/src/test/resources/testData/set_4/p16(10s)(HV1=17500) new file mode 100644 index 0000000000000000000000000000000000000000..94edb84f4d6e25edf3407d863ae4abceec5d9bf8 GIT binary patch literal 4628 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 literal 0 HcmV?d00001 diff --git a/numass-data-proto/src/test/resources/testData/set_4/p18(10s)(HV1=18700) b/numass-data-proto/src/test/resources/testData/set_4/p18(10s)(HV1=18700) new file mode 100644 index 0000000000000000000000000000000000000000..d151cf7ad45f248d219d69b989614f256003f85a GIT binary patch literal 3884 zcma)9dr(x@8NXLCF^il|)}>8JGc}8LI-Mp1V!Fn5E~ZJ7%yinwkV)!Y<9dY!R(WN) z>no!w=2+BLAXBQUeB!6^g?r+cie&72$ z_htPy!)|BzmiaPJF7*t(?VP~t=h-S-I?;X?=40!s;E8HTGzuW7md59 z*8Y#Rk#=zxM3v~}ZAfh)FN4_dlY6U${TfeKQ%TgVu^X#v)g88XBw6I5bd+4 z;I8seivo4BVp^YmVXHbIxa$@+$X11oX^$BD@#zO%&5Thop*y7f`}_$-(h3sTu^ksF6# zs#vS`cBj2M>}^a~pqpGv+irAes@6vov~>S0Zu+0KWwWUaIaL&OhTSXo+HW#8n5mq+ z)GjVmzI7pMx#%U*=BW>;Jw=1M>0&WuVa!P`IV!P`NP5ks-R4%E=8~GVFy(ZO3QH+b{VX1>yi=uK$i@+r*+Fn)YEPmioMY%gT5E~Whfx0Uxt%g z?#XbJ-+&BWIX);OFQT8wU_!~Lj0_Bq$>5#S;}lL!$WYD2=Q7k#_d*8!TPaK>PRU^M z(2NXrhRn)Pd*ZwdC04zZp%Y2a68)GHXo-jJg;=7q!+HvjBP>bk%UDa2mK^C(JGoa4yLmUA2q9ZKR*Lr@xrqN>t3IQ1f(BR7IFICQf&pCf&K1sr-1 zP{Kh{SjwTxp=BH%2rTDF#QjRD*H_D-#HaNf>}qJBwrO`c+@Bl3kwd6tV4GK@=D8drYx_~*EwJC%p}+B60Kz0UC2D>tOd@3S~hYg(+!m@HH;9MSOU(e&=)z(rTHnmmrq;=vtj|MK+^JHqE zo=4AOns_`m*UZC^##SB{EoNbF#;>xNRCHd|~j1tWh#w&5- z!+0f1%1uxbct2T*Zk$O`;^34NCA@H*uKN3e1cJNH2oNTQ2qdmwFQAatFah714Hr;d zc9cMx#$yGPQJf&)vky}Qcw*q9fbvMTfG4JM1bn(KSAcSZ-!$CQIgYI~C&mo0A6^&rTlwl$y(v;*}KF_i}D0L{Ru z7L=}w2A$@apx&Yv)C0F#a1~5iG=klp7(~;s*&q=VgWctHF>A5E8`Oaw8a&H9mj*ja z104FM6wF!FPj3%S6cD|Osa6j-Lv20lsEbB=bWoG4w5LA#V4pu* zNmrS)cNanbt0h44)NCy)ePm|!z)Ui`nw-B^@;Z6hnIVPAVVP2xR+cFx9m8}LP&+M! z{YmlbaqQT&_2`^`^?E$r@o+r~&I^&@?$}Tnd~hLIhI}ujTR}Y0WQB@;Y_cM$bK_R9 zHQfJAboN5vn*@(Wzex&nBCTQDvq)<^GL&jf#=k4I#<0EAnpDMr6BE6IL=4`fr`H>I;O?m)2l!o7oCD0SjB_B9BPkBBi&Qw^=x*!) zpFAA>4~hOMawi(O615YaE9>70E3X9bcyKm@NB2Ur=qk)bTcBYmMP87~UZvv9a0Q_tez{4707`ma*N)3+$1jQiOXTZUSx&PaM2 zmG?Xtq&fu&31O_%mDlZc5xsrc9Y+p&?QuV@nw35RFU!#AXOtysP zvD=V`3lnH1DPh-|Nefu3TvifDXJJeQLMS)+CCybezlXl`J>~TkAwDzF%Q9N|;t9!) zJZT1lB5t_i6wu{R2a9osl5@Z!}d%o5(V0W{j_< zZOyRFunl8o5FBL2EG2Gh*GQeM_DVj2!7si>_5OY=s%b^Yq0H4U%Uzt;6?mU-1H zMP?Jf&XefPpPEZfvTI+F9%ro}E7`MLGg{tv^$F#hQEz6r-7=<2WZdw2n;Y>xdemT?}P literal 0 HcmV?d00001 diff --git a/numass-data-proto/src/test/resources/testData/set_4/p19(10s)(HV1=16500) b/numass-data-proto/src/test/resources/testData/set_4/p19(10s)(HV1=16500) new file mode 100644 index 0000000000000000000000000000000000000000..09d82098f134ab7b32619183652aaef872278992 GIT binary patch literal 5307 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 literal 0 HcmV?d00001 diff --git a/numass-data-proto/src/test/resources/testData/set_4/p2(10s)(HV1=19005) b/numass-data-proto/src/test/resources/testData/set_4/p2(10s)(HV1=19005) new file mode 100644 index 0000000000000000000000000000000000000000..29bcb91ae2d5f44582a211e81ec6bc0792b70dce GIT binary patch literal 2849 zcma)8dr(tX8oyVmGC_{n?9^?UX_LkslJ2a#1g)Yw>kT`t)0sM*X?-l%osG9}!3ZQV zxnS|p9;zUSw1R-H4>(Z4QK_JUplCQeDrGJ!MxrQtq9u0>kSIC z5T(%k$?|`We9H(|DW_4SIn=aU-GNT zL+LQ=l3cM$y&+04i$btYZ!krQ6r8Enqz@M&O*(PLG-iaFg&-phj&@2~>@zcVn_xET z?4osMUbLUfq~0m5O2H89j8pphX#5uWELo&kyw+EtmnVvgY;swPP2R_ zLr;tH_C=tq#WNI}jCzAeClxGwWsi4u=_qIsESAX#haR2J5~bq|oPy1QDV&Zf+T`e$ zr#o(@Q+H%^inWNmnXb>&&i~I;7Ek{OC{c{GFR#)V<_xxn>4J61fTJSK;QnJEfbu{%vctQp4@xUKh$0^b{;=1gIw0#~%%QK0+xA9=%vX#?Ikr^Dur z67Jc&@ww+i-Y~oRxi=gq6W*{d6RJqXzBCm%9CuKKo6jFp!Arm7sNm(MTouZGl&c~~ z(FqkSN;;{+*3v>1>}k57BDZXpRj~U&nF`*1+@QjzT7OpIrkp-%tWQ<&YArSQs)kkY zdGRY1I-WkNB2ATJD%4yYqlPtuF=|wju}2O2F2$>1_mu=Sd16aalb4x?)bL^NaW%ln^N{UrYlGCkf+;ym0P0n9#P~*J8Mm4@)+oC38$F8Zdt$~`9 zE^6vtURUGFgFR~WIAu_cE({K(Y~@htGb=}m6EH`Lswy~mBdv); zqX%wrsH6TC2fMR6IWqR*DMt?f^qj-xHE~)}_aH$_dQa`uk~4RcwdlgxR4wl7O4s7Y zhmL89tv^GHI&#lxVGOpGNFhX}F9+UXAcTLW#_@vkt9v<^*_fb(=x)9i#!cjF@!g7c zEh=vt)#3s8S_@xiz1E_0J=y;7@Qs`Pu!wZ}<73Y{{ZVSyV}E>Y|HZ$_Mp;W#8ThOm zlz}1;vZ@*U1V%hBgCP$qxD3ic!Mtaljnr2O0ydU`8tSo9UJbRQ9?hT_e0>t+17kU; z0}1oYhUB@WpwQ!mXGC;i z>-q3N$?jS1tZahydd*6jS$v{<4ykFJOW^a*(O~=CoE{udh}x0%AW zn6`(S#jx;=mdzW31H#r>Lc+JMixxs7Hyb0r`Qo3yED$$IidpwrvU99gJ}Zf1>5|#p zrj`ss#q^VN1<`!x3gVIK>u*ls)JNW*2Cm-j_j3VI;{@Q5yx5N@P{X1aoE5jg#UU%5 z9P%K$J&Be5-sU#>y%fSAK+o=NX4hNvwwiebR9SPFSxg9X9Y{WRpDp{;YqeyVD-(Lt znF(j0k$3TTFH2X?KvzwpT{S(t>^C&0k|}a;0E`TP_4mx8m}_)lN3NzNf}C16Vr^ zOm~ENrw@-k?N4N78alDRFc)Xj+g7FkWJstu1C#c5dfQLGLG44#0d#a*8EUB5pBG3( z_cvrFFN5SWa-{XZyJYm{qfa1&vmwMKEQ}$;gTHn4fc>2H(7lRwfmjoJLrDzIJNV8F m&Kf62_IBx90;|15-19yzc7L-#zDd z&iVb$z28?|EqzlU{GH%`+t$nkLIJ#XT+v&B!0g92rDDvz~J@(G4fVEu7pWOg|^ufu`|NDTojCa0t z;H<5Tw?E({R~|U@@5c=_tQ{S#9A!?j3(intv+G7@Yq^X3>}FqEC%Lo3d25ItI(l%k z!v;idFLye3$;yU5?;>~lo9vCS&3T!Nm5YNTMBd)Y+6XzyWp=#%IfEo9yCFy)ySxRJ z*vOn+{y*gpZRPx<@<;w*@pCW?y`-&N32(2IJGscMt$2IKi!Kn{uGW!1FTdz$<+5!W z+ftq6XB{BN+~;kar1y2J9yA=MmFa0hcDjV zioSK|RlSYSIVXpU`W=#dV9m?U$j z(Zqi9@% z@;AYBF2ICo?_4vXO&O6UEIK6GgxxKOF(HBF#Dr#fYuVVnptCdLx{i;*W52-c>|uG+^#6T!rOgBqCuQHxNw@ zk3n=X>L$YR;jsvZw&Uv@nQp(9kq2^Oq4G?^;1D zZg>^ps)>ng6oMHt(uKDqvf4< z%<%2(6f?FK(QQeyA_pw#Pi2FaxU+H4lBSjnS<-7wqn0$RV$6~~9-6Ww84FJ>*+kir zC8?OLl3?!zt%Pa)8YHw}yivlu)GZQnZ?0E@n?{Bt_`1iigqBx>@tt}sA)#dx61rGE zBO#6bvk(Ydmf-gBWeJ;^UzQN}&=m>2+UzD}HTTp~n$sO1WvgpJQe5G4RZ7Am!=*%* z2PWc9w3My{#7MEG;+B+TrQDX%xrqcR>F>NF#XY5&QgW+0S4u|X3Z>XRyHHA&!;7V) z?RJe6=cU(5v44qHO0Nw*J3)h=K0ARuZZ4c)ojpq@=#!fD6AZsxKY{ao-8qt|_2Fm} z@#omswE&J)7X`y|FqmV#wV@n!dwh+f4+5@p)O#S3qqULo94)F!;K<$j1P-^>Cv((m zI)x)G3mF_O#km}LQJ4p5J$W2yO33Gko34PvG0{aF4pA3#?E1Z84wqijaJX5k;Ye^< z3CC75N;$foS<8`un{^y3uBzk6o&GwGCI!@UxWccQV_mJy9QGgWs@-$(W4QdyLD-K7BlF{Lg7cw^6wl1SDrtukESmu6)hQ@iHp?)PnXK=7?)D}N1dTfiI zr~YJ1p5;y2lD33dTQ*$>X0~FHCr~(yKYNIN7rrf+)d2mz<4j7;n@J5 z#d``}(k^^7u}glNlnyhbW` z{47Vyv#9n?9*~#)_sCq`_-eK~s~SE6Do%k^=YB zWd-wyTvOn{3AG(=NcXfO3)xHc7*x?(A!FD(-CD@LtGs~2${W?|R7Hx%+ zMNZW!abju3sIZB0ZJ&IQ8H(AAAw%k>* z*~%0Z&C#W*$i3J!6&vclr^4&wnJTQ+W~oTQYMzSZrWC4Zd}*PIxG$GN;C6)yd$d)n zNY-3~icIR-RV*Z=L&aEfw~7XlUKM>YFrs49(PJtcnl`4Qz2j3Vmgf6R#YomO73o`_ zSK(^Bs$%!k)>O1}%-fZfHTt*`IvMQBd>X@DiFzW!m4!t_xzeu5C|A-K5Th2-Y!VB$ zc7&*f>}AMpwGhW8#e01;$vqKetX<7k`8w0Dsy3@*@H}U4Jjqw4Dakx2@6cwR7 zDAvBG7L|!d(6{Lj);p@9Um3{za~+VVg~cFXW8pgs2vnj9m_Q@yg-<;uod=sUE&_Cv)DAQV$2ym++s1ghp zZo*TgNYJ`hKaB#IjebJkH-X&mD}jGC>Jt|N^RMb)mSNCbIV-LOZx{6Q0>)VYtU;H) z%!gnw;5BH*v>f@vBnW8EL5+Lc!Rz$H@0-wgsRo8TDvm_%!eoF|LG3cra#O2J5TPHgV-aA=fK4_^ z1EqSkm7pgDsy{$aP`%jO$oWbmx(9RLJQ~*R5SZILDo#O<#idYi4k@i#LH;lr6z2e} z9}Zj%8b{i_jxA8T5++&L> z%0LYTKoPwA0o;TtzZ4h?-VnI$6crfl7Mf=pS==)c%?nAl=W&8dKEYV?HP!#rtdUxHGjW-8wOqZzsu%LFFq%?ug|;*nTp^PM{a0{F=YuQe$Lzj2 zb?RgJX_r%Kp~K}14&Q#~c>1!fRrM~LFKm?OFRbpgKW%r~!6w6Wr{Htdr;guV`QcNi zGpFRDi@S}?|7zhNI{oT-17zr%21Z*x@}a>;+ETS2Zw08#5ZLBBZ}6G#hrc7<5WwFP zHiEW&@bzo`_4@+RzwF*&{-(u0i}t_D+IZ}3{I((50AHc`F33}xiV}@>?=&Yy7B`JV z1Hzx7#MDrq+_X}Cu*6%!7u{#RVI4OTZK&U3+Bxb*Lsl)eCA`vCI3=ev}^SVKk`ELb+ z-w2{#2h|@5=mnTjicnBx1K%GBe0Pk$ru$G}1eahWf|S?$c9ffj{2Y3RBs)9DJj_5opNhCd~krRVM1V#j`EV8_&+ zzQ@`9%;MuD@=51$+;V;FI2$0*@6y}4)OX2L)98N^H5>jNY0Az2n0C{JkJ-@R$Y-=N z_vL4dgfCqnGgVOzc)FreNzx{Vlyoeh>qqm$5hk-n13Pp-T9~CD1$p)Y_nlEDb-M=l z&Wi^22AT%$$=+Lxigu5g%^3(4t;PGIUz4DaheGzGIs7#i-`jI= e8*MB!@WwtfJ^?~=asS?!y$!DmcEK6*+VOv@UTCBM literal 0 HcmV?d00001 diff --git a/numass-data-proto/src/test/resources/testData/set_4/p21(10s)(HV1=15500) b/numass-data-proto/src/test/resources/testData/set_4/p21(10s)(HV1=15500) new file mode 100644 index 0000000000000000000000000000000000000000..b7467353e599c2aeec77c0258df86549b23591db GIT binary patch literal 4665 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 literal 0 HcmV?d00001 diff --git a/numass-data-proto/src/test/resources/testData/set_4/p22(10s)(HV1=15000) b/numass-data-proto/src/test/resources/testData/set_4/p22(10s)(HV1=15000) new file mode 100644 index 0000000000000000000000000000000000000000..c251a6af782d1743dffc357478c513d1545ae4f9 GIT binary patch literal 5716 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 IE})118-&hKr2qf` literal 0 HcmV?d00001 diff --git a/numass-data-proto/src/test/resources/testData/set_4/p23(10s)(HV1=14500) b/numass-data-proto/src/test/resources/testData/set_4/p23(10s)(HV1=14500) new file mode 100644 index 0000000000000000000000000000000000000000..9accae38eae0e7a766c432db8f90a678b516cf5e GIT binary patch literal 6795 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 literal 0 HcmV?d00001 diff --git a/numass-data-proto/src/test/resources/testData/set_4/p25(10s)(HV1=14000) b/numass-data-proto/src/test/resources/testData/set_4/p25(10s)(HV1=14000) new file mode 100644 index 0000000000000000000000000000000000000000..d6afa47411ebb1b79aae03c67a9219aaaaa5998e GIT binary patch literal 7198 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 literal 0 HcmV?d00001 diff --git a/numass-data-proto/src/test/resources/testData/set_4/p27(10s)(HV1=13000) b/numass-data-proto/src/test/resources/testData/set_4/p27(10s)(HV1=13000) new file mode 100644 index 0000000000000000000000000000000000000000..d3be9131bdd5308d5a1f4e7252a0bc06721ddb17 GIT binary patch literal 7244 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 TM}IlHuIt7keyaAk&M@;oS~hWV literal 0 HcmV?d00001 diff --git a/numass-data-proto/src/test/resources/testData/set_4/p28(10s)(HV1=12500) b/numass-data-proto/src/test/resources/testData/set_4/p28(10s)(HV1=12500) new file mode 100644 index 0000000000000000000000000000000000000000..492e2afe99b3796294a31a842b5f173a8e444b35 GIT binary patch literal 7312 zcma)fc~o4-nQvd<-ln_ZP7aPT?}40AWH~qXO)UEo~-}hDB zy086$LtW(v+YdhEP#p57`~4AeIR9(y7q1!e|HeN<{?1z6y60$n-&SUO*Y2jw_Kx`M z`)AHxx_I`@A6CD#wX6JF$c0;Y}Oc+cL4k|EGPtY;)U6c2joOo~*q6qt@|~z1Zq&TRX`~O2q7OLPu+l zeiS`xV|8ElKQVvlN1gx9{IC97;}Sx~QA$7Rp0%}mAa;<6t#8`e**nU};>+3E+ujyC z+TWDD#Kudi4&qyPiSomfl-{}cvhKHHhr2hAlD_F+B|ECi5Ba{x^{m*=`b6*S+ZQjr zcj4l%E?j!&^S9rA|Ki2>FPfc{O8gDs+0N?r%{yY56*2NswLbderJE0|Zae)IF9Ko{}JDi&#ydXRCda^Hi_+Gm1G15QJ)@YB#O#}xWhoX0V#Z{gggcfiQhyHMNyYv{gz z85hM}h4JejfJxY z#2&RyJK!fPD-3kqSz&v6!~@hHH>0oi~H!Ug~r1^GL1u~#I4qG4Aq z2%mQ2BIg-77iDhxb5Zql5Epjsg>g~*Tnrcas1mt&p(&9I7S*|2G~AcV#VMHuTvXmk zz%RU%3wMK+T%70H%mte@1V%j7To6&!!A0_kPA+P0>*AuUolH|0s46f8z_-v8#xxe0 zLPdIsDV7&0O@UuRttp-ab*4b$(_jjmJUdL0*ItJyTq)9+f~u7+Q?!!aZHiM0`b=?Y z(~v3bQxkAWA2x+at|O*M*`zf^%ZuZtp!k45xAU|q%u-F80`KHmQ{XlF+!VxxY?^|m zm_t+Gvgdjp)bzQZ$B{uE=izvX$9c4u9C#kg90s2Up(P>bQT$rud9a@obsiPx#heH6 zm4`WsdF*KpN;SUbps~x(9Lp#D%u#f_+#C-o zqRnwo4 zNFnYEj~3$07KIQy*Tf2;IxJ2IC#MsHSksUwg!0B5A$(SzCxqD>c|wf)3WX4MmIXDjGZ?reoCs$8sK z`tpJes8lc7z^L9u8{9d+X#+KFTQ)$Qv~7cuV)kuNu&1j8mv?wd@EY`%;FTJ037QP? zk>Id_00|gd36tRd!Egx2g zPnTd#Nu~rO3=~LkM_G{s#Y~n;@PV>Y0w&6k>G$wk|;`#fAiIk8Dbi7e16gw`>oPC?5 zz`dzi3Jd01q-ZC*Rf-BVtx`~&)g{GQqkU4`QaT_-Tk0Vx>MN?3p>F3U8EzlxmBG*{ z0`(JpGPGUOFGGHv?v6;kLcq1d#}W1? z1~@_xSSG`Md1W$~R5mJuM~?839GE*Ga-Dk~jxe+&!4VHdWjNv|DAN(wZFD-q$P|qu zD45ka!p-b1N95Ac<%r7)wj5Dbv&#b7j?h> zW}eJrvNnH|Qz}-5*jDz*vGpSMUIAOiR}j0LHpY#L)cvFVS2q4k zB$G>jE=9y^4aq^xhOo`7r(QE#&XyZ?u$#JZY#3WktBBz!Hj=F;(I&HPY#y;0%Kk;B zG^}BB*#@?Z{XWNVlqhM*u!)t^EhPOc)?Me%QG}gF!iXP9q>yAe$oBAih~SsiEGDYe zYzlEaY^Wx*q!VJA`I&-mD+vp`RIMP6#M4C=v;MT2_*Ahr`NYU3S1C}EoI8kok%7e8 za)T6T*0762QNRuvJSI%XkgV0@dBNbepFsv&M$Zs_D#%1CiLH`b$QCjAhWTu>ZZqNR z|NULb#<62;8nGQlI}u4W2{M`RmBHH9v1?UX+O4Ix06)sK^8k@I7^Qb zx9x9n$|Bz7emVK{7%NiuIVyl4Gw9`Tz^B-LyzA$pou&o1aK z&;zWuu2m;H&K9vvf-#~~MSj}`wM4X?{l8y-Yu!NpXA^268%>H_$NG||Fv3U``|+PW z$g|_u|7k6}YZuD1l-_mxO!g;`aeE@)fb8<`R^eyLsW&b)J7~dJ@kxM4#!G6zi z9@a!I^YGa21`qe|Z}FgF%b5?OU48hlCt#iryL;F9SiR>gz}3U)0yN!MEC3nvbpnuG zGcEvW`O^X%x9MR3bLwIZ@ZdqXF|3J+FoyD+Tw~DhUSy1upH`5$kP-4&;$ebUcRWl` z{$`R1jtWXOfo_XgCd9nP1h*%5nScX0Zh}?^mV%q*>yZHmHi($KW+JA+%~`bF>Kf%qf#7s1D2;m-+-H;={G=ZWcm%97*l=& zwZxX+fZ3guH*kt~&kdO3GI|50`A^>f0LRnN3D@uc^hG!Th{)s@C$z(;(U4C-T58-U zV4^tn6A-6yam~6J1@zKY+c}x{6 z{@(5hlT4gjOFvnoyBG&0{crV;I9E6yb7~Ar1(2%{II-c(h@Pk30xygnFqG?d>#E2> zIm@fl*Xm8_)iPmBB7d9KFbm9|L=tzZhPM6dy$5^ro%gL}=0bu3|+SuB^f?He; zu0a2>z^lYTuMTiRD(z2RcqQ)e^%I}4!h8NI8tDl50DEcVzX5Qi@;9g>AnX4i^2`bv?lK_}UE_D@8mdM4iRe2j~^4o9Yr`7YfL3PpcZJ6&c!W4P$iiA&(yl6e>SJ`1)7mE9%waIgg2!^6Id_wYF>R0E#W3&rDT zVKjB3i~JhLyeM*sf9^%$jHE1Y3U8EcdQ+%7f7_dan|=ob6OqP;oU+4{1Z$eMd?=Wa z8|X{HYL6yg3O|{23#3rUL3AL6y_{TwDDcdGJ%}=@qe6_P85bt*9LIno;lwh}bpn|U z-9dvkeI?I}Mz196Ix*wS=uc`Gh0ZD+!2eg(P0mj^A97rD6PN*Jitb~A=mo}|*=Fh) z&QCeP6ep4?6x7rH%p|iP2mpfMl*%{Dt;_u zJ4)B`QW(ywoFIzhsoSjUql*~%sR>47{`)a;kXk z#N*M{z)}BbHmCs8q}eu05=n!VOjLTGbR~8j@b#l`(C}kF3PhHd$|<fLY=_W7L9b1~E`Db~O2)oH8a(?+Le^-C>~a3e!a{I@xp^6UtLE zE?mwK8^LJkAg;flgc;{|GwXB;vqUQ1%5?J9nGMohL0os8TTcJZd5d$GGeED=xvy|a zm_5dco5JwDboBL%Ty>0{boeDl-R(w!3|AitX*QhrsMNWRj{^^%@=@+mCm%$2_wvDv za)1v@=R*Wg-KH==oB7@6;MQ>WIS}dFeg$=_!Q^vWm~9;|{s{eq+14GU6-*3MqB}rq_*#0FUS#+|Tz%Tek8AAB<@?fjW0woG zO_y-7`aO^{_8&00!y3BfJwottG=;X;n<(h9)J1{J)?gjnyH~G+JhFm~U{t8W2rhYL z7{LT}r4e3fY%;<{sXa!hdwIeLKQ7ud!d0zXMtHJ%$LK{9p*@fAQ&5pSb_x{4D}Dx2 zvm1W~VrLe92A$S?{uyX15{*HAVzDtyY-luwwd>dz2UaZ@!+}^}f~s3WP2lr^1QXc4 zO72(%6~!h{v8^%zg{cWAdk)Ukw7rVPGVrUQ`!M6@IK5E&bDT5T@h=dqB%ZtLe0`E@k3Jn%ZyEQOIxxRL%# zkl0lEOH|!E_)Dls_j?0p`&Yh!NAoM+fVm+DZ$S52=Qn|Cr~8{QB~SS#h|vtbiNa%| zE+9=+>II-&ufBkLoYybFr+d2>P)Jh3TiDI}>02<$A6^EBYfmmC=ch@R!In?{WwhF; zyo~yn#x6sjhPlfyH+lOqj9m@7g3C5juYivJ!z(CxUTXyovzDz;O>xkdIA$&QOYC1) z{U!9>NW1lda=fQWx5fe0{$fxWkS|8gjlE**+0|!*I`)=qP=7CwAVoy;S75GY?5h)< z_-A8ZBP8#>jSEYLZ-a%A&^vgiBJ&Ptnk~Bn@o?=Ow4q+P19$pcUV4i``9Dqvq;0JI z9t5RozlYl!8-K^D8c#ru37>)V3@C;B!TU4EHD7!_c z@l*J&e1%RX8_Oh-mqvnq71PLQdG1Ul`C^P?s|<^EID!1AGlHM^I;&sZ&oM(kk6~ zI)J>v+_+ox9ywCf&=c663$Ia9~P@}t;II)k3&rLcQ+y1@d!l)R-j`Q7{_ zy+j?gpo_=p)C*!7$f*>_Op$NiPzLI80?A`OFNq0cn)GsXw*)Ey=NIHPSEZMyN6sg` zB6^&hVXbw zlcf7Ir%XV}Sj1^qsEIobYWEs1!*qGeWmH$_e+9aDr(FR-`*~MD)>`2eu&C<3f@{lt zuHt&9@N3W~Ty+gTUuwSw$AjH&puqUa8^CEY^b^>=p^;OlY<*r%f!W?IIfdmzZT=M8 z4lW~CgMpO>atQrf2@^vjo>tI6d+KyDi3T%ttzHWqs_#nYFq4GNI(lC>L!f4YctH$i RqL~>zCqh60IfmNk{{omx$Ql3u literal 0 HcmV?d00001 diff --git a/numass-data-proto/src/test/resources/testData/set_4/p29(10s)(HV1=12000) b/numass-data-proto/src/test/resources/testData/set_4/p29(10s)(HV1=12000) new file mode 100644 index 0000000000000000000000000000000000000000..acfd4936417f8124456277bfd483217ca6d5be8d GIT binary patch literal 8106 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 b8b6R}W`fv5S_@C6pFvCpld9FDQNsLRNgi<4 literal 0 HcmV?d00001 diff --git a/numass-data-proto/src/test/resources/testData/set_4/p3(10s)(HV1=19000) b/numass-data-proto/src/test/resources/testData/set_4/p3(10s)(HV1=19000) new file mode 100644 index 0000000000000000000000000000000000000000..1f5e85eba4e682051e70f67c79df33b7910a893d GIT binary patch literal 4773 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 literal 0 HcmV?d00001 diff --git a/numass-data-proto/src/test/resources/testData/set_4/p30(10s)(HV1=18700) b/numass-data-proto/src/test/resources/testData/set_4/p30(10s)(HV1=18700) new file mode 100644 index 0000000000000000000000000000000000000000..074306b1fdc4149507d2aa93f8ec2bef51790205 GIT binary patch literal 4390 zcma)9c~p~GmQU0+pQ*~tR3ug1p6)p|eWuT0PSu=zT2o2a>FLvTrh4@B^z^|w)zz(Y zN{kRqECf0PT&An)u_LmGEG1jm3AQB;Hy1m`6Xp=bJ!Nlt#> z``*3xcYpWZ2Ve5Dp9+M(7M$qbh!qG0?6v!AGYSNfpr8IsBK~jjLH4p$JO0^2=dLs8 zTwNRty7L;_j}O}N3fuQLt*3P^YW*b#cim;P;qZqaeY9n8(s=3|EzX~Q^83$zbI?hx zbH8-ZQLEOu9Mo$(5Ay${vT``NxjDG0_3HEPjAApZC9{*ppmE&HtJQ1VU7ekno&RUW zW(JFk#zmt)d&%L9&e@>R|5dcbe8yRAa4@*KG0UOtD2vHWqyAFoa@JZBqqP)dwtcnj zYI{cQZutMu^V>0hi~hsENq&|!!(7sKtgX()Q=>O%oE&s6ZXO0^+*z%g&ROH(=3v;- zjUAzSjiW0IzGN-wuwrNIWsTm|!CbV1UTrYXWwYL`T5UBhPS!ZvLkeE?f#Smt_`{za zI`pxE|M)O(9hK%H>$8j6+2Op#pk^dHrgijl-oaDt?6G-3R7!>Qj9B_{^z%d8)(@RLg{uf&rEgm|SRBb*8%qC(T83{NcaK z=&o^h-wd%7P_)-nWZ#d?jKGwanQH;Z63JLG!Sb_=DoT6cq5&(6=*q5nT^c_Y%6 zIT}37r`Oi?OKY$>%)!xBbLI@&S8b}cHMkmB^E93s7lYY-Ye2SE6&6jl;;+OKvH0~n zvRCgMc=?VvTtbqISNCH7ytTb#X7%-6d@l=$aA2p8h(3t%7oqTpU=h9dAY4SAl;04c zfyzV?^}U)bLc#0FBHEmuB0^Oo3_`lnMc98KU4))ZW{Gg9U$%&>e4i_#^AXh|bj7bl zMAE(6Mc5~_LqxhqyF`SH_K8T%v%4akF)|`TtB*%TxO{R#L@OT8ipX@t3lZtbeksCJ zH~lzVTgISdI-En%g^?T@43Fl}cpB#LvMHG(xtS>(&dy5b&~QiwhZk`shZokfIMfi3 z%^~lSYz`Y6ayZoVw2-4quWoU4B&3L=uRF>)ym7CRqt%a^Ioj{v!qJDQjiX`RogDHR z?&eUpZ!bsV?hkRaFX}!=3QTc;`s?EXuSI_cG&=b^z!~0&fQVlr;E9Yhz{b%Gz}Fw< z0L`e*12W{F545wr5J>lO5umh}#Xz2aUj`)USvioI=aqoa<7z+~K6OBXH|hYjhc*Hl zX>0;aI`05Ys%Qs1IMo3tcC`a=SX~#OiRoTItGNS!8xl-_niEYx#@2=aM~vMEG!#1q zq%4#I8n2xMdUg5%pt9T3Kob|uu+E?@=^>B;ItMgxeIC$E!2;0v(gnbGqn-ebOj!il zL!PqQ5>^4#gd-`bZu64T@FagJ9eeICMMKR&QiA)gN^xIKs1z3!he}b(>o6(pDU6iT z$jlfi322Iu;s#TS6gQ2fN^xXzniQ`G=SpckEtH~ytHn|@Zeo!5v{*_Ct4pN#MM0?) zWo|6kkp7gXHfX8fsSUo<_RI#w4?eRYF$phh=+fx24O%w6vOz5)3{r!AUBsp!HO_!6onk+er8D-!-nIor7Ir(zhbFElTuVof9zq=)J+VHwePFBjR z<&^?XYinjU9b?gV^B*iFJ19ZcdXOsS9hdqc_Uh?eKc* zfE}qEyrUqcqwNaZ+iX&xq^wB=ooJa{?bM)SD(MkU#Ib8A}gCm@e#Q^nT}zAYVvrLFq+5X zn~C{6UCt`vNqKHDkE;?(c-nELl1FP%)jX<*uHo^>ts0(Ic-8Z?0XOhuezbwdIV&wZ zuB)n1;_`f>lJq|@DpBc7laiLTG%LxK{1zq6ooP{$f!P)%_G;)>((5I?O0<9nm2@t3 zP>K9v?Nhif*dt zY+a@b-73geq2?#IR3!Flv5Gz@uTbF;V}*(s?^LR&cVDH7_|{aba7=2miUyW8tMEc@ zmkQs0)T<&P10yQ396P3>3#nr&G!;ozI3t#-$c@$;T2$Scq{YkiDO%K8lBz{rr8l)` zapR^Ik0cdp(MD5+mag5b)S{%BYArFA8@2dxPLr0Dtu<+JSzn8mE>^T@@z6|h)A@)jQNaCV>8LqT3q+Z|oF>7=ZLmJ)|$oAWYuP_|Q z2x9(eZ6R#m)E>rsdRDHno%F?cwtjRyk*z1Q7@|aing3chLwdtIneESpr1}bF6MKwM zFUf#%Xn;p=H$fZRf&w6tbZCNHsDUEM7%aV437Jp?aZt^6qS?pEtsE*LN0JLOl3o}G zBdE)v4Dz5+aufQ&J)Ze~mbtGTmLL)8 zmgQ}Lj9qDPS5gJnpaWdHpq;svf;S^ig>GnNp}lYiY9tNd4_PoM>4CfK-2jvDLfpx` znxKy5sew@z+0E`tSs{jRhT(yPK+wKsR#-hFKJ|?@gAvt&%Z2+8AeobNK_iq(3YbiG z6^y78#vnvk&mub6`}o%$!64Wr_=6xua#o+m`jIL@Ox_d|bO(YY zM&{iMZYiM4Wx~2yHH|Fkpg0w7Gx~^M({Y@&)U<-rrp81oCRYN?WuS+qD)4hPZV}D6+_IF&91fZP;%-v zqcvI11ZD$hgx}7cWIr%I6+|+I@V8B@lD~X)p^+&mWpVjnZfqe$uvIB^u_pF{7t`^D zxOq1xl-2J(P`g{au!}U*PjaMhaD^jn6Du4l@rvJvT07$Rk)(k7eJHrQejk}?eee!i zqYR2e^JS=JDqlv27mYGH*fk)d6KN(Hx|L&+(ffB-WoRndxF6N^HSNc%cz!=!9+=;c znk%l`(B@kI_i2z{!22j5>czj|wLS(UB<=`#IvsZeMJ2``A;y)yBgkv!!4dN9==2ff zI~9DC%;$t0MUkC_M{(#-pgpa8c*P#KXXM+HiCPA6_v`HOIPJAZ71e$A^j5~OJ$m}x zOM6@pl6Z{vj?W!KZF6(SNZ0cGF|rUA_Map?c==B#Fe?5ysVZ-Xj^ol8a-8~H znK_P|I~hzb1fRg)Hiw)*nGvBUh;ifg2{KHIPSDYyp%bXIXUd)SCgdAX*u+xIoS0g-;DKWy6W;`kNq$3e!o(SJ7^OXI^DZSocIC9ds61-V%KBp1gerCUU zj?<6+mm9mKZ$fEaRNx*O7?5EUB7|lYTVVYXV7bzl!?!PQrDDM(M99!$k^TIXK=32> ztM`I{9a6T~Ey&y>@X~pGGpm?Y2=)ka%zwHU1majBw_6q^JaAnocG)&F*zfd27~;Z42xqIC~P_qU&u9c1#Z2?dRN?ug_| zpRk+5g6?;jsxJf#&Il4D;!E5fna2Tl@#ovbiUV}1E0_XC;gz(?YLK>n$( z_o3*{W$_jT^$T5-kb#JTACtk@&L5-r$kD%-N%CRi2ZBJD-tEUN?iXVrw^tS?Ja9uO z)>A~QuJ6cC-{hxBGgBY$5cWH(FdQAUva^|vRs&joR(6tlv8VD+w&SqRo3W!MQ@W2( lW?Lm=ExaNWOzvmbe-za2XY;=xSlMO#1v?FaLP4j^{{Vjq7`Olc literal 0 HcmV?d00001 diff --git a/numass-data-proto/src/test/resources/testData/set_4/p4(10s)(HV1=18995) b/numass-data-proto/src/test/resources/testData/set_4/p4(10s)(HV1=18995) new file mode 100644 index 0000000000000000000000000000000000000000..22d1dc23b0f96caee1a36390a9b14d9c56bd1f97 GIT binary patch literal 5570 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 SH2dwXQQkx?Z;M`o>;DDro#wd! literal 0 HcmV?d00001 diff --git a/numass-data-proto/src/test/resources/testData/set_4/p5(10s)(HV1=18990) b/numass-data-proto/src/test/resources/testData/set_4/p5(10s)(HV1=18990) new file mode 100644 index 0000000000000000000000000000000000000000..f4bea8377cb39f55405466e75c1d367c4b20e27a GIT binary patch literal 3675 zcma)9c~DeG8h=ko)QQtpkr_7uv&ByKOl`7abe^Vat74VeN^MLkrjl%JVlsIHqi+<4 z$uLaRFi9i#4Jx-l10skZhai_ga|y^TsE7zHa!5cfMNVORfDyJff9(A6n||N-{l4SZ z-Sgnh-!bg_%va5`cNmtTpY=u)GK>iS?oF}iN0ANv$auT&oz+fiz1mTu(5sKBWbfI? zY`4q)y6jb|HN5VG!byG74c4)z^gSjI+el3 z_MP449QInRLd)y;V@@>1a@D2E_A0%~Zn>_YQ#m<0*i*mluI%%W?6$akHdHI0s-m}MiMwayW@XH;m-nVU6wtmTVSm)?$+9BCqdo{1* z?bP}c3fnzvBh<7gZ#oDx>fJRHYaP`ZJyptHb=<_?wU*V$TwU!I3JPJJ}YPbe^jxRuL;yUn+~tc@u=BmqABbgRfi5y z`|jnYWqLmHm;KyIAT;CNhe|A`#wVS-i!naEs{jD`dJLQvxFn$tDTR8NVq(^;35wur9S-f=XNN zNpQYrrv%=K=#=2Vnr;c2z0xDW!Cpg@8$BdJiNV7XG?p|b!ET)s5){?@OalE!rX&zG z%uC3*u>}cgO*$ooxxM~URCOmnN-7cprLgLJh!jWO36sJH{^3&Ce>qx8QXia?lBsSa zMc4e|r7*K4UP@{c5~KvrB}#Ef&v_|4{X9d8UEQ*z421AC3aDsmbDj8wBNKQ zm%Q&=!;sM)Yf_ZiYmLGJ`m9OXc?wA_gVv-eV91)p6pmZtTS@cQB;?G3HR)Jbutwc& zi`Hnc-)$SrnWNxW9k30R7YA)4nN#80@Jx8bHrUY7BgdH&J#zTG?x7sD`Si+BL2j=c zre^fX;e5-0oCF69%CW~UgK`usPYg%m`Vj{gBhGUq-z|wFVR`8s z?h4N0NaX;9nv1y{>MhUZa6u=9bAEXo8SyOUP;o{nN4mYsIUHJ7&Y`%HN)DY%t>xgv z>1Ga%KDx=l_SD-PD(LIvV0ue8hXb=7a1i46sj_|R2*kt(tcVPu4b>a(HH(gYpO?u= zTlcISjt$3f*fYG6gH2vl9ObVROlZEqPl_%|geQB{b$0R6hX1^lGaS3s%6UqDeLK)?;pf&}PQ86u!33y}iEqcH*^5h(&r zSiC5Z29zP-()26=rr*vH(6zgH0!bdp6JSM9zJOX{%Bi=dRv_+=>jm<3zD>Y!ZS4Z| z>AEYRT-Oc(MpfSzU;rEvaAx+9Kms}_pbNtSDe`T)3#1@&PJk`m&jr}p zO2O~(qJT~%x~l0;F0R9_c&N*2byMl;q;RKr+}ZjUo^s* z)EpzJd6Z+sZnODD=$d-Xhzicly0N6|mjyQ#jy$1=qwc%9v&6sL+nvSv^?r1HIX}pq zg)M=nsbwxSf?5{iutzWpAsG`@1g8(bHcflN>#P5>7{oj4v` z0`Z_4+yp(K0bB#)z+GGo>Oein1Nv5RB`61XX-K}P8iZ407)S>?qSmt9U zX`Lr)qANA(>);kB0;LqAUupzB;!$x02m#%onP!foxoc>hWN?pWPX}qB0z`l^>MPp( z%?IbGHJ>t@K_fUL{=t`qrqIfFDCss0suS0PO8S&d-Pr(xTyZG44sz+b80`HE*<|`l z@e@XK^vHKdytm{~fy$2fr_(DId_FM(_;iv;|=Q(6`KbW*<`qoDCT?Q7x6TnChiHqC8MY<8IJK zzitC+C%fZ0pi^7|BE+rWGUx>URSV{$&dutBcc~z?bPjk#gzL-k~06FAk57E2@ez%d$7c_)`Y=lT0B@(IMhSeDUWo&%QHXFp@cQ<<%84wZYfTj#V3ynQbV>C*!xP4)_nVW7UR! zG}|nE zH}Uaj(0lmq&*XXQJ;++V<_{7#HEoD^`TY8kSMF`-u&4o@78w@LH;DeY@nuVym5pfY R+G*f{7j3;vFJ2_e{0HcLwBrB( literal 0 HcmV?d00001 diff --git a/numass-data-proto/src/test/resources/testData/set_4/p6(10s)(HV1=18700) b/numass-data-proto/src/test/resources/testData/set_4/p6(10s)(HV1=18700) new file mode 100644 index 0000000000000000000000000000000000000000..3e771a42afd263a177e84a61ebe2a2084049b5bc GIT binary patch literal 4528 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 literal 0 HcmV?d00001 diff --git a/numass-data-proto/src/test/resources/testData/set_4/p7(10s)(HV1=18980) b/numass-data-proto/src/test/resources/testData/set_4/p7(10s)(HV1=18980) new file mode 100644 index 0000000000000000000000000000000000000000..d94af88b06e93f4371cfb422ca7347611c2cfeb0 GIT binary patch literal 5655 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 literal 0 HcmV?d00001 diff --git a/numass-data-proto/src/test/resources/testData/set_4/p9(10s)(HV1=18900) b/numass-data-proto/src/test/resources/testData/set_4/p9(10s)(HV1=18900) new file mode 100644 index 0000000000000000000000000000000000000000..448c462c5c1300cd9d363d4bf1f3a54c04775e6c GIT binary patch literal 7013 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 literal 0 HcmV?d00001 diff --git a/numass-data-proto/src/test/resources/testData/set_4/scenario b/numass-data-proto/src/test/resources/testData/set_4/scenario new file mode 100644 index 0000000..180b082 --- /dev/null +++ b/numass-data-proto/src/test/resources/testData/set_4/scenario @@ -0,0 +1,31 @@ +POINT 10 18700 0 +POINT 10 19015 0 +POINT 10 19005 0 +POINT 10 19000 0 +POINT 10 18995 0 +POINT 10 18990 0 +POINT 10 18700 0 +POINT 10 18980 0 +POINT 10 18950 0 +POINT 10 18900 0 +POINT 10 18800 0 +POINT 10 18700 0 +POINT 10 18600 0 +POINT 10 18400 0 +POINT 10 18200 0 +POINT 10 18000 0 +POINT 10 17500 0 +POINT 10 17000 0 +POINT 10 18700 0 +POINT 10 16500 0 +POINT 10 16000 0 +POINT 10 15500 0 +POINT 10 15000 0 +POINT 10 14500 0 +POINT 10 18700 0 +POINT 10 14000 0 +POINT 10 13500 0 +POINT 10 13000 0 +POINT 10 12500 0 +POINT 10 12000 0 +POINT 10 18700 0 diff --git a/numass-data-proto/src/test/resources/testData/set_4/voltage b/numass-data-proto/src/test/resources/testData/set_4/voltage new file mode 100644 index 0000000000000000000000000000000000000000..d611c5a1ef570d0cc86b24ca40979bac20bcb982 GIT binary patch literal 8601 zcmaKx&2Ak<5QQCAiM%= zo(NH0RXtLsPTyn`=}YyT>8d`}Q}^+slLud%Jp1>*zfK;Uv_F5JoP0w6I{W9*-d*3`UmxC_*R%7V?(c8k)+bLc@2=nNcUOnQ)$9H4<>BVZ z;dcM#^Xtpcro)@t>tEehPnVnNX-==+&mZ3V+YhgPyU0J6AAkSwpET|0@5K@?t}fH!=dkbp`~LmyzDap^czyrkYJYzE z=jp@K*-iPvg^S65KTkEx)uprPY|4vsmQC&m3rARHmP*+byXx%6k@GTUo^+0s`Y0^8 z-D02UOQXe2aW`2SSP#*FVgoB;3f?8Mrna(OH?pPyTNQ2Ne05z9P)oGyF;Db$k{v2& z--$}5O9?hBzRr^C5#?+b=e*TBbGC^=y?&OxcR;UaMJ>{<8d%SObu}n%Rb$tTN3_JD zmQY>S;_S{5mD+>5PE<2(&sV6EX4*Mhmqg_(4Az~GN1Mtp13aplUMk=UBz@@)GkdY|l`v;&`oJpr?xG4XI=r z^qQouhx!mPsXN$DQg=PL>LhiC*%39`qsV^jTc)aAsw~BJj8wHxji{c4Y%-dvcwR1$ zX|^HLTq7o)hu0L(Lu^sc%O$zpysZMFswRT{A*y;XowWL**@0#4Q2|uuvi2wxIj@SW zTIo=^pt$aMkg4A})A^U${SH+KQO)vzs^ekWJUo%nng#D%6c1j!+hw~y zQ4|4($-O@jvuaE4P$R0E?9P_nqrfwX4IPiz(D6zg-^z)p{{~ZarMq21I`vjg486bH z$}^0VJNbaA8uUc%PH;`_O#?Mi_Qpm=*WE4z`qJ7|K%?Szf!=cKltk6-MpUv))UK;H zau2GK)>Xg5k*gxRs@%u(U{$%1XSk|%r#S_44oFXsb1>sw2%@Ob?H2^aYL6mn^{V3m zHg(6tOwIvjl55D+?=X|fbM%#I-eRhHBX^+MBT>=QsHqa7qKN2r2d1hW3NuxN;oQFoY6PrfWjnSLZtU|sDNtE?tqN0lE zb{~9I_d{P2^i*{}7^&`unRwqok9yyLiuWxpc=N?gisXi#qMK|j^|=Jow0&2itcoab z9HM+OQmgRottQg!fzN7-wd=|p2{ZA)0ppAh80Wh&n^BrOaK49>^PQ#%zNfe#wRKEI z6FjRlwGdU{MA7U)G_^=`Qi+Nt5J}SqzNa@u+r1^W>H%!1rq3l}inCSICle7?LezUY zQ`6OmvJ)~j?@3bzz8g1c^@akCh&J`z`UYYYilM6l%Bo#O> zQBlvr{%x$AjC<29A zS0T!Zn3_IKlr=F0J0bmRNcmJWYTs45SAbbh>Vqh5~eg_Sc%&Cl!rucc@P)Fq516fJx=SHKk|aIJvbCn4AQ-rgSWy zz=V+AP-e3pp1({#%C%oin40rPlylA0oIjd4aIQT(MMOEqYqNh>g<}{O#T>`sLOcX&T(^-!hJ6~f+tvDZ!6yF;#uDv-$ zaEB{;YoA*!7^f!6iiVUcu+fipo<62%D#7=Y0TV?qPJTngadKzJOr{kB#(AFS&98^7 zQ#_A8x3@LGR9tUJInRyS_ZQcjY)|HO#rKAkD-W+L_w@lA>Y-T$pUjl$oAKjmGU*{I zKAcM2)VfgClN