@Override public Event journal(Journal.Transaction tx, Event event) { ObjectSerializer<Event> serializer = serialization.getSerializer(event.getClass()); ObjectDeserializer<Event> deserializer = serialization.getDeserializer(event.getClass()); ByteBuffer buffer = serializer.serialize(event); buffer.rewind(); Event event1 = deserializer.deserialize(buffer); event1.uuid(event.uuid()); ((Transaction) tx).events.put(event1.uuid(), event1); return event1; }
@Override public Event journal(Journal.Transaction tx, Event event) { ObjectSerializer<Event> serializer = serialization.getSerializer(event.getClass()); ObjectDeserializer<Event> deserializer = serialization.getDeserializer(event.getClass()); ByteBuffer buffer = serializer.serialize(event); buffer.rewind(); Event event1 = deserializer.deserialize(buffer); event1.uuid(event.uuid()); ((Transaction) tx).events.put(event1.uuid(), event1); return event1; }
@Override public <S, T> Command<S, T> journal(Journal.Transaction tx, Command<S, T> command) { ObjectSerializer<Command> serializer = serialization.getSerializer(command.getClass()); ObjectDeserializer<Command> deserializer = serialization.getDeserializer(command.getClass()); ByteBuffer buffer = serializer.serialize(command); buffer.rewind(); Command command1 = deserializer.deserialize(buffer); command1.uuid(command.uuid()); ((Transaction) tx).setCommand(command1); return command1; }
@Override public <S, T> Command<S, T> journal(Journal.Transaction tx, Command<S, T> command) { ObjectSerializer<Command> serializer = serialization.getSerializer(command.getClass()); ObjectDeserializer<Command> deserializer = serialization.getDeserializer(command.getClass()); ByteBuffer buffer = serializer.serialize(command); buffer.rewind(); Command command1 = deserializer.deserialize(buffer); command1.uuid(command.uuid()); ((Transaction) tx).setCommand(command1); return command1; }
@Test @SneakyThrows public void layout() { Layout<HybridTimestamp> layout = Layout.forClass(HybridTimestamp.class); List<Property<HybridTimestamp>> properties = layout.getProperties(); assertEquals(properties.size(), 2); assertTrue(properties.stream().anyMatch(p -> p.getName().contentEquals("logicalTime"))); assertTrue(properties.stream().anyMatch(p -> p.getName().contentEquals("logicalCounter"))); HybridTimestamp timestamp = new HybridTimestamp(physicalTimeProvider); timestamp.update(); BinarySerialization serialization = BinarySerialization.getInstance(); ObjectSerializer<HybridTimestamp> serializer = serialization.getSerializer(HybridTimestamp.class); ObjectDeserializer<HybridTimestamp> deserializer = serialization.getDeserializer(HybridTimestamp.class); ByteBuffer buffer = serializer.serialize(timestamp); buffer.rewind(); HybridTimestamp timestamp1 = deserializer.deserialize(buffer); assertEquals(timestamp1.compareTo(timestamp), 0); }