Skip to content

Commit

Permalink
Adding correct floatvector serialization & warning on unknown types
Browse files Browse the repository at this point in the history
  • Loading branch information
silvanheller committed Jul 16, 2019
1 parent 641a7c6 commit ad5c5da
Showing 1 changed file with 15 additions and 0 deletions.
Expand Up @@ -32,6 +32,7 @@
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.vitrivr.cineast.core.config.ReadableQueryConfig;
import org.vitrivr.cineast.core.data.ReadableFloatVector;
import org.vitrivr.cineast.core.data.providers.primitive.BooleanTypeProvider;
import org.vitrivr.cineast.core.data.providers.primitive.DoubleTypeProvider;
import org.vitrivr.cineast.core.data.providers.primitive.FloatArrayTypeProvider;
Expand Down Expand Up @@ -194,6 +195,10 @@ public static Data toData(Object o) {
return dataBuilder.setVectorData(toVector((float[]) o)).build();
}

if (o instanceof ReadableFloatVector) {
return dataBuilder.setVectorData(toVector(((ReadableFloatVector) o))).build();
}

Vector.Builder vectorBuilder = Vector.newBuilder();

if (o instanceof double[]) {
Expand Down Expand Up @@ -224,6 +229,8 @@ public static Data toData(Object o) {
.build();
}

LOGGER.debug("Unknown type {} in message builder, serializing to string representation {}", o.getClass().getName(), o.toString());

return dataBuilder.setStringData(o.toString()).build();
}

Expand Down Expand Up @@ -284,6 +291,14 @@ public static Vector toVector(float[] vector) {
.build();
}

private static Vector toVector(ReadableFloatVector vector) {
List<Float> floats = new ArrayList<>();
for (int i = 0; i < vector.getElementCount(); i++) {
floats.add(vector.getElement(i));
}
return Vector.newBuilder().setFloatVector(FloatVector.newBuilder().addAllVector(floats)).build();
}

public static List<Data> toData(Iterable<Object> obs) {

List<Data> _return = new ArrayList<>();
Expand Down

0 comments on commit ad5c5da

Please sign in to comment.