OSDN Git Service

initial commit
[ftg/ftg.git] / ftg / flowobject.py
1 # vim: tabstop=4 shiftwidth=4 softtabstop=4
2 # -*- coding: utf-8 -*-
3 #
4
5
6 class FlowObject(object):
7     DEFAULT_TYPE = 1
8
9     def __init__(self, label, type=DEFAULT_TYPE, metadata={}):
10         self.label = label
11         self.type = type
12         self.metadata = metadata
13
14     def set_label(self, label):
15         self.label = label
16
17     def get_label(self):
18         return self.label
19
20     def set_type(self, type):
21         self.type = type
22
23     def get_type(self):
24         return self.type
25
26     def set_metadata(self, metadata):
27         self.metadata = metadata
28
29     def get_metadata(self):
30         return self.metadata
31
32     def __str__(self):
33         return self.label
34
35     def __repr__(self):
36         return "{\"label\":\"" + self.label + \
37             "\",\"type\":\"" + repr(self.type) + \
38             "\",\"meta\":" + self._blank_dict(self.metadata) + "}"
39
40     def _blank_dict(self, dict_object):
41         if len(dict_object) > 0:
42             return self._dict_to_json(dict_object)
43         else:
44             return "\"\""
45
46     def _dict_to_json(self, dict_object):
47         json_strings = "{"
48         for dict_key in dict_object.keys():
49             json_strings += "\"" + dict_key + \
50                 "\":\"" + dict_object[dict_key] + "\","
51         json_strings = json_strings.rstrip(",") + "}"
52         return json_strings
53
54     def __add__(self, label):
55         return self.label + label