From 577bb7b0e7428deee4598398b3a8f33245ed545c Mon Sep 17 00:00:00 2001 From: dmi3coder Date: Sat, 7 Mar 2020 10:20:59 +0100 Subject: [PATCH 01/12] Made Kernel.java as interface, extracted class into BaseKernel.java --- .../de/dmi3y/behaiv/kernel/BaseKernel.java | 100 ++++++++++++++++++ .../java/de/dmi3y/behaiv/kernel/Kernel.java | 88 +++------------ .../kernel/LogisticRegressionKernel.java | 2 +- src/test/java/de/dmi3y/behaiv/BehaivTest.java | 5 +- 4 files changed, 119 insertions(+), 76 deletions(-) create mode 100644 src/main/java/de/dmi3y/behaiv/kernel/BaseKernel.java diff --git a/src/main/java/de/dmi3y/behaiv/kernel/BaseKernel.java b/src/main/java/de/dmi3y/behaiv/kernel/BaseKernel.java new file mode 100644 index 0000000..04ef86b --- /dev/null +++ b/src/main/java/de/dmi3y/behaiv/kernel/BaseKernel.java @@ -0,0 +1,100 @@ +package de.dmi3y.behaiv.kernel; + +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.ObjectMapper; +import de.dmi3y.behaiv.storage.BehaivStorage; +import de.dmi3y.behaiv.tools.Pair; + +import java.io.BufferedReader; +import java.io.BufferedWriter; +import java.io.FileReader; +import java.io.FileWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +public abstract class BaseKernel implements Kernel { + + protected String id; + protected Long treshold = 10L; + protected ObjectMapper objectMapper; + protected boolean partialFitAllowed = false; + protected boolean alwaysKeepData = true; + + public BaseKernel(String id) { + this.id = id; + objectMapper = new ObjectMapper(); + } + + + @Override + public void setId(String id) { + this.id = id; + } + + + //list, label + protected List, String>> data = new ArrayList<>(); + + + @Override + public void fit() { + fit(this.data); + } + + @Override + public void setTreshold(Long treshold) { + this.treshold = treshold; + } + + @Override + public boolean readyToPredict() { + return data.size() > treshold; + } + + @Override + public void update(List, String>> data) { + } + + @Override + public boolean isPartialFitAllowed() { + return partialFitAllowed; + } + + @Override + public void updateSingle(List features, String label) { + data.add(new Pair<>(features, label)); + } + + @Override + public boolean isAlwaysKeepData() { + return alwaysKeepData; + } + + @Override + public void setAlwaysKeepData(boolean alwaysKeepData) { + this.alwaysKeepData = alwaysKeepData; + } + + @Override + public void save(BehaivStorage storage) throws IOException { + + try (final BufferedWriter writer = new BufferedWriter(new FileWriter(storage.getDataFile(id)))) { + writer.write(objectMapper.writeValueAsString(data)); + } + } + + @Override + public void restore(BehaivStorage storage) throws IOException { + final TypeReference, String>>> typeReference = new TypeReference, String>>>() { + }; + try (final BufferedReader reader = new BufferedReader(new FileReader(storage.getDataFile(id)))) { + final String content = reader.readLine(); + if (content == null || content.isEmpty()) { + data = new ArrayList<>(); + } else { + data = objectMapper.readValue(content, typeReference); + } + } + } +} diff --git a/src/main/java/de/dmi3y/behaiv/kernel/Kernel.java b/src/main/java/de/dmi3y/behaiv/kernel/Kernel.java index ec414f5..b2db896 100644 --- a/src/main/java/de/dmi3y/behaiv/kernel/Kernel.java +++ b/src/main/java/de/dmi3y/behaiv/kernel/Kernel.java @@ -1,95 +1,37 @@ package de.dmi3y.behaiv.kernel; -import com.fasterxml.jackson.core.type.TypeReference; -import com.fasterxml.jackson.databind.ObjectMapper; import de.dmi3y.behaiv.storage.BehaivStorage; import de.dmi3y.behaiv.tools.Pair; -import java.io.BufferedReader; -import java.io.BufferedWriter; -import java.io.FileReader; -import java.io.FileWriter; import java.io.IOException; -import java.util.ArrayList; import java.util.List; -public abstract class Kernel { +public interface Kernel { + void setId(String id); - protected String id; - protected Long treshold = 10L; - protected ObjectMapper objectMapper; - protected boolean partialFitAllowed = false; - protected boolean alwaysKeepData = true; + boolean isEmpty(); - public Kernel(String id) { - this.id = id; - objectMapper = new ObjectMapper(); - } + void fit(List, String>> data); + void fit(); - public void setId(String id) { - this.id = id; - } + void setTreshold(Long treshold); + boolean readyToPredict(); - //list, label - protected List, String>> data = new ArrayList<>(); + void update(List, String>> data); + boolean isPartialFitAllowed(); - public abstract boolean isEmpty(); + void updateSingle(List features, String label); - public abstract void fit(List, String>> data); + String predictOne(List features); - public void fit() { - fit(this.data); - } + boolean isAlwaysKeepData(); - public void setTreshold(Long treshold) { - this.treshold = treshold; - } + void setAlwaysKeepData(boolean alwaysKeepData); - public boolean readyToPredict() { - return data.size() > treshold; - } + void save(BehaivStorage storage) throws IOException; - public void update(List, String>> data) { - } - - public boolean isPartialFitAllowed() { - return partialFitAllowed; - } - - public void updateSingle(List features, String label) { - data.add(new Pair<>(features, label)); - } - - public abstract String predictOne(List features); - - public boolean isAlwaysKeepData() { - return alwaysKeepData; - } - - public void setAlwaysKeepData(boolean alwaysKeepData) { - this.alwaysKeepData = alwaysKeepData; - } - - public void save(BehaivStorage storage) throws IOException { - - try (final BufferedWriter writer = new BufferedWriter(new FileWriter(storage.getDataFile(id)))) { - writer.write(objectMapper.writeValueAsString(data)); - } - } - - public void restore(BehaivStorage storage) throws IOException { - final TypeReference, String>>> typeReference = new TypeReference, String>>>() { - }; - try (final BufferedReader reader = new BufferedReader(new FileReader(storage.getDataFile(id)))) { - final String content = reader.readLine(); - if (content == null || content.isEmpty()) { - data = new ArrayList<>(); - } else { - data = objectMapper.readValue(content, typeReference); - } - } - } + void restore(BehaivStorage storage) throws IOException; } diff --git a/src/main/java/de/dmi3y/behaiv/kernel/LogisticRegressionKernel.java b/src/main/java/de/dmi3y/behaiv/kernel/LogisticRegressionKernel.java index 5205d25..3337192 100644 --- a/src/main/java/de/dmi3y/behaiv/kernel/LogisticRegressionKernel.java +++ b/src/main/java/de/dmi3y/behaiv/kernel/LogisticRegressionKernel.java @@ -17,7 +17,7 @@ import static de.dmi3y.behaiv.tools.DataMappingUtils.toDistinctListOfPairValues; import static de.dmi3y.behaiv.tools.DataMappingUtils.toInput2dArray; -public class LogisticRegressionKernel extends Kernel { +public class LogisticRegressionKernel extends BaseKernel { protected List labels = new ArrayList<>(); private Random rand; diff --git a/src/test/java/de/dmi3y/behaiv/BehaivTest.java b/src/test/java/de/dmi3y/behaiv/BehaivTest.java index 9c9091b..354eea4 100644 --- a/src/test/java/de/dmi3y/behaiv/BehaivTest.java +++ b/src/test/java/de/dmi3y/behaiv/BehaivTest.java @@ -1,5 +1,6 @@ package de.dmi3y.behaiv; +import de.dmi3y.behaiv.kernel.BaseKernel; import de.dmi3y.behaiv.kernel.Kernel; import de.dmi3y.behaiv.kernel.LogisticRegressionKernel; import de.dmi3y.behaiv.provider.DayTimeProvider; @@ -59,7 +60,7 @@ public void stopCapturing_whenDiscard_sessionShouldBeNull() { @Test public void startCapturing_tryToRestore_restoreNetwork() throws IOException { - final Kernel mockKernel = mock(Kernel.class); + final Kernel mockKernel = mock(BaseKernel.class); final BehaivStorage storage = mock(BehaivStorage.class); final Behaiv behaiv = new Behaiv.Builder("testId") .setKernel(mockKernel) @@ -75,7 +76,7 @@ public void startCapturing_tryToRestore_restoreNetwork() throws IOException { @Test public void startCapturing_withIOException_continueWithoutSaving() throws IOException { - final Kernel testKernel = mock(Kernel.class); + final Kernel testKernel = mock(BaseKernel.class); final BehaivStorage storage = mock(BehaivStorage.class); final Behaiv behaiv = Behaiv.with("testId") .setKernel(testKernel) From 36a69de9868c9bc10a82397a2892e7a99ea06ba7 Mon Sep 17 00:00:00 2001 From: dmi3coder Date: Sat, 4 Apr 2020 12:23:04 +0300 Subject: [PATCH 02/12] Changed proto type to lite --- proto.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/proto.sh b/proto.sh index d4ba801..946d959 100755 --- a/proto.sh +++ b/proto.sh @@ -1 +1 @@ - protoc -I=. --java_out=./src/main/java ./behaiv.proto \ No newline at end of file + protoc -I=. --java_out:lite=./src/main/java ./behaiv.proto \ No newline at end of file From d08c1478e70ec25adb5532af4c3fea935bdc3d23 Mon Sep 17 00:00:00 2001 From: dmi3coder Date: Sat, 4 Apr 2020 12:23:21 +0300 Subject: [PATCH 03/12] Changed protobuf dependency type to lite --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index cec6e41..6145c76 100644 --- a/build.gradle +++ b/build.gradle @@ -39,7 +39,7 @@ repositories { dependencies { // Protobuf - compile group: 'com.google.protobuf', name: 'protobuf-java', version: '3.11.4' + compile group: 'com.google.protobuf', name: 'protobuf-javalite', version: '3.11.4' // Swagger codegen dependencies swaggerCodegen 'io.swagger:swagger-codegen-cli:2.4.2' // Swagger Codegen V2 // This dependency is exported to consumers, that is to say found on their compile classpath. From c59bdc41c29e2acffcb6b94703b1c5267c61368b Mon Sep 17 00:00:00 2001 From: dmi3coder Date: Sat, 4 Apr 2020 12:24:14 +0300 Subject: [PATCH 04/12] fixed incorrect protoc command --- proto.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/proto.sh b/proto.sh index 946d959..631e20f 100755 --- a/proto.sh +++ b/proto.sh @@ -1 +1 @@ - protoc -I=. --java_out:lite=./src/main/java ./behaiv.proto \ No newline at end of file + protoc -I=. --java_out=lite:./src/main/java ./behaiv.proto \ No newline at end of file From 8013139be9cbc6114031ee19887efe070710d706 Mon Sep 17 00:00:00 2001 From: dmi3coder Date: Sat, 4 Apr 2020 12:31:44 +0300 Subject: [PATCH 05/12] Added proto files --- .../java/tech/donau/behaiv/proto/Action.java | 953 ++++++++++++++++++ .../donau/behaiv/proto/ActionOrBuilder.java | 114 +++ .../java/tech/donau/behaiv/proto/Behaiv.java | 16 + .../java/tech/donau/behaiv/proto/Data.java | 350 +++++++ .../donau/behaiv/proto/DataOrBuilder.java | 27 + .../tech/donau/behaiv/proto/Prediction.java | 513 ++++++++++ .../behaiv/proto/PredictionOrBuilder.java | 35 + .../donau/behaiv/proto/PredictionSet.java | 465 +++++++++ .../behaiv/proto/PredictionSetOrBuilder.java | 29 + .../java/tech/donau/behaiv/proto/Screen.java | 342 +++++++ .../donau/behaiv/proto/ScreenOrBuilder.java | 27 + 11 files changed, 2871 insertions(+) create mode 100644 src/main/java/tech/donau/behaiv/proto/Action.java create mode 100644 src/main/java/tech/donau/behaiv/proto/ActionOrBuilder.java create mode 100644 src/main/java/tech/donau/behaiv/proto/Behaiv.java create mode 100644 src/main/java/tech/donau/behaiv/proto/Data.java create mode 100644 src/main/java/tech/donau/behaiv/proto/DataOrBuilder.java create mode 100644 src/main/java/tech/donau/behaiv/proto/Prediction.java create mode 100644 src/main/java/tech/donau/behaiv/proto/PredictionOrBuilder.java create mode 100644 src/main/java/tech/donau/behaiv/proto/PredictionSet.java create mode 100644 src/main/java/tech/donau/behaiv/proto/PredictionSetOrBuilder.java create mode 100644 src/main/java/tech/donau/behaiv/proto/Screen.java create mode 100644 src/main/java/tech/donau/behaiv/proto/ScreenOrBuilder.java diff --git a/src/main/java/tech/donau/behaiv/proto/Action.java b/src/main/java/tech/donau/behaiv/proto/Action.java new file mode 100644 index 0000000..297ac36 --- /dev/null +++ b/src/main/java/tech/donau/behaiv/proto/Action.java @@ -0,0 +1,953 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: behaiv.proto + +package tech.donau.behaiv.proto; + +/** + *
+ * Communication messages
+ * 
+ * + * Protobuf type {@code Action} + */ +public final class Action extends + com.google.protobuf.GeneratedMessageLite< + Action, Action.Builder> implements + // @@protoc_insertion_point(message_implements:Action) + ActionOrBuilder { + private Action() { + action_ = ""; + object_ = ""; + screenStack_ = emptyIntList(); + } + public static final int LOCAL_ID_FIELD_NUMBER = 1; + private long localId_; + /** + * int64 local_id = 1; + * @return The localId. + */ + @java.lang.Override + public long getLocalId() { + return localId_; + } + /** + * int64 local_id = 1; + * @param value The localId to set. + */ + private void setLocalId(long value) { + + localId_ = value; + } + /** + * int64 local_id = 1; + */ + private void clearLocalId() { + + localId_ = 0L; + } + + public static final int PREV_LOCAL_ID_FIELD_NUMBER = 2; + private long prevLocalId_; + /** + * int64 prev_local_id = 2; + * @return The prevLocalId. + */ + @java.lang.Override + public long getPrevLocalId() { + return prevLocalId_; + } + /** + * int64 prev_local_id = 2; + * @param value The prevLocalId to set. + */ + private void setPrevLocalId(long value) { + + prevLocalId_ = value; + } + /** + * int64 prev_local_id = 2; + */ + private void clearPrevLocalId() { + + prevLocalId_ = 0L; + } + + public static final int ACTION_FIELD_NUMBER = 3; + private java.lang.String action_; + /** + * string action = 3; + * @return The action. + */ + @java.lang.Override + public java.lang.String getAction() { + return action_; + } + /** + * string action = 3; + * @return The bytes for action. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getActionBytes() { + return com.google.protobuf.ByteString.copyFromUtf8(action_); + } + /** + * string action = 3; + * @param value The action to set. + */ + private void setAction( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + action_ = value; + } + /** + * string action = 3; + */ + private void clearAction() { + + action_ = getDefaultInstance().getAction(); + } + /** + * string action = 3; + * @param value The bytes for action to set. + */ + private void setActionBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + action_ = value.toStringUtf8(); + } + + public static final int OBJECT_FIELD_NUMBER = 4; + private java.lang.String object_; + /** + * string object = 4; + * @return The object. + */ + @java.lang.Override + public java.lang.String getObject() { + return object_; + } + /** + * string object = 4; + * @return The bytes for object. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getObjectBytes() { + return com.google.protobuf.ByteString.copyFromUtf8(object_); + } + /** + * string object = 4; + * @param value The object to set. + */ + private void setObject( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + object_ = value; + } + /** + * string object = 4; + */ + private void clearObject() { + + object_ = getDefaultInstance().getObject(); + } + /** + * string object = 4; + * @param value The bytes for object to set. + */ + private void setObjectBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + object_ = value.toStringUtf8(); + } + + public static final int CURRENT_SCREEN_ID_FIELD_NUMBER = 5; + private int currentScreenId_; + /** + * int32 current_screen_id = 5; + * @return The currentScreenId. + */ + @java.lang.Override + public int getCurrentScreenId() { + return currentScreenId_; + } + /** + * int32 current_screen_id = 5; + * @param value The currentScreenId to set. + */ + private void setCurrentScreenId(int value) { + + currentScreenId_ = value; + } + /** + * int32 current_screen_id = 5; + */ + private void clearCurrentScreenId() { + + currentScreenId_ = 0; + } + + public static final int SCREEN_STACK_FIELD_NUMBER = 6; + private com.google.protobuf.Internal.IntList screenStack_; + /** + *
+   *    repeated Event events = 7; TODO
+   * 
+ * + * repeated int32 screen_stack = 6; + * @return A list containing the screenStack. + */ + @java.lang.Override + public java.util.List + getScreenStackList() { + return screenStack_; + } + /** + *
+   *    repeated Event events = 7; TODO
+   * 
+ * + * repeated int32 screen_stack = 6; + * @return The count of screenStack. + */ + @java.lang.Override + public int getScreenStackCount() { + return screenStack_.size(); + } + /** + *
+   *    repeated Event events = 7; TODO
+   * 
+ * + * repeated int32 screen_stack = 6; + * @param index The index of the element to return. + * @return The screenStack at the given index. + */ + @java.lang.Override + public int getScreenStack(int index) { + return screenStack_.getInt(index); + } + private int screenStackMemoizedSerializedSize = -1; + private void ensureScreenStackIsMutable() { + if (!screenStack_.isModifiable()) { + screenStack_ = + com.google.protobuf.GeneratedMessageLite.mutableCopy(screenStack_); + } + } + /** + *
+   *    repeated Event events = 7; TODO
+   * 
+ * + * repeated int32 screen_stack = 6; + * @param index The index to set the value at. + * @param value The screenStack to set. + */ + private void setScreenStack( + int index, int value) { + ensureScreenStackIsMutable(); + screenStack_.setInt(index, value); + } + /** + *
+   *    repeated Event events = 7; TODO
+   * 
+ * + * repeated int32 screen_stack = 6; + * @param value The screenStack to add. + */ + private void addScreenStack(int value) { + ensureScreenStackIsMutable(); + screenStack_.addInt(value); + } + /** + *
+   *    repeated Event events = 7; TODO
+   * 
+ * + * repeated int32 screen_stack = 6; + * @param values The screenStack to add. + */ + private void addAllScreenStack( + java.lang.Iterable values) { + ensureScreenStackIsMutable(); + com.google.protobuf.AbstractMessageLite.addAll( + values, screenStack_); + } + /** + *
+   *    repeated Event events = 7; TODO
+   * 
+ * + * repeated int32 screen_stack = 6; + */ + private void clearScreenStack() { + screenStack_ = emptyIntList(); + } + + public static final int ATTRIBUTES_FIELD_NUMBER = 8; + private static final class AttributesDefaultEntryHolder { + static final com.google.protobuf.MapEntryLite< + java.lang.String, java.lang.String> defaultEntry = + com.google.protobuf.MapEntryLite + .newDefaultInstance( + com.google.protobuf.WireFormat.FieldType.STRING, + "", + com.google.protobuf.WireFormat.FieldType.STRING, + ""); + } + private com.google.protobuf.MapFieldLite< + java.lang.String, java.lang.String> attributes_ = + com.google.protobuf.MapFieldLite.emptyMapField(); + private com.google.protobuf.MapFieldLite + internalGetAttributes() { + return attributes_; + } + private com.google.protobuf.MapFieldLite + internalGetMutableAttributes() { + if (!attributes_.isMutable()) { + attributes_ = attributes_.mutableCopy(); + } + return attributes_; + } + @java.lang.Override + + public int getAttributesCount() { + return internalGetAttributes().size(); + } + /** + * map<string, string> attributes = 8; + */ + @java.lang.Override + + public boolean containsAttributes( + java.lang.String key) { + if (key == null) { throw new java.lang.NullPointerException(); } + return internalGetAttributes().containsKey(key); + } + /** + * Use {@link #getAttributesMap()} instead. + */ + @java.lang.Override + @java.lang.Deprecated + public java.util.Map getAttributes() { + return getAttributesMap(); + } + /** + * map<string, string> attributes = 8; + */ + @java.lang.Override + + public java.util.Map getAttributesMap() { + return java.util.Collections.unmodifiableMap( + internalGetAttributes()); + } + /** + * map<string, string> attributes = 8; + */ + @java.lang.Override + + public java.lang.String getAttributesOrDefault( + java.lang.String key, + java.lang.String defaultValue) { + if (key == null) { throw new java.lang.NullPointerException(); } + java.util.Map map = + internalGetAttributes(); + return map.containsKey(key) ? map.get(key) : defaultValue; + } + /** + * map<string, string> attributes = 8; + */ + @java.lang.Override + + public java.lang.String getAttributesOrThrow( + java.lang.String key) { + if (key == null) { throw new java.lang.NullPointerException(); } + java.util.Map map = + internalGetAttributes(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return map.get(key); + } + /** + * map<string, string> attributes = 8; + */ + private java.util.Map + getMutableAttributesMap() { + return internalGetMutableAttributes(); + } + + public static tech.donau.behaiv.proto.Action parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return com.google.protobuf.GeneratedMessageLite.parseFrom( + DEFAULT_INSTANCE, data); + } + public static tech.donau.behaiv.proto.Action parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return com.google.protobuf.GeneratedMessageLite.parseFrom( + DEFAULT_INSTANCE, data, extensionRegistry); + } + public static tech.donau.behaiv.proto.Action parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return com.google.protobuf.GeneratedMessageLite.parseFrom( + DEFAULT_INSTANCE, data); + } + public static tech.donau.behaiv.proto.Action parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return com.google.protobuf.GeneratedMessageLite.parseFrom( + DEFAULT_INSTANCE, data, extensionRegistry); + } + public static tech.donau.behaiv.proto.Action parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return com.google.protobuf.GeneratedMessageLite.parseFrom( + DEFAULT_INSTANCE, data); + } + public static tech.donau.behaiv.proto.Action parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return com.google.protobuf.GeneratedMessageLite.parseFrom( + DEFAULT_INSTANCE, data, extensionRegistry); + } + public static tech.donau.behaiv.proto.Action parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageLite.parseFrom( + DEFAULT_INSTANCE, input); + } + public static tech.donau.behaiv.proto.Action parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageLite.parseFrom( + DEFAULT_INSTANCE, input, extensionRegistry); + } + public static tech.donau.behaiv.proto.Action parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return parseDelimitedFrom(DEFAULT_INSTANCE, input); + } + public static tech.donau.behaiv.proto.Action parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry); + } + public static tech.donau.behaiv.proto.Action parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageLite.parseFrom( + DEFAULT_INSTANCE, input); + } + public static tech.donau.behaiv.proto.Action parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageLite.parseFrom( + DEFAULT_INSTANCE, input, extensionRegistry); + } + + public static Builder newBuilder() { + return (Builder) DEFAULT_INSTANCE.createBuilder(); + } + public static Builder newBuilder(tech.donau.behaiv.proto.Action prototype) { + return (Builder) DEFAULT_INSTANCE.createBuilder(prototype); + } + + /** + *
+   * Communication messages
+   * 
+ * + * Protobuf type {@code Action} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageLite.Builder< + tech.donau.behaiv.proto.Action, Builder> implements + // @@protoc_insertion_point(builder_implements:Action) + tech.donau.behaiv.proto.ActionOrBuilder { + // Construct using tech.donau.behaiv.proto.Action.newBuilder() + private Builder() { + super(DEFAULT_INSTANCE); + } + + + /** + * int64 local_id = 1; + * @return The localId. + */ + @java.lang.Override + public long getLocalId() { + return instance.getLocalId(); + } + /** + * int64 local_id = 1; + * @param value The localId to set. + * @return This builder for chaining. + */ + public Builder setLocalId(long value) { + copyOnWrite(); + instance.setLocalId(value); + return this; + } + /** + * int64 local_id = 1; + * @return This builder for chaining. + */ + public Builder clearLocalId() { + copyOnWrite(); + instance.clearLocalId(); + return this; + } + + /** + * int64 prev_local_id = 2; + * @return The prevLocalId. + */ + @java.lang.Override + public long getPrevLocalId() { + return instance.getPrevLocalId(); + } + /** + * int64 prev_local_id = 2; + * @param value The prevLocalId to set. + * @return This builder for chaining. + */ + public Builder setPrevLocalId(long value) { + copyOnWrite(); + instance.setPrevLocalId(value); + return this; + } + /** + * int64 prev_local_id = 2; + * @return This builder for chaining. + */ + public Builder clearPrevLocalId() { + copyOnWrite(); + instance.clearPrevLocalId(); + return this; + } + + /** + * string action = 3; + * @return The action. + */ + @java.lang.Override + public java.lang.String getAction() { + return instance.getAction(); + } + /** + * string action = 3; + * @return The bytes for action. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getActionBytes() { + return instance.getActionBytes(); + } + /** + * string action = 3; + * @param value The action to set. + * @return This builder for chaining. + */ + public Builder setAction( + java.lang.String value) { + copyOnWrite(); + instance.setAction(value); + return this; + } + /** + * string action = 3; + * @return This builder for chaining. + */ + public Builder clearAction() { + copyOnWrite(); + instance.clearAction(); + return this; + } + /** + * string action = 3; + * @param value The bytes for action to set. + * @return This builder for chaining. + */ + public Builder setActionBytes( + com.google.protobuf.ByteString value) { + copyOnWrite(); + instance.setActionBytes(value); + return this; + } + + /** + * string object = 4; + * @return The object. + */ + @java.lang.Override + public java.lang.String getObject() { + return instance.getObject(); + } + /** + * string object = 4; + * @return The bytes for object. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getObjectBytes() { + return instance.getObjectBytes(); + } + /** + * string object = 4; + * @param value The object to set. + * @return This builder for chaining. + */ + public Builder setObject( + java.lang.String value) { + copyOnWrite(); + instance.setObject(value); + return this; + } + /** + * string object = 4; + * @return This builder for chaining. + */ + public Builder clearObject() { + copyOnWrite(); + instance.clearObject(); + return this; + } + /** + * string object = 4; + * @param value The bytes for object to set. + * @return This builder for chaining. + */ + public Builder setObjectBytes( + com.google.protobuf.ByteString value) { + copyOnWrite(); + instance.setObjectBytes(value); + return this; + } + + /** + * int32 current_screen_id = 5; + * @return The currentScreenId. + */ + @java.lang.Override + public int getCurrentScreenId() { + return instance.getCurrentScreenId(); + } + /** + * int32 current_screen_id = 5; + * @param value The currentScreenId to set. + * @return This builder for chaining. + */ + public Builder setCurrentScreenId(int value) { + copyOnWrite(); + instance.setCurrentScreenId(value); + return this; + } + /** + * int32 current_screen_id = 5; + * @return This builder for chaining. + */ + public Builder clearCurrentScreenId() { + copyOnWrite(); + instance.clearCurrentScreenId(); + return this; + } + + /** + *
+     *    repeated Event events = 7; TODO
+     * 
+ * + * repeated int32 screen_stack = 6; + * @return A list containing the screenStack. + */ + @java.lang.Override + public java.util.List + getScreenStackList() { + return java.util.Collections.unmodifiableList( + instance.getScreenStackList()); + } + /** + *
+     *    repeated Event events = 7; TODO
+     * 
+ * + * repeated int32 screen_stack = 6; + * @return The count of screenStack. + */ + @java.lang.Override + public int getScreenStackCount() { + return instance.getScreenStackCount(); + } + /** + *
+     *    repeated Event events = 7; TODO
+     * 
+ * + * repeated int32 screen_stack = 6; + * @param index The index of the element to return. + * @return The screenStack at the given index. + */ + @java.lang.Override + public int getScreenStack(int index) { + return instance.getScreenStack(index); + } + /** + *
+     *    repeated Event events = 7; TODO
+     * 
+ * + * repeated int32 screen_stack = 6; + * @param value The screenStack to set. + * @return This builder for chaining. + */ + public Builder setScreenStack( + int index, int value) { + copyOnWrite(); + instance.setScreenStack(index, value); + return this; + } + /** + *
+     *    repeated Event events = 7; TODO
+     * 
+ * + * repeated int32 screen_stack = 6; + * @param value The screenStack to add. + * @return This builder for chaining. + */ + public Builder addScreenStack(int value) { + copyOnWrite(); + instance.addScreenStack(value); + return this; + } + /** + *
+     *    repeated Event events = 7; TODO
+     * 
+ * + * repeated int32 screen_stack = 6; + * @param values The screenStack to add. + * @return This builder for chaining. + */ + public Builder addAllScreenStack( + java.lang.Iterable values) { + copyOnWrite(); + instance.addAllScreenStack(values); + return this; + } + /** + *
+     *    repeated Event events = 7; TODO
+     * 
+ * + * repeated int32 screen_stack = 6; + * @return This builder for chaining. + */ + public Builder clearScreenStack() { + copyOnWrite(); + instance.clearScreenStack(); + return this; + } + + @java.lang.Override + + public int getAttributesCount() { + return instance.getAttributesMap().size(); + } + /** + * map<string, string> attributes = 8; + */ + @java.lang.Override + + public boolean containsAttributes( + java.lang.String key) { + if (key == null) { throw new java.lang.NullPointerException(); } + return instance.getAttributesMap().containsKey(key); + } + + public Builder clearAttributes() { + copyOnWrite(); + instance.getMutableAttributesMap().clear(); + return this; + } + /** + * map<string, string> attributes = 8; + */ + + public Builder removeAttributes( + java.lang.String key) { + if (key == null) { throw new java.lang.NullPointerException(); } + copyOnWrite(); + instance.getMutableAttributesMap().remove(key); + return this; + } + /** + * Use {@link #getAttributesMap()} instead. + */ + @java.lang.Override + @java.lang.Deprecated + public java.util.Map getAttributes() { + return getAttributesMap(); + } + /** + * map<string, string> attributes = 8; + */ + @java.lang.Override + public java.util.Map getAttributesMap() { + return java.util.Collections.unmodifiableMap( + instance.getAttributesMap()); + } + /** + * map<string, string> attributes = 8; + */ + @java.lang.Override + + public java.lang.String getAttributesOrDefault( + java.lang.String key, + java.lang.String defaultValue) { + if (key == null) { throw new java.lang.NullPointerException(); } + java.util.Map map = + instance.getAttributesMap(); + return map.containsKey(key) ? map.get(key) : defaultValue; + } + /** + * map<string, string> attributes = 8; + */ + @java.lang.Override + + public java.lang.String getAttributesOrThrow( + java.lang.String key) { + if (key == null) { throw new java.lang.NullPointerException(); } + java.util.Map map = + instance.getAttributesMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return map.get(key); + } + /** + * map<string, string> attributes = 8; + */ + public Builder putAttributes( + java.lang.String key, + java.lang.String value) { + if (key == null) { throw new java.lang.NullPointerException(); } + if (value == null) { throw new java.lang.NullPointerException(); } + copyOnWrite(); + instance.getMutableAttributesMap().put(key, value); + return this; + } + /** + * map<string, string> attributes = 8; + */ + public Builder putAllAttributes( + java.util.Map values) { + copyOnWrite(); + instance.getMutableAttributesMap().putAll(values); + return this; + } + + // @@protoc_insertion_point(builder_scope:Action) + } + @java.lang.Override + @java.lang.SuppressWarnings({"unchecked", "fallthrough"}) + protected final java.lang.Object dynamicMethod( + com.google.protobuf.GeneratedMessageLite.MethodToInvoke method, + java.lang.Object arg0, java.lang.Object arg1) { + switch (method) { + case NEW_MUTABLE_INSTANCE: { + return new tech.donau.behaiv.proto.Action(); + } + case NEW_BUILDER: { + return new Builder(); + } + case BUILD_MESSAGE_INFO: { + java.lang.Object[] objects = new java.lang.Object[] { + "localId_", + "prevLocalId_", + "action_", + "object_", + "currentScreenId_", + "screenStack_", + "attributes_", + AttributesDefaultEntryHolder.defaultEntry, + }; + java.lang.String info = + "\u0000\u0007\u0000\u0000\u0001\b\u0007\u0001\u0001\u0000\u0001\u0002\u0002\u0002" + + "\u0003\u0208\u0004\u0208\u0005\u0004\u0006\'\b2"; + return newMessageInfo(DEFAULT_INSTANCE, info, objects); + } + // fall through + case GET_DEFAULT_INSTANCE: { + return DEFAULT_INSTANCE; + } + case GET_PARSER: { + com.google.protobuf.Parser parser = PARSER; + if (parser == null) { + synchronized (tech.donau.behaiv.proto.Action.class) { + parser = PARSER; + if (parser == null) { + parser = + new DefaultInstanceBasedParser( + DEFAULT_INSTANCE); + PARSER = parser; + } + } + } + return parser; + } + case GET_MEMOIZED_IS_INITIALIZED: { + return (byte) 1; + } + case SET_MEMOIZED_IS_INITIALIZED: { + return null; + } + } + throw new UnsupportedOperationException(); + } + + + // @@protoc_insertion_point(class_scope:Action) + private static final tech.donau.behaiv.proto.Action DEFAULT_INSTANCE; + static { + Action defaultInstance = new Action(); + // New instances are implicitly immutable so no need to make + // immutable. + DEFAULT_INSTANCE = defaultInstance; + com.google.protobuf.GeneratedMessageLite.registerDefaultInstance( + Action.class, defaultInstance); + } + + public static tech.donau.behaiv.proto.Action getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static volatile com.google.protobuf.Parser PARSER; + + public static com.google.protobuf.Parser parser() { + return DEFAULT_INSTANCE.getParserForType(); + } +} + diff --git a/src/main/java/tech/donau/behaiv/proto/ActionOrBuilder.java b/src/main/java/tech/donau/behaiv/proto/ActionOrBuilder.java new file mode 100644 index 0000000..e15a944 --- /dev/null +++ b/src/main/java/tech/donau/behaiv/proto/ActionOrBuilder.java @@ -0,0 +1,114 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: behaiv.proto + +package tech.donau.behaiv.proto; + +public interface ActionOrBuilder extends + // @@protoc_insertion_point(interface_extends:Action) + com.google.protobuf.MessageLiteOrBuilder { + + /** + * int64 local_id = 1; + * @return The localId. + */ + long getLocalId(); + + /** + * int64 prev_local_id = 2; + * @return The prevLocalId. + */ + long getPrevLocalId(); + + /** + * string action = 3; + * @return The action. + */ + java.lang.String getAction(); + /** + * string action = 3; + * @return The bytes for action. + */ + com.google.protobuf.ByteString + getActionBytes(); + + /** + * string object = 4; + * @return The object. + */ + java.lang.String getObject(); + /** + * string object = 4; + * @return The bytes for object. + */ + com.google.protobuf.ByteString + getObjectBytes(); + + /** + * int32 current_screen_id = 5; + * @return The currentScreenId. + */ + int getCurrentScreenId(); + + /** + *
+   *    repeated Event events = 7; TODO
+   * 
+ * + * repeated int32 screen_stack = 6; + * @return A list containing the screenStack. + */ + java.util.List getScreenStackList(); + /** + *
+   *    repeated Event events = 7; TODO
+   * 
+ * + * repeated int32 screen_stack = 6; + * @return The count of screenStack. + */ + int getScreenStackCount(); + /** + *
+   *    repeated Event events = 7; TODO
+   * 
+ * + * repeated int32 screen_stack = 6; + * @param index The index of the element to return. + * @return The screenStack at the given index. + */ + int getScreenStack(int index); + + /** + * map<string, string> attributes = 8; + */ + int getAttributesCount(); + /** + * map<string, string> attributes = 8; + */ + boolean containsAttributes( + java.lang.String key); + /** + * Use {@link #getAttributesMap()} instead. + */ + @java.lang.Deprecated + java.util.Map + getAttributes(); + /** + * map<string, string> attributes = 8; + */ + java.util.Map + getAttributesMap(); + /** + * map<string, string> attributes = 8; + */ + + java.lang.String getAttributesOrDefault( + java.lang.String key, + java.lang.String defaultValue); + /** + * map<string, string> attributes = 8; + */ + + java.lang.String getAttributesOrThrow( + java.lang.String key); +} diff --git a/src/main/java/tech/donau/behaiv/proto/Behaiv.java b/src/main/java/tech/donau/behaiv/proto/Behaiv.java new file mode 100644 index 0000000..7089d28 --- /dev/null +++ b/src/main/java/tech/donau/behaiv/proto/Behaiv.java @@ -0,0 +1,16 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: behaiv.proto + +package tech.donau.behaiv.proto; + +public final class Behaiv { + private Behaiv() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + static { + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/src/main/java/tech/donau/behaiv/proto/Data.java b/src/main/java/tech/donau/behaiv/proto/Data.java new file mode 100644 index 0000000..68b09d8 --- /dev/null +++ b/src/main/java/tech/donau/behaiv/proto/Data.java @@ -0,0 +1,350 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: behaiv.proto + +package tech.donau.behaiv.proto; + +/** + *
+ * Data messages
+ * 
+ * + * Protobuf type {@code Data} + */ +public final class Data extends + com.google.protobuf.GeneratedMessageLite< + Data, Data.Builder> implements + // @@protoc_insertion_point(message_implements:Data) + DataOrBuilder { + private Data() { + key_ = ""; + } + public static final int KEY_FIELD_NUMBER = 2; + private java.lang.String key_; + /** + * string key = 2; + * @return The key. + */ + @java.lang.Override + public java.lang.String getKey() { + return key_; + } + /** + * string key = 2; + * @return The bytes for key. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getKeyBytes() { + return com.google.protobuf.ByteString.copyFromUtf8(key_); + } + /** + * string key = 2; + * @param value The key to set. + */ + private void setKey( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + key_ = value; + } + /** + * string key = 2; + */ + private void clearKey() { + + key_ = getDefaultInstance().getKey(); + } + /** + * string key = 2; + * @param value The bytes for key to set. + */ + private void setKeyBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + key_ = value.toStringUtf8(); + } + + public static final int VALUE_FIELD_NUMBER = 3; + private double value_; + /** + * double value = 3; + * @return The value. + */ + @java.lang.Override + public double getValue() { + return value_; + } + /** + * double value = 3; + * @param value The value to set. + */ + private void setValue(double value) { + + value_ = value; + } + /** + * double value = 3; + */ + private void clearValue() { + + value_ = 0D; + } + + public static tech.donau.behaiv.proto.Data parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return com.google.protobuf.GeneratedMessageLite.parseFrom( + DEFAULT_INSTANCE, data); + } + public static tech.donau.behaiv.proto.Data parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return com.google.protobuf.GeneratedMessageLite.parseFrom( + DEFAULT_INSTANCE, data, extensionRegistry); + } + public static tech.donau.behaiv.proto.Data parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return com.google.protobuf.GeneratedMessageLite.parseFrom( + DEFAULT_INSTANCE, data); + } + public static tech.donau.behaiv.proto.Data parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return com.google.protobuf.GeneratedMessageLite.parseFrom( + DEFAULT_INSTANCE, data, extensionRegistry); + } + public static tech.donau.behaiv.proto.Data parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return com.google.protobuf.GeneratedMessageLite.parseFrom( + DEFAULT_INSTANCE, data); + } + public static tech.donau.behaiv.proto.Data parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return com.google.protobuf.GeneratedMessageLite.parseFrom( + DEFAULT_INSTANCE, data, extensionRegistry); + } + public static tech.donau.behaiv.proto.Data parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageLite.parseFrom( + DEFAULT_INSTANCE, input); + } + public static tech.donau.behaiv.proto.Data parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageLite.parseFrom( + DEFAULT_INSTANCE, input, extensionRegistry); + } + public static tech.donau.behaiv.proto.Data parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return parseDelimitedFrom(DEFAULT_INSTANCE, input); + } + public static tech.donau.behaiv.proto.Data parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry); + } + public static tech.donau.behaiv.proto.Data parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageLite.parseFrom( + DEFAULT_INSTANCE, input); + } + public static tech.donau.behaiv.proto.Data parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageLite.parseFrom( + DEFAULT_INSTANCE, input, extensionRegistry); + } + + public static Builder newBuilder() { + return (Builder) DEFAULT_INSTANCE.createBuilder(); + } + public static Builder newBuilder(tech.donau.behaiv.proto.Data prototype) { + return (Builder) DEFAULT_INSTANCE.createBuilder(prototype); + } + + /** + *
+   * Data messages
+   * 
+ * + * Protobuf type {@code Data} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageLite.Builder< + tech.donau.behaiv.proto.Data, Builder> implements + // @@protoc_insertion_point(builder_implements:Data) + tech.donau.behaiv.proto.DataOrBuilder { + // Construct using tech.donau.behaiv.proto.Data.newBuilder() + private Builder() { + super(DEFAULT_INSTANCE); + } + + + /** + * string key = 2; + * @return The key. + */ + @java.lang.Override + public java.lang.String getKey() { + return instance.getKey(); + } + /** + * string key = 2; + * @return The bytes for key. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getKeyBytes() { + return instance.getKeyBytes(); + } + /** + * string key = 2; + * @param value The key to set. + * @return This builder for chaining. + */ + public Builder setKey( + java.lang.String value) { + copyOnWrite(); + instance.setKey(value); + return this; + } + /** + * string key = 2; + * @return This builder for chaining. + */ + public Builder clearKey() { + copyOnWrite(); + instance.clearKey(); + return this; + } + /** + * string key = 2; + * @param value The bytes for key to set. + * @return This builder for chaining. + */ + public Builder setKeyBytes( + com.google.protobuf.ByteString value) { + copyOnWrite(); + instance.setKeyBytes(value); + return this; + } + + /** + * double value = 3; + * @return The value. + */ + @java.lang.Override + public double getValue() { + return instance.getValue(); + } + /** + * double value = 3; + * @param value The value to set. + * @return This builder for chaining. + */ + public Builder setValue(double value) { + copyOnWrite(); + instance.setValue(value); + return this; + } + /** + * double value = 3; + * @return This builder for chaining. + */ + public Builder clearValue() { + copyOnWrite(); + instance.clearValue(); + return this; + } + + // @@protoc_insertion_point(builder_scope:Data) + } + @java.lang.Override + @java.lang.SuppressWarnings({"unchecked", "fallthrough"}) + protected final java.lang.Object dynamicMethod( + com.google.protobuf.GeneratedMessageLite.MethodToInvoke method, + java.lang.Object arg0, java.lang.Object arg1) { + switch (method) { + case NEW_MUTABLE_INSTANCE: { + return new tech.donau.behaiv.proto.Data(); + } + case NEW_BUILDER: { + return new Builder(); + } + case BUILD_MESSAGE_INFO: { + java.lang.Object[] objects = new java.lang.Object[] { + "key_", + "value_", + }; + java.lang.String info = + "\u0000\u0002\u0000\u0000\u0002\u0003\u0002\u0000\u0000\u0000\u0002\u0208\u0003\u0000" + + ""; + return newMessageInfo(DEFAULT_INSTANCE, info, objects); + } + // fall through + case GET_DEFAULT_INSTANCE: { + return DEFAULT_INSTANCE; + } + case GET_PARSER: { + com.google.protobuf.Parser parser = PARSER; + if (parser == null) { + synchronized (tech.donau.behaiv.proto.Data.class) { + parser = PARSER; + if (parser == null) { + parser = + new DefaultInstanceBasedParser( + DEFAULT_INSTANCE); + PARSER = parser; + } + } + } + return parser; + } + case GET_MEMOIZED_IS_INITIALIZED: { + return (byte) 1; + } + case SET_MEMOIZED_IS_INITIALIZED: { + return null; + } + } + throw new UnsupportedOperationException(); + } + + + // @@protoc_insertion_point(class_scope:Data) + private static final tech.donau.behaiv.proto.Data DEFAULT_INSTANCE; + static { + Data defaultInstance = new Data(); + // New instances are implicitly immutable so no need to make + // immutable. + DEFAULT_INSTANCE = defaultInstance; + com.google.protobuf.GeneratedMessageLite.registerDefaultInstance( + Data.class, defaultInstance); + } + + public static tech.donau.behaiv.proto.Data getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static volatile com.google.protobuf.Parser PARSER; + + public static com.google.protobuf.Parser parser() { + return DEFAULT_INSTANCE.getParserForType(); + } +} + diff --git a/src/main/java/tech/donau/behaiv/proto/DataOrBuilder.java b/src/main/java/tech/donau/behaiv/proto/DataOrBuilder.java new file mode 100644 index 0000000..77f1b93 --- /dev/null +++ b/src/main/java/tech/donau/behaiv/proto/DataOrBuilder.java @@ -0,0 +1,27 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: behaiv.proto + +package tech.donau.behaiv.proto; + +public interface DataOrBuilder extends + // @@protoc_insertion_point(interface_extends:Data) + com.google.protobuf.MessageLiteOrBuilder { + + /** + * string key = 2; + * @return The key. + */ + java.lang.String getKey(); + /** + * string key = 2; + * @return The bytes for key. + */ + com.google.protobuf.ByteString + getKeyBytes(); + + /** + * double value = 3; + * @return The value. + */ + double getValue(); +} diff --git a/src/main/java/tech/donau/behaiv/proto/Prediction.java b/src/main/java/tech/donau/behaiv/proto/Prediction.java new file mode 100644 index 0000000..6283d78 --- /dev/null +++ b/src/main/java/tech/donau/behaiv/proto/Prediction.java @@ -0,0 +1,513 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: behaiv.proto + +package tech.donau.behaiv.proto; + +/** + * Protobuf type {@code Prediction} + */ +public final class Prediction extends + com.google.protobuf.GeneratedMessageLite< + Prediction, Prediction.Builder> implements + // @@protoc_insertion_point(message_implements:Prediction) + PredictionOrBuilder { + private Prediction() { + data_ = emptyProtobufList(); + label_ = ""; + } + public static final int DATA_FIELD_NUMBER = 1; + private com.google.protobuf.Internal.ProtobufList data_; + /** + * repeated .Data data = 1; + */ + @java.lang.Override + public java.util.List getDataList() { + return data_; + } + /** + * repeated .Data data = 1; + */ + public java.util.List + getDataOrBuilderList() { + return data_; + } + /** + * repeated .Data data = 1; + */ + @java.lang.Override + public int getDataCount() { + return data_.size(); + } + /** + * repeated .Data data = 1; + */ + @java.lang.Override + public tech.donau.behaiv.proto.Data getData(int index) { + return data_.get(index); + } + /** + * repeated .Data data = 1; + */ + public tech.donau.behaiv.proto.DataOrBuilder getDataOrBuilder( + int index) { + return data_.get(index); + } + private void ensureDataIsMutable() { + if (!data_.isModifiable()) { + data_ = + com.google.protobuf.GeneratedMessageLite.mutableCopy(data_); + } + } + + /** + * repeated .Data data = 1; + */ + private void setData( + int index, tech.donau.behaiv.proto.Data value) { + if (value == null) { + throw new NullPointerException(); + } + ensureDataIsMutable(); + data_.set(index, value); + } + /** + * repeated .Data data = 1; + */ + private void setData( + int index, tech.donau.behaiv.proto.Data.Builder builderForValue) { + ensureDataIsMutable(); + data_.set(index, builderForValue.build()); + } + /** + * repeated .Data data = 1; + */ + private void addData(tech.donau.behaiv.proto.Data value) { + if (value == null) { + throw new NullPointerException(); + } + ensureDataIsMutable(); + data_.add(value); + } + /** + * repeated .Data data = 1; + */ + private void addData( + int index, tech.donau.behaiv.proto.Data value) { + if (value == null) { + throw new NullPointerException(); + } + ensureDataIsMutable(); + data_.add(index, value); + } + /** + * repeated .Data data = 1; + */ + private void addData( + tech.donau.behaiv.proto.Data.Builder builderForValue) { + ensureDataIsMutable(); + data_.add(builderForValue.build()); + } + /** + * repeated .Data data = 1; + */ + private void addData( + int index, tech.donau.behaiv.proto.Data.Builder builderForValue) { + ensureDataIsMutable(); + data_.add(index, builderForValue.build()); + } + /** + * repeated .Data data = 1; + */ + private void addAllData( + java.lang.Iterable values) { + ensureDataIsMutable(); + com.google.protobuf.AbstractMessageLite.addAll( + values, data_); + } + /** + * repeated .Data data = 1; + */ + private void clearData() { + data_ = emptyProtobufList(); + } + /** + * repeated .Data data = 1; + */ + private void removeData(int index) { + ensureDataIsMutable(); + data_.remove(index); + } + + public static final int LABEL_FIELD_NUMBER = 2; + private java.lang.String label_; + /** + * string label = 2; + * @return The label. + */ + @java.lang.Override + public java.lang.String getLabel() { + return label_; + } + /** + * string label = 2; + * @return The bytes for label. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getLabelBytes() { + return com.google.protobuf.ByteString.copyFromUtf8(label_); + } + /** + * string label = 2; + * @param value The label to set. + */ + private void setLabel( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + label_ = value; + } + /** + * string label = 2; + */ + private void clearLabel() { + + label_ = getDefaultInstance().getLabel(); + } + /** + * string label = 2; + * @param value The bytes for label to set. + */ + private void setLabelBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + label_ = value.toStringUtf8(); + } + + public static tech.donau.behaiv.proto.Prediction parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return com.google.protobuf.GeneratedMessageLite.parseFrom( + DEFAULT_INSTANCE, data); + } + public static tech.donau.behaiv.proto.Prediction parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return com.google.protobuf.GeneratedMessageLite.parseFrom( + DEFAULT_INSTANCE, data, extensionRegistry); + } + public static tech.donau.behaiv.proto.Prediction parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return com.google.protobuf.GeneratedMessageLite.parseFrom( + DEFAULT_INSTANCE, data); + } + public static tech.donau.behaiv.proto.Prediction parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return com.google.protobuf.GeneratedMessageLite.parseFrom( + DEFAULT_INSTANCE, data, extensionRegistry); + } + public static tech.donau.behaiv.proto.Prediction parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return com.google.protobuf.GeneratedMessageLite.parseFrom( + DEFAULT_INSTANCE, data); + } + public static tech.donau.behaiv.proto.Prediction parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return com.google.protobuf.GeneratedMessageLite.parseFrom( + DEFAULT_INSTANCE, data, extensionRegistry); + } + public static tech.donau.behaiv.proto.Prediction parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageLite.parseFrom( + DEFAULT_INSTANCE, input); + } + public static tech.donau.behaiv.proto.Prediction parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageLite.parseFrom( + DEFAULT_INSTANCE, input, extensionRegistry); + } + public static tech.donau.behaiv.proto.Prediction parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return parseDelimitedFrom(DEFAULT_INSTANCE, input); + } + public static tech.donau.behaiv.proto.Prediction parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry); + } + public static tech.donau.behaiv.proto.Prediction parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageLite.parseFrom( + DEFAULT_INSTANCE, input); + } + public static tech.donau.behaiv.proto.Prediction parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageLite.parseFrom( + DEFAULT_INSTANCE, input, extensionRegistry); + } + + public static Builder newBuilder() { + return (Builder) DEFAULT_INSTANCE.createBuilder(); + } + public static Builder newBuilder(tech.donau.behaiv.proto.Prediction prototype) { + return (Builder) DEFAULT_INSTANCE.createBuilder(prototype); + } + + /** + * Protobuf type {@code Prediction} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageLite.Builder< + tech.donau.behaiv.proto.Prediction, Builder> implements + // @@protoc_insertion_point(builder_implements:Prediction) + tech.donau.behaiv.proto.PredictionOrBuilder { + // Construct using tech.donau.behaiv.proto.Prediction.newBuilder() + private Builder() { + super(DEFAULT_INSTANCE); + } + + + /** + * repeated .Data data = 1; + */ + @java.lang.Override + public java.util.List getDataList() { + return java.util.Collections.unmodifiableList( + instance.getDataList()); + } + /** + * repeated .Data data = 1; + */ + @java.lang.Override + public int getDataCount() { + return instance.getDataCount(); + }/** + * repeated .Data data = 1; + */ + @java.lang.Override + public tech.donau.behaiv.proto.Data getData(int index) { + return instance.getData(index); + } + /** + * repeated .Data data = 1; + */ + public Builder setData( + int index, tech.donau.behaiv.proto.Data value) { + copyOnWrite(); + instance.setData(index, value); + return this; + } + /** + * repeated .Data data = 1; + */ + public Builder setData( + int index, tech.donau.behaiv.proto.Data.Builder builderForValue) { + copyOnWrite(); + instance.setData(index, builderForValue); + return this; + } + /** + * repeated .Data data = 1; + */ + public Builder addData(tech.donau.behaiv.proto.Data value) { + copyOnWrite(); + instance.addData(value); + return this; + } + /** + * repeated .Data data = 1; + */ + public Builder addData( + int index, tech.donau.behaiv.proto.Data value) { + copyOnWrite(); + instance.addData(index, value); + return this; + } + /** + * repeated .Data data = 1; + */ + public Builder addData( + tech.donau.behaiv.proto.Data.Builder builderForValue) { + copyOnWrite(); + instance.addData(builderForValue); + return this; + } + /** + * repeated .Data data = 1; + */ + public Builder addData( + int index, tech.donau.behaiv.proto.Data.Builder builderForValue) { + copyOnWrite(); + instance.addData(index, builderForValue); + return this; + } + /** + * repeated .Data data = 1; + */ + public Builder addAllData( + java.lang.Iterable values) { + copyOnWrite(); + instance.addAllData(values); + return this; + } + /** + * repeated .Data data = 1; + */ + public Builder clearData() { + copyOnWrite(); + instance.clearData(); + return this; + } + /** + * repeated .Data data = 1; + */ + public Builder removeData(int index) { + copyOnWrite(); + instance.removeData(index); + return this; + } + + /** + * string label = 2; + * @return The label. + */ + @java.lang.Override + public java.lang.String getLabel() { + return instance.getLabel(); + } + /** + * string label = 2; + * @return The bytes for label. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getLabelBytes() { + return instance.getLabelBytes(); + } + /** + * string label = 2; + * @param value The label to set. + * @return This builder for chaining. + */ + public Builder setLabel( + java.lang.String value) { + copyOnWrite(); + instance.setLabel(value); + return this; + } + /** + * string label = 2; + * @return This builder for chaining. + */ + public Builder clearLabel() { + copyOnWrite(); + instance.clearLabel(); + return this; + } + /** + * string label = 2; + * @param value The bytes for label to set. + * @return This builder for chaining. + */ + public Builder setLabelBytes( + com.google.protobuf.ByteString value) { + copyOnWrite(); + instance.setLabelBytes(value); + return this; + } + + // @@protoc_insertion_point(builder_scope:Prediction) + } + @java.lang.Override + @java.lang.SuppressWarnings({"unchecked", "fallthrough"}) + protected final java.lang.Object dynamicMethod( + com.google.protobuf.GeneratedMessageLite.MethodToInvoke method, + java.lang.Object arg0, java.lang.Object arg1) { + switch (method) { + case NEW_MUTABLE_INSTANCE: { + return new tech.donau.behaiv.proto.Prediction(); + } + case NEW_BUILDER: { + return new Builder(); + } + case BUILD_MESSAGE_INFO: { + java.lang.Object[] objects = new java.lang.Object[] { + "data_", + tech.donau.behaiv.proto.Data.class, + "label_", + }; + java.lang.String info = + "\u0000\u0002\u0000\u0000\u0001\u0002\u0002\u0000\u0001\u0000\u0001\u001b\u0002\u0208" + + ""; + return newMessageInfo(DEFAULT_INSTANCE, info, objects); + } + // fall through + case GET_DEFAULT_INSTANCE: { + return DEFAULT_INSTANCE; + } + case GET_PARSER: { + com.google.protobuf.Parser parser = PARSER; + if (parser == null) { + synchronized (tech.donau.behaiv.proto.Prediction.class) { + parser = PARSER; + if (parser == null) { + parser = + new DefaultInstanceBasedParser( + DEFAULT_INSTANCE); + PARSER = parser; + } + } + } + return parser; + } + case GET_MEMOIZED_IS_INITIALIZED: { + return (byte) 1; + } + case SET_MEMOIZED_IS_INITIALIZED: { + return null; + } + } + throw new UnsupportedOperationException(); + } + + + // @@protoc_insertion_point(class_scope:Prediction) + private static final tech.donau.behaiv.proto.Prediction DEFAULT_INSTANCE; + static { + Prediction defaultInstance = new Prediction(); + // New instances are implicitly immutable so no need to make + // immutable. + DEFAULT_INSTANCE = defaultInstance; + com.google.protobuf.GeneratedMessageLite.registerDefaultInstance( + Prediction.class, defaultInstance); + } + + public static tech.donau.behaiv.proto.Prediction getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static volatile com.google.protobuf.Parser PARSER; + + public static com.google.protobuf.Parser parser() { + return DEFAULT_INSTANCE.getParserForType(); + } +} + diff --git a/src/main/java/tech/donau/behaiv/proto/PredictionOrBuilder.java b/src/main/java/tech/donau/behaiv/proto/PredictionOrBuilder.java new file mode 100644 index 0000000..edddef5 --- /dev/null +++ b/src/main/java/tech/donau/behaiv/proto/PredictionOrBuilder.java @@ -0,0 +1,35 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: behaiv.proto + +package tech.donau.behaiv.proto; + +public interface PredictionOrBuilder extends + // @@protoc_insertion_point(interface_extends:Prediction) + com.google.protobuf.MessageLiteOrBuilder { + + /** + * repeated .Data data = 1; + */ + java.util.List + getDataList(); + /** + * repeated .Data data = 1; + */ + tech.donau.behaiv.proto.Data getData(int index); + /** + * repeated .Data data = 1; + */ + int getDataCount(); + + /** + * string label = 2; + * @return The label. + */ + java.lang.String getLabel(); + /** + * string label = 2; + * @return The bytes for label. + */ + com.google.protobuf.ByteString + getLabelBytes(); +} diff --git a/src/main/java/tech/donau/behaiv/proto/PredictionSet.java b/src/main/java/tech/donau/behaiv/proto/PredictionSet.java new file mode 100644 index 0000000..b9166db --- /dev/null +++ b/src/main/java/tech/donau/behaiv/proto/PredictionSet.java @@ -0,0 +1,465 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: behaiv.proto + +package tech.donau.behaiv.proto; + +/** + * Protobuf type {@code PredictionSet} + */ +public final class PredictionSet extends + com.google.protobuf.GeneratedMessageLite< + PredictionSet, PredictionSet.Builder> implements + // @@protoc_insertion_point(message_implements:PredictionSet) + PredictionSetOrBuilder { + private PredictionSet() { + prediction_ = emptyProtobufList(); + } + public static final int PREDICTION_FIELD_NUMBER = 1; + private com.google.protobuf.Internal.ProtobufList prediction_; + /** + * repeated .Prediction prediction = 1; + */ + @java.lang.Override + public java.util.List getPredictionList() { + return prediction_; + } + /** + * repeated .Prediction prediction = 1; + */ + public java.util.List + getPredictionOrBuilderList() { + return prediction_; + } + /** + * repeated .Prediction prediction = 1; + */ + @java.lang.Override + public int getPredictionCount() { + return prediction_.size(); + } + /** + * repeated .Prediction prediction = 1; + */ + @java.lang.Override + public tech.donau.behaiv.proto.Prediction getPrediction(int index) { + return prediction_.get(index); + } + /** + * repeated .Prediction prediction = 1; + */ + public tech.donau.behaiv.proto.PredictionOrBuilder getPredictionOrBuilder( + int index) { + return prediction_.get(index); + } + private void ensurePredictionIsMutable() { + if (!prediction_.isModifiable()) { + prediction_ = + com.google.protobuf.GeneratedMessageLite.mutableCopy(prediction_); + } + } + + /** + * repeated .Prediction prediction = 1; + */ + private void setPrediction( + int index, tech.donau.behaiv.proto.Prediction value) { + if (value == null) { + throw new NullPointerException(); + } + ensurePredictionIsMutable(); + prediction_.set(index, value); + } + /** + * repeated .Prediction prediction = 1; + */ + private void setPrediction( + int index, tech.donau.behaiv.proto.Prediction.Builder builderForValue) { + ensurePredictionIsMutable(); + prediction_.set(index, builderForValue.build()); + } + /** + * repeated .Prediction prediction = 1; + */ + private void addPrediction(tech.donau.behaiv.proto.Prediction value) { + if (value == null) { + throw new NullPointerException(); + } + ensurePredictionIsMutable(); + prediction_.add(value); + } + /** + * repeated .Prediction prediction = 1; + */ + private void addPrediction( + int index, tech.donau.behaiv.proto.Prediction value) { + if (value == null) { + throw new NullPointerException(); + } + ensurePredictionIsMutable(); + prediction_.add(index, value); + } + /** + * repeated .Prediction prediction = 1; + */ + private void addPrediction( + tech.donau.behaiv.proto.Prediction.Builder builderForValue) { + ensurePredictionIsMutable(); + prediction_.add(builderForValue.build()); + } + /** + * repeated .Prediction prediction = 1; + */ + private void addPrediction( + int index, tech.donau.behaiv.proto.Prediction.Builder builderForValue) { + ensurePredictionIsMutable(); + prediction_.add(index, builderForValue.build()); + } + /** + * repeated .Prediction prediction = 1; + */ + private void addAllPrediction( + java.lang.Iterable values) { + ensurePredictionIsMutable(); + com.google.protobuf.AbstractMessageLite.addAll( + values, prediction_); + } + /** + * repeated .Prediction prediction = 1; + */ + private void clearPrediction() { + prediction_ = emptyProtobufList(); + } + /** + * repeated .Prediction prediction = 1; + */ + private void removePrediction(int index) { + ensurePredictionIsMutable(); + prediction_.remove(index); + } + + public static final int DYNAMICCOLUMNS_FIELD_NUMBER = 2; + private boolean dynamicColumns_; + /** + * bool dynamicColumns = 2; + * @return The dynamicColumns. + */ + @java.lang.Override + public boolean getDynamicColumns() { + return dynamicColumns_; + } + /** + * bool dynamicColumns = 2; + * @param value The dynamicColumns to set. + */ + private void setDynamicColumns(boolean value) { + + dynamicColumns_ = value; + } + /** + * bool dynamicColumns = 2; + */ + private void clearDynamicColumns() { + + dynamicColumns_ = false; + } + + public static tech.donau.behaiv.proto.PredictionSet parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return com.google.protobuf.GeneratedMessageLite.parseFrom( + DEFAULT_INSTANCE, data); + } + public static tech.donau.behaiv.proto.PredictionSet parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return com.google.protobuf.GeneratedMessageLite.parseFrom( + DEFAULT_INSTANCE, data, extensionRegistry); + } + public static tech.donau.behaiv.proto.PredictionSet parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return com.google.protobuf.GeneratedMessageLite.parseFrom( + DEFAULT_INSTANCE, data); + } + public static tech.donau.behaiv.proto.PredictionSet parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return com.google.protobuf.GeneratedMessageLite.parseFrom( + DEFAULT_INSTANCE, data, extensionRegistry); + } + public static tech.donau.behaiv.proto.PredictionSet parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return com.google.protobuf.GeneratedMessageLite.parseFrom( + DEFAULT_INSTANCE, data); + } + public static tech.donau.behaiv.proto.PredictionSet parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return com.google.protobuf.GeneratedMessageLite.parseFrom( + DEFAULT_INSTANCE, data, extensionRegistry); + } + public static tech.donau.behaiv.proto.PredictionSet parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageLite.parseFrom( + DEFAULT_INSTANCE, input); + } + public static tech.donau.behaiv.proto.PredictionSet parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageLite.parseFrom( + DEFAULT_INSTANCE, input, extensionRegistry); + } + public static tech.donau.behaiv.proto.PredictionSet parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return parseDelimitedFrom(DEFAULT_INSTANCE, input); + } + public static tech.donau.behaiv.proto.PredictionSet parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry); + } + public static tech.donau.behaiv.proto.PredictionSet parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageLite.parseFrom( + DEFAULT_INSTANCE, input); + } + public static tech.donau.behaiv.proto.PredictionSet parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageLite.parseFrom( + DEFAULT_INSTANCE, input, extensionRegistry); + } + + public static Builder newBuilder() { + return (Builder) DEFAULT_INSTANCE.createBuilder(); + } + public static Builder newBuilder(tech.donau.behaiv.proto.PredictionSet prototype) { + return (Builder) DEFAULT_INSTANCE.createBuilder(prototype); + } + + /** + * Protobuf type {@code PredictionSet} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageLite.Builder< + tech.donau.behaiv.proto.PredictionSet, Builder> implements + // @@protoc_insertion_point(builder_implements:PredictionSet) + tech.donau.behaiv.proto.PredictionSetOrBuilder { + // Construct using tech.donau.behaiv.proto.PredictionSet.newBuilder() + private Builder() { + super(DEFAULT_INSTANCE); + } + + + /** + * repeated .Prediction prediction = 1; + */ + @java.lang.Override + public java.util.List getPredictionList() { + return java.util.Collections.unmodifiableList( + instance.getPredictionList()); + } + /** + * repeated .Prediction prediction = 1; + */ + @java.lang.Override + public int getPredictionCount() { + return instance.getPredictionCount(); + }/** + * repeated .Prediction prediction = 1; + */ + @java.lang.Override + public tech.donau.behaiv.proto.Prediction getPrediction(int index) { + return instance.getPrediction(index); + } + /** + * repeated .Prediction prediction = 1; + */ + public Builder setPrediction( + int index, tech.donau.behaiv.proto.Prediction value) { + copyOnWrite(); + instance.setPrediction(index, value); + return this; + } + /** + * repeated .Prediction prediction = 1; + */ + public Builder setPrediction( + int index, tech.donau.behaiv.proto.Prediction.Builder builderForValue) { + copyOnWrite(); + instance.setPrediction(index, builderForValue); + return this; + } + /** + * repeated .Prediction prediction = 1; + */ + public Builder addPrediction(tech.donau.behaiv.proto.Prediction value) { + copyOnWrite(); + instance.addPrediction(value); + return this; + } + /** + * repeated .Prediction prediction = 1; + */ + public Builder addPrediction( + int index, tech.donau.behaiv.proto.Prediction value) { + copyOnWrite(); + instance.addPrediction(index, value); + return this; + } + /** + * repeated .Prediction prediction = 1; + */ + public Builder addPrediction( + tech.donau.behaiv.proto.Prediction.Builder builderForValue) { + copyOnWrite(); + instance.addPrediction(builderForValue); + return this; + } + /** + * repeated .Prediction prediction = 1; + */ + public Builder addPrediction( + int index, tech.donau.behaiv.proto.Prediction.Builder builderForValue) { + copyOnWrite(); + instance.addPrediction(index, builderForValue); + return this; + } + /** + * repeated .Prediction prediction = 1; + */ + public Builder addAllPrediction( + java.lang.Iterable values) { + copyOnWrite(); + instance.addAllPrediction(values); + return this; + } + /** + * repeated .Prediction prediction = 1; + */ + public Builder clearPrediction() { + copyOnWrite(); + instance.clearPrediction(); + return this; + } + /** + * repeated .Prediction prediction = 1; + */ + public Builder removePrediction(int index) { + copyOnWrite(); + instance.removePrediction(index); + return this; + } + + /** + * bool dynamicColumns = 2; + * @return The dynamicColumns. + */ + @java.lang.Override + public boolean getDynamicColumns() { + return instance.getDynamicColumns(); + } + /** + * bool dynamicColumns = 2; + * @param value The dynamicColumns to set. + * @return This builder for chaining. + */ + public Builder setDynamicColumns(boolean value) { + copyOnWrite(); + instance.setDynamicColumns(value); + return this; + } + /** + * bool dynamicColumns = 2; + * @return This builder for chaining. + */ + public Builder clearDynamicColumns() { + copyOnWrite(); + instance.clearDynamicColumns(); + return this; + } + + // @@protoc_insertion_point(builder_scope:PredictionSet) + } + @java.lang.Override + @java.lang.SuppressWarnings({"unchecked", "fallthrough"}) + protected final java.lang.Object dynamicMethod( + com.google.protobuf.GeneratedMessageLite.MethodToInvoke method, + java.lang.Object arg0, java.lang.Object arg1) { + switch (method) { + case NEW_MUTABLE_INSTANCE: { + return new tech.donau.behaiv.proto.PredictionSet(); + } + case NEW_BUILDER: { + return new Builder(); + } + case BUILD_MESSAGE_INFO: { + java.lang.Object[] objects = new java.lang.Object[] { + "prediction_", + tech.donau.behaiv.proto.Prediction.class, + "dynamicColumns_", + }; + java.lang.String info = + "\u0000\u0002\u0000\u0000\u0001\u0002\u0002\u0000\u0001\u0000\u0001\u001b\u0002\u0007" + + ""; + return newMessageInfo(DEFAULT_INSTANCE, info, objects); + } + // fall through + case GET_DEFAULT_INSTANCE: { + return DEFAULT_INSTANCE; + } + case GET_PARSER: { + com.google.protobuf.Parser parser = PARSER; + if (parser == null) { + synchronized (tech.donau.behaiv.proto.PredictionSet.class) { + parser = PARSER; + if (parser == null) { + parser = + new DefaultInstanceBasedParser( + DEFAULT_INSTANCE); + PARSER = parser; + } + } + } + return parser; + } + case GET_MEMOIZED_IS_INITIALIZED: { + return (byte) 1; + } + case SET_MEMOIZED_IS_INITIALIZED: { + return null; + } + } + throw new UnsupportedOperationException(); + } + + + // @@protoc_insertion_point(class_scope:PredictionSet) + private static final tech.donau.behaiv.proto.PredictionSet DEFAULT_INSTANCE; + static { + PredictionSet defaultInstance = new PredictionSet(); + // New instances are implicitly immutable so no need to make + // immutable. + DEFAULT_INSTANCE = defaultInstance; + com.google.protobuf.GeneratedMessageLite.registerDefaultInstance( + PredictionSet.class, defaultInstance); + } + + public static tech.donau.behaiv.proto.PredictionSet getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static volatile com.google.protobuf.Parser PARSER; + + public static com.google.protobuf.Parser parser() { + return DEFAULT_INSTANCE.getParserForType(); + } +} + diff --git a/src/main/java/tech/donau/behaiv/proto/PredictionSetOrBuilder.java b/src/main/java/tech/donau/behaiv/proto/PredictionSetOrBuilder.java new file mode 100644 index 0000000..2784ed4 --- /dev/null +++ b/src/main/java/tech/donau/behaiv/proto/PredictionSetOrBuilder.java @@ -0,0 +1,29 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: behaiv.proto + +package tech.donau.behaiv.proto; + +public interface PredictionSetOrBuilder extends + // @@protoc_insertion_point(interface_extends:PredictionSet) + com.google.protobuf.MessageLiteOrBuilder { + + /** + * repeated .Prediction prediction = 1; + */ + java.util.List + getPredictionList(); + /** + * repeated .Prediction prediction = 1; + */ + tech.donau.behaiv.proto.Prediction getPrediction(int index); + /** + * repeated .Prediction prediction = 1; + */ + int getPredictionCount(); + + /** + * bool dynamicColumns = 2; + * @return The dynamicColumns. + */ + boolean getDynamicColumns(); +} diff --git a/src/main/java/tech/donau/behaiv/proto/Screen.java b/src/main/java/tech/donau/behaiv/proto/Screen.java new file mode 100644 index 0000000..ff55de4 --- /dev/null +++ b/src/main/java/tech/donau/behaiv/proto/Screen.java @@ -0,0 +1,342 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: behaiv.proto + +package tech.donau.behaiv.proto; + +/** + * Protobuf type {@code Screen} + */ +public final class Screen extends + com.google.protobuf.GeneratedMessageLite< + Screen, Screen.Builder> implements + // @@protoc_insertion_point(message_implements:Screen) + ScreenOrBuilder { + private Screen() { + name_ = ""; + } + public static final int ID_FIELD_NUMBER = 1; + private int id_; + /** + * int32 id = 1; + * @return The id. + */ + @java.lang.Override + public int getId() { + return id_; + } + /** + * int32 id = 1; + * @param value The id to set. + */ + private void setId(int value) { + + id_ = value; + } + /** + * int32 id = 1; + */ + private void clearId() { + + id_ = 0; + } + + public static final int NAME_FIELD_NUMBER = 2; + private java.lang.String name_; + /** + * string name = 2; + * @return The name. + */ + @java.lang.Override + public java.lang.String getName() { + return name_; + } + /** + * string name = 2; + * @return The bytes for name. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getNameBytes() { + return com.google.protobuf.ByteString.copyFromUtf8(name_); + } + /** + * string name = 2; + * @param value The name to set. + */ + private void setName( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + name_ = value; + } + /** + * string name = 2; + */ + private void clearName() { + + name_ = getDefaultInstance().getName(); + } + /** + * string name = 2; + * @param value The bytes for name to set. + */ + private void setNameBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + name_ = value.toStringUtf8(); + } + + public static tech.donau.behaiv.proto.Screen parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return com.google.protobuf.GeneratedMessageLite.parseFrom( + DEFAULT_INSTANCE, data); + } + public static tech.donau.behaiv.proto.Screen parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return com.google.protobuf.GeneratedMessageLite.parseFrom( + DEFAULT_INSTANCE, data, extensionRegistry); + } + public static tech.donau.behaiv.proto.Screen parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return com.google.protobuf.GeneratedMessageLite.parseFrom( + DEFAULT_INSTANCE, data); + } + public static tech.donau.behaiv.proto.Screen parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return com.google.protobuf.GeneratedMessageLite.parseFrom( + DEFAULT_INSTANCE, data, extensionRegistry); + } + public static tech.donau.behaiv.proto.Screen parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return com.google.protobuf.GeneratedMessageLite.parseFrom( + DEFAULT_INSTANCE, data); + } + public static tech.donau.behaiv.proto.Screen parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return com.google.protobuf.GeneratedMessageLite.parseFrom( + DEFAULT_INSTANCE, data, extensionRegistry); + } + public static tech.donau.behaiv.proto.Screen parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageLite.parseFrom( + DEFAULT_INSTANCE, input); + } + public static tech.donau.behaiv.proto.Screen parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageLite.parseFrom( + DEFAULT_INSTANCE, input, extensionRegistry); + } + public static tech.donau.behaiv.proto.Screen parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return parseDelimitedFrom(DEFAULT_INSTANCE, input); + } + public static tech.donau.behaiv.proto.Screen parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry); + } + public static tech.donau.behaiv.proto.Screen parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageLite.parseFrom( + DEFAULT_INSTANCE, input); + } + public static tech.donau.behaiv.proto.Screen parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageLite.parseFrom( + DEFAULT_INSTANCE, input, extensionRegistry); + } + + public static Builder newBuilder() { + return (Builder) DEFAULT_INSTANCE.createBuilder(); + } + public static Builder newBuilder(tech.donau.behaiv.proto.Screen prototype) { + return (Builder) DEFAULT_INSTANCE.createBuilder(prototype); + } + + /** + * Protobuf type {@code Screen} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageLite.Builder< + tech.donau.behaiv.proto.Screen, Builder> implements + // @@protoc_insertion_point(builder_implements:Screen) + tech.donau.behaiv.proto.ScreenOrBuilder { + // Construct using tech.donau.behaiv.proto.Screen.newBuilder() + private Builder() { + super(DEFAULT_INSTANCE); + } + + + /** + * int32 id = 1; + * @return The id. + */ + @java.lang.Override + public int getId() { + return instance.getId(); + } + /** + * int32 id = 1; + * @param value The id to set. + * @return This builder for chaining. + */ + public Builder setId(int value) { + copyOnWrite(); + instance.setId(value); + return this; + } + /** + * int32 id = 1; + * @return This builder for chaining. + */ + public Builder clearId() { + copyOnWrite(); + instance.clearId(); + return this; + } + + /** + * string name = 2; + * @return The name. + */ + @java.lang.Override + public java.lang.String getName() { + return instance.getName(); + } + /** + * string name = 2; + * @return The bytes for name. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getNameBytes() { + return instance.getNameBytes(); + } + /** + * string name = 2; + * @param value The name to set. + * @return This builder for chaining. + */ + public Builder setName( + java.lang.String value) { + copyOnWrite(); + instance.setName(value); + return this; + } + /** + * string name = 2; + * @return This builder for chaining. + */ + public Builder clearName() { + copyOnWrite(); + instance.clearName(); + return this; + } + /** + * string name = 2; + * @param value The bytes for name to set. + * @return This builder for chaining. + */ + public Builder setNameBytes( + com.google.protobuf.ByteString value) { + copyOnWrite(); + instance.setNameBytes(value); + return this; + } + + // @@protoc_insertion_point(builder_scope:Screen) + } + @java.lang.Override + @java.lang.SuppressWarnings({"unchecked", "fallthrough"}) + protected final java.lang.Object dynamicMethod( + com.google.protobuf.GeneratedMessageLite.MethodToInvoke method, + java.lang.Object arg0, java.lang.Object arg1) { + switch (method) { + case NEW_MUTABLE_INSTANCE: { + return new tech.donau.behaiv.proto.Screen(); + } + case NEW_BUILDER: { + return new Builder(); + } + case BUILD_MESSAGE_INFO: { + java.lang.Object[] objects = new java.lang.Object[] { + "id_", + "name_", + }; + java.lang.String info = + "\u0000\u0002\u0000\u0000\u0001\u0002\u0002\u0000\u0000\u0000\u0001\u0004\u0002\u0208" + + ""; + return newMessageInfo(DEFAULT_INSTANCE, info, objects); + } + // fall through + case GET_DEFAULT_INSTANCE: { + return DEFAULT_INSTANCE; + } + case GET_PARSER: { + com.google.protobuf.Parser parser = PARSER; + if (parser == null) { + synchronized (tech.donau.behaiv.proto.Screen.class) { + parser = PARSER; + if (parser == null) { + parser = + new DefaultInstanceBasedParser( + DEFAULT_INSTANCE); + PARSER = parser; + } + } + } + return parser; + } + case GET_MEMOIZED_IS_INITIALIZED: { + return (byte) 1; + } + case SET_MEMOIZED_IS_INITIALIZED: { + return null; + } + } + throw new UnsupportedOperationException(); + } + + + // @@protoc_insertion_point(class_scope:Screen) + private static final tech.donau.behaiv.proto.Screen DEFAULT_INSTANCE; + static { + Screen defaultInstance = new Screen(); + // New instances are implicitly immutable so no need to make + // immutable. + DEFAULT_INSTANCE = defaultInstance; + com.google.protobuf.GeneratedMessageLite.registerDefaultInstance( + Screen.class, defaultInstance); + } + + public static tech.donau.behaiv.proto.Screen getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static volatile com.google.protobuf.Parser PARSER; + + public static com.google.protobuf.Parser parser() { + return DEFAULT_INSTANCE.getParserForType(); + } +} + diff --git a/src/main/java/tech/donau/behaiv/proto/ScreenOrBuilder.java b/src/main/java/tech/donau/behaiv/proto/ScreenOrBuilder.java new file mode 100644 index 0000000..ae20b83 --- /dev/null +++ b/src/main/java/tech/donau/behaiv/proto/ScreenOrBuilder.java @@ -0,0 +1,27 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: behaiv.proto + +package tech.donau.behaiv.proto; + +public interface ScreenOrBuilder extends + // @@protoc_insertion_point(interface_extends:Screen) + com.google.protobuf.MessageLiteOrBuilder { + + /** + * int32 id = 1; + * @return The id. + */ + int getId(); + + /** + * string name = 2; + * @return The name. + */ + java.lang.String getName(); + /** + * string name = 2; + * @return The bytes for name. + */ + com.google.protobuf.ByteString + getNameBytes(); +} From 76af0afe2ecb8111cdd5c29cd830329567638868 Mon Sep 17 00:00:00 2001 From: dmi3coder Date: Sat, 7 Mar 2020 10:46:32 +0100 Subject: [PATCH 06/12] Added method to convert List,String> to PredictionSet --- .../dmi3y/behaiv/tools/DataMappingUtils.java | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/main/java/de/dmi3y/behaiv/tools/DataMappingUtils.java b/src/main/java/de/dmi3y/behaiv/tools/DataMappingUtils.java index a66f278..718b98a 100644 --- a/src/main/java/de/dmi3y/behaiv/tools/DataMappingUtils.java +++ b/src/main/java/de/dmi3y/behaiv/tools/DataMappingUtils.java @@ -1,6 +1,9 @@ package de.dmi3y.behaiv.tools; import org.apache.commons.lang3.ArrayUtils; +import tech.donau.behaiv.proto.Data; +import tech.donau.behaiv.proto.Prediction; +import tech.donau.behaiv.proto.PredictionSet; import java.util.ArrayList; import java.util.HashSet; @@ -14,6 +17,23 @@ private DataMappingUtils() { // Unused utility class } + public static PredictionSet createPredictionSet(List, String>> data) { + final PredictionSet.Builder predictionSetBuilder = PredictionSet.newBuilder(); + for (int i = 0; i < data.size(); i++) { + final List weights = data.get(i).getKey(); + final ArrayList row = new ArrayList<>(); + for (int j = 0; j < weights.size(); j++) { + row.add(Data.newBuilder().setKey("key"+j).setValue(weights.get(j)).build()); + } + predictionSetBuilder.addPrediction( + Prediction.newBuilder() + .addAllData(row) + .setPrediction(data.get(i).getValue()) + .build() + ); + } + return predictionSetBuilder.build(); + } public static List toDistinctListOfPairValues(List, String>> data) { Set setOfValues = new HashSet<>(); From 6f0f766d99a74008931c85fe4d5e436d9e24cb48 Mon Sep 17 00:00:00 2001 From: dmi3coder Date: Sat, 7 Mar 2020 12:30:56 +0100 Subject: [PATCH 07/12] Test for DataMappingUtilsTest::createPredictionSet --- .../dmi3y/behaiv/tools/DataMappingUtilsTest.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/test/java/de/dmi3y/behaiv/tools/DataMappingUtilsTest.java b/src/test/java/de/dmi3y/behaiv/tools/DataMappingUtilsTest.java index 09e218e..f9f5f50 100644 --- a/src/test/java/de/dmi3y/behaiv/tools/DataMappingUtilsTest.java +++ b/src/test/java/de/dmi3y/behaiv/tools/DataMappingUtilsTest.java @@ -2,6 +2,8 @@ import org.junit.Test; import org.mockito.internal.matchers.Null; +import tech.donau.behaiv.proto.Prediction; +import tech.donau.behaiv.proto.PredictionSet; import java.util.ArrayList; import java.util.Arrays; @@ -13,6 +15,19 @@ public class DataMappingUtilsTest { + + @Test + public void createPredictionSet_feedDefaultTestData_expectCorrectOrder() { + final Pair, String> mockData = getMockPairListDoubleStringData(); + final PredictionSet predictionSet = DataMappingUtils.createPredictionSet(Collections.singletonList(mockData)); + assertEquals(1, predictionSet.getPredictionCount()); + final Prediction prediction = predictionSet.getPrediction(0); + assertEquals("Potato", prediction.getPrediction()); + assertEquals(1, prediction.getDataCount()); + assertEquals("key0", prediction.getData(0).getKey()); + assertEquals(20d, prediction.getData(0).getValue(), 0); + } + @Test public void toDistinctListOfPairValues_withInputData_returnsExpectedDistinctListOfPairValues() { List, String>> mockData = Arrays.asList( From 7d8f9408ed356e1c0b0e3ee99148401c3d0d08a4 Mon Sep 17 00:00:00 2001 From: dmi3coder Date: Sat, 7 Mar 2020 19:53:29 +0100 Subject: [PATCH 08/12] Ignore tech.donau.behaiv.proto package on jacoco reports --- build.gradle | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/build.gradle b/build.gradle index 6145c76..186a595 100644 --- a/build.gradle +++ b/build.gradle @@ -80,6 +80,11 @@ jacocoTestReport { xml.enabled = true csv.enabled = false } + afterEvaluate { + classDirectories.setFrom(files(classDirectories.files.collect { + fileTree(dir: it, exclude: 'tech/donau/behaiv/proto**') + })) + } } task proto(type: Exec) { From 8fd8cb94f6c18a6239381fbab8b5ab0dc58e812b Mon Sep 17 00:00:00 2001 From: dmi3coder Date: Sat, 7 Mar 2020 20:03:36 +0100 Subject: [PATCH 09/12] added test for LogisticRegressionKernel to check if partial fit is allowed --- .../dmi3y/behaiv/kernel/LogisticRegressionKernelTest.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/test/java/de/dmi3y/behaiv/kernel/LogisticRegressionKernelTest.java b/src/test/java/de/dmi3y/behaiv/kernel/LogisticRegressionKernelTest.java index 1a6fdf4..6cbbacd 100644 --- a/src/test/java/de/dmi3y/behaiv/kernel/LogisticRegressionKernelTest.java +++ b/src/test/java/de/dmi3y/behaiv/kernel/LogisticRegressionKernelTest.java @@ -57,6 +57,12 @@ public void predictOne() { assertEquals("SELFIMPROVEMENT_SCREEN", prediction); } + @Test + public void isPartialFitAllowed_inLogisticRegression_shouldReturnFalse() { + final Kernel kernel = new LogisticRegressionKernel("testId"); + assertFalse(kernel.isPartialFitAllowed()); + } + @Test public void storeResults() throws IOException, ClassNotFoundException { List, String>> data = KernelTest.getTrainingData(); From 5598514f82e1c9174a76915fe71fd5d3d31a0d01 Mon Sep 17 00:00:00 2001 From: dmi3coder Date: Sat, 4 Apr 2020 12:33:00 +0300 Subject: [PATCH 10/12] fixed DataMappingUtils to match proto files --- src/main/java/de/dmi3y/behaiv/tools/DataMappingUtils.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/de/dmi3y/behaiv/tools/DataMappingUtils.java b/src/main/java/de/dmi3y/behaiv/tools/DataMappingUtils.java index 718b98a..7b1a249 100644 --- a/src/main/java/de/dmi3y/behaiv/tools/DataMappingUtils.java +++ b/src/main/java/de/dmi3y/behaiv/tools/DataMappingUtils.java @@ -28,7 +28,7 @@ public static PredictionSet createPredictionSet(List, String>> predictionSetBuilder.addPrediction( Prediction.newBuilder() .addAllData(row) - .setPrediction(data.get(i).getValue()) + .setLabel(data.get(i).getValue()) .build() ); } From 704b53eb5f547e7455a0457523a58190fbb728e8 Mon Sep 17 00:00:00 2001 From: dmi3coder Date: Sat, 4 Apr 2020 12:33:14 +0300 Subject: [PATCH 11/12] fixed DataMappingUtilsTest to match proto files --- src/test/java/de/dmi3y/behaiv/tools/DataMappingUtilsTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/de/dmi3y/behaiv/tools/DataMappingUtilsTest.java b/src/test/java/de/dmi3y/behaiv/tools/DataMappingUtilsTest.java index f9f5f50..db3675c 100644 --- a/src/test/java/de/dmi3y/behaiv/tools/DataMappingUtilsTest.java +++ b/src/test/java/de/dmi3y/behaiv/tools/DataMappingUtilsTest.java @@ -22,7 +22,7 @@ public void createPredictionSet_feedDefaultTestData_expectCorrectOrder() { final PredictionSet predictionSet = DataMappingUtils.createPredictionSet(Collections.singletonList(mockData)); assertEquals(1, predictionSet.getPredictionCount()); final Prediction prediction = predictionSet.getPrediction(0); - assertEquals("Potato", prediction.getPrediction()); + assertEquals("Potato", prediction.getLabel()); assertEquals(1, prediction.getDataCount()); assertEquals("key0", prediction.getData(0).getKey()); assertEquals(20d, prediction.getData(0).getValue(), 0); From 2e94aacfc22d19df7bbb1aa50d9a4e8c4676a7b5 Mon Sep 17 00:00:00 2001 From: dmi3coder Date: Sat, 4 Apr 2020 12:44:55 +0300 Subject: [PATCH 12/12] Converting to and from predictionSet, fixed BaseKernel --- .../de/dmi3y/behaiv/kernel/BaseKernel.java | 27 ++++++++++--------- .../dmi3y/behaiv/tools/DataMappingUtils.java | 15 +++++++++++ 2 files changed, 30 insertions(+), 12 deletions(-) diff --git a/src/main/java/de/dmi3y/behaiv/kernel/BaseKernel.java b/src/main/java/de/dmi3y/behaiv/kernel/BaseKernel.java index 04ef86b..99ba00e 100644 --- a/src/main/java/de/dmi3y/behaiv/kernel/BaseKernel.java +++ b/src/main/java/de/dmi3y/behaiv/kernel/BaseKernel.java @@ -2,11 +2,18 @@ import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.protobuf.CodedOutputStream; import de.dmi3y.behaiv.storage.BehaivStorage; +import de.dmi3y.behaiv.tools.DataMappingUtils; import de.dmi3y.behaiv.tools.Pair; +import tech.donau.behaiv.proto.PredictionSet; import java.io.BufferedReader; import java.io.BufferedWriter; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; @@ -78,23 +85,19 @@ public void setAlwaysKeepData(boolean alwaysKeepData) { @Override public void save(BehaivStorage storage) throws IOException { - - try (final BufferedWriter writer = new BufferedWriter(new FileWriter(storage.getDataFile(id)))) { - writer.write(objectMapper.writeValueAsString(data)); + final File dataFile = storage.getDataFile(id); + final PredictionSet predictionSet = DataMappingUtils.createPredictionSet(data); + try(FileOutputStream fileOutputStream = new FileOutputStream(dataFile)) { + predictionSet.writeTo(fileOutputStream); } } @Override public void restore(BehaivStorage storage) throws IOException { - final TypeReference, String>>> typeReference = new TypeReference, String>>>() { - }; - try (final BufferedReader reader = new BufferedReader(new FileReader(storage.getDataFile(id)))) { - final String content = reader.readLine(); - if (content == null || content.isEmpty()) { - data = new ArrayList<>(); - } else { - data = objectMapper.readValue(content, typeReference); - } + final File dataFile = storage.getDataFile(id); + try (FileInputStream fileInputStream = new FileInputStream(dataFile)) { + final PredictionSet predictionSet = PredictionSet.parseFrom(fileInputStream); + data = DataMappingUtils.dataFromPredictionSet(predictionSet); } } } diff --git a/src/main/java/de/dmi3y/behaiv/tools/DataMappingUtils.java b/src/main/java/de/dmi3y/behaiv/tools/DataMappingUtils.java index 7b1a249..5deec47 100644 --- a/src/main/java/de/dmi3y/behaiv/tools/DataMappingUtils.java +++ b/src/main/java/de/dmi3y/behaiv/tools/DataMappingUtils.java @@ -35,6 +35,21 @@ public static PredictionSet createPredictionSet(List, String>> return predictionSetBuilder.build(); } + public static List, String>> dataFromPredictionSet(PredictionSet predictionSet) { + final ArrayList, String>> data = new ArrayList<>(); + for (int i = 0; i < predictionSet.getPredictionCount(); i++) { + final Prediction prediction = predictionSet.getPrediction(i); + final List dataList = prediction.getDataList(); + final String label = prediction.getLabel(); + final List entries = new ArrayList<>(); + for (Data entry : dataList) { + entries.add(entry.getValue()); + } + data.add(Pair.create(entries, label)); + } + return data; + } + public static List toDistinctListOfPairValues(List, String>> data) { Set setOfValues = new HashSet<>(); for(Pair, String> arrayListStringPair : data ) {