def Serialize(self): """Serialize the operation bundle. Returns: Dict representing this object. """ data = { 'javaClass': 'com.google.wave.api.impl.OperationMessageBundle', 'operations': util.Serialize(self._operations) } return data
def Serialize(self): """Custom serializer for Elements. Element need their non standard attributes returned in a dict named properties. """ props = {} data = {} for attr in dir(self): if attr.startswith('_'): continue val = getattr(self, attr) if val is None or callable(val): continue val = util.Serialize(val) if attr == 'type' or attr == 'java_class': data[attr] = val else: props[attr] = val data['properties'] = util.Serialize(props) return data
def testSerialize(self): image = document.Image('http://test.com/image.png', width=100, height=100) s = util.Serialize(image) k = s.keys() k.sort() # we should really only have three things to serialize self.assertEquals(['java_class', 'properties', 'type'], k) self.assertEquals(s['properties']['javaClass'], 'java.util.HashMap') props = s['properties']['map'] self.assertEquals(len(props), 3) self.assertEquals(props['url'], 'http://test.com/image.png') self.assertEquals(props['width'], 100) self.assertEquals(props['height'], 100)
def testSerializeAttributes(self): class Data(object): java_class = 'json.org.JSONObject' def __init__(self): self.public = 1 self._protected = 2 self.__private = 3 def Func(self): pass data = Data() output = util.Serialize(data) # Functions and non-public fields should not be serialized. self.assertEquals(2, len(output.keys())) self.assertEquals(Data.java_class, output['javaClass']) self.assertEquals(data.public, output['public'])
def SerializeContext(context, version): """Return a JSON string representing the given context.""" context_dict = util.Serialize(context) context_dict['version'] = version return simplejson.dumps(context_dict)
def testSerializeDict(self): data = {'key': 'value'} output = util.Serialize(data) self.assertEquals('java.util.HashMap', output['javaClass']) self.assertDictsEqual(data, output['map'])
def testSerializeList(self): data = [1, 2, 3] output = util.Serialize(data) self.assertEquals('java.util.ArrayList', output['javaClass']) self.assertListsEqual(data, output['list'])
def SerializeContext(context): """Return a JSON string representing the given context.""" context_dict = util.Serialize(context) return simplejson.dumps(context_dict)