Skip to content

Commit

Permalink
fix(serializer): propagate ObjectOutputMapper and ObjectInputMapper
Browse files Browse the repository at this point in the history
  • Loading branch information
bsorrentino committed Oct 10, 2024
1 parent 0f1ecdb commit 1693b43
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ public Object readObject() throws ClassNotFoundException, IOException {
Serializer<?> serializer = mapper.getSerializer( serializerClass )
.orElseThrow( () -> new IllegalArgumentException( "No serializer found for class " + serializerClass ) );

value = serializer.read(in);
value = serializer.read(this);
}
return value;
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
package org.bsc.langgraph4j.serializer.std;

import lombok.NonNull;
import lombok.extern.slf4j.Slf4j;
import org.bsc.langgraph4j.serializer.Serializer;

import java.io.IOException;
import java.io.ObjectOutput;
import java.util.Optional;

@Slf4j
class ObjectOutputWithMapper implements ObjectOutput {

private final ObjectOutput out;
Expand All @@ -19,15 +21,19 @@ public ObjectOutputWithMapper(@NonNull ObjectOutput out, @NonNull SerializerMapp

@Override
public void writeObject(Object obj) throws IOException {
log.trace( "{}", (obj != null) ? obj.getClass() : "NULL" );

Optional<Serializer<Object>> serializer = (obj != null) ?
mapper.getSerializer(obj.getClass()) :
Optional.empty();
// check if written by serializer
if (serializer.isPresent()) {
log.trace( "use serializer {}", serializer.get().getClass().getSimpleName() );
out.writeObject(obj.getClass());
serializer.get().write(obj, out);
serializer.get().write(obj, this);
}
else {
log.trace( "no serializer found!" );
out.writeObject(obj);
}
out.flush();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
@Slf4j
public class ObjectStreamStateSerializer implements Serializer<Map<String,Object>> {

static class ListSerializer extends BaseSerializer<List<Object>> {
static class ListSerializer implements Serializer<List<Object>> {

@Override
public void write(List<Object> object, ObjectOutput out) throws IOException {
Expand Down

0 comments on commit 1693b43

Please sign in to comment.