Skip to content

Commit 0695076

Browse files
author
Timo Schmid
committed
load/dump functions with custom transformers
1 parent 4763f52 commit 0695076

File tree

1 file changed

+20
-3
lines changed

1 file changed

+20
-3
lines changed

javaobj.py

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,32 +26,49 @@ def log_error(message, ident=0):
2626

2727
__version__ = "$Revision: 20 $"
2828

29-
def load(file_object):
29+
30+
def load(file_object, *args):
3031
"""
3132
Deserializes Java primitive data and objects serialized by ObjectOutputStream
3233
from a file-like object.
3334
"""
3435
marshaller = JavaObjectUnmarshaller(file_object)
36+
for t in args:
37+
marshaller.add_transformer(t)
3538
marshaller.add_transformer(DefaultObjectTransformer())
3639
return marshaller.readObject()
3740

41+
def load_all(file_object):
42+
marshaller = JavaObjectUnmarshaller(file_object)
43+
marshaller.add_transformer(DefaultObjectTransformer())
44+
45+
res = []
46+
while marshaller.data_left:
47+
res.append(marshaller.readObject())
48+
return res
49+
50+
3851

39-
def loads(string):
52+
def loads(string, *args):
4053
"""
4154
Deserializes Java objects and primitive data serialized by ObjectOutputStream
4255
from a string.
4356
"""
4457
f = StringIO.StringIO(string)
4558
marshaller = JavaObjectUnmarshaller(f)
59+
for t in args:
60+
marshaller.add_transformer(t)
4661
marshaller.add_transformer(DefaultObjectTransformer())
4762
return marshaller.readObject()
4863

4964

50-
def dumps(object):
65+
def dumps(object, *args):
5166
"""
5267
Serializes Java primitive data and objects unmarshaled by load(s) before into string.
5368
"""
5469
marshaller = JavaObjectMarshaller()
70+
for t in args:
71+
marshaller.add_transformer(t)
5572
return marshaller.dump(object)
5673

5774

0 commit comments

Comments
 (0)