diff --git a/src/runtime/java/org/grammaticalframework/pgf/Expr.java b/src/runtime/java/org/grammaticalframework/pgf/Expr.java index 638ec8ad1..ca94d0cf7 100644 --- a/src/runtime/java/org/grammaticalframework/pgf/Expr.java +++ b/src/runtime/java/org/grammaticalframework/pgf/Expr.java @@ -1,6 +1,13 @@ package org.grammaticalframework.pgf; -public class Expr { +import java.io.IOException; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; +import java.io.Serializable; + +public class Expr implements Serializable { + private static final long serialVersionUID = 1148602474802492674L; + private Pool pool; private PGF gr; private long ref; @@ -18,4 +25,15 @@ public class Expr { public static native Expr readExpr(String s) throws PGFError; private static native String showExpr(long ref); + + private void writeObject(ObjectOutputStream out) throws IOException { + out.writeObject(showExpr(ref)); + } + + private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException { + Expr e = readExpr((String) in.readObject()); + pool = e.pool; + gr = e.gr; + ref = e.ref; + } } diff --git a/src/runtime/java/org/grammaticalframework/pgf/ExprProb.java b/src/runtime/java/org/grammaticalframework/pgf/ExprProb.java index 345f5bd53..99ef0a92c 100644 --- a/src/runtime/java/org/grammaticalframework/pgf/ExprProb.java +++ b/src/runtime/java/org/grammaticalframework/pgf/ExprProb.java @@ -1,6 +1,10 @@ package org.grammaticalframework.pgf; -public class ExprProb { +import java.io.Serializable; + +public class ExprProb implements Serializable { + private static final long serialVersionUID = -3112602244416576742L; + private Expr expr; private double prob;