1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

# coding=utf-8 

# 

# Copyright (C) 2010-2012 Platform Computing 

# 

# This library is free software; you can redistribute it and/or 

# modify it under the terms of the GNU Lesser General Public 

# License as published by the Free Software Foundation; either 

# version 2.1 of the License, or (at your option) any later version. 

# 

# This library is distributed in the hope that it will be useful, 

# but WITHOUT ANY WARRANTY; without even the implied warranty of 

# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 

# Lesser General Public License for more details. 

# 

# You should have received a copy of the GNU Lesser General Public 

# License along with this library; if not, write to the Free Software 

# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA 

# 

''' 

A empty rendering class. 

 

Created on Feb 2, 2012 

 

@author: tmetsch 

''' 

 

 

class Rendering(object): 

    ''' 

    All renderings should derive from this class. 

    ''' 

 

    def __init__(self, registry): 

        ''' 

        Constructor. 

 

        registry -- The registry used for this process. 

        ''' 

        self.registry = registry 

 

    def to_entity(self, headers, body, def_kind, extras): 

        ''' 

        Given the HTTP headers and the body this method will convert the HTTP 

        data into an entity representation. Must return Resource or Link 

        instances. 

 

        headers -- The HTTP headers. 

        body -- The HTTP body. 

        def_kind -- If provided this kind is taken (Needed for update). 

        extras -- Passed on extra object. 

        ''' 

        raise NotImplementedError() 

 

    def from_entity(self, entity): 

        ''' 

        Given an entity it will return a HTTP body an header. 

 

        If it's a link make sure source, target attributes are set. If it's a 

        Resource make sure Links are presented properly. 

 

        entity -- The entity which is to rendered. 

        ''' 

        raise NotImplementedError() 

 

    def to_entities(self, headers, body, extras): 

        ''' 

        Given the HTTP headers and the body this method will convert the HTTP 

        data into a set of entity representations. Must return a set of 

        Resource or Link instances. 

 

        headers -- The HTTP headers. 

        body -- The HTTP body. 

        extras -- Passed on extra object. 

        ''' 

        raise NotImplementedError() 

 

    def from_entities(self, entities, key): 

        ''' 

        Given an set of entities it will return a HTTP body an header. 

 

        entities -- The entities which will be rendered. 

        key -- Needed for uri-list (see RFC) and html rendering. 

        ''' 

        raise NotImplementedError() 

 

    def from_categories(self, categories): 

        ''' 

        Given an set of categories it will return a HTTP body an header. 

 

        categories -- The list of categories which is to be rendered. 

        ''' 

        raise NotImplementedError() 

 

    def to_action(self, headers, body, extras): 

        ''' 

        Given the HTTP headers and the body this method will convert the HTTP 

        data into an Action. 

 

        headers -- The HTTP headers. 

        body -- The HTTP body. 

        extras -- Passed on extra object. 

        ''' 

        raise NotImplementedError() 

 

    def to_mixins(self, headers, body, extras): 

        ''' 

        Given the HTTP headers and the body this method will convert the HTTP 

        data into a Mixins. Must return a list with Mixin instances. 

 

        headers -- The HTTP headers. 

        body -- The HTTP body. 

        extras -- Passed on extra object. 

        ''' 

        raise NotImplementedError() 

 

    def get_filters(self, headers, body, extras): 

        ''' 

        Given the HTTP headers and the body this method will convert the HTTP 

        data into a list of categories and attributes. 

 

        headers -- The HTTP headers. 

        body -- The HTTP body. 

        extras -- Passed on extra object. 

        ''' 

        raise NotImplementedError()