1#############################################################################
2##
3##                                                     ToolsForHomalg package
4##
5##  Copyright 2014, Sebastian Gutsche, University of Kaiserslautern
6##
7#! @Chapter Dependency and printing graph.
8##
9#############################################################################
10
11##################################
12##
13#! @Section Dependency graph for attributes
14##
15##################################
16
17DeclareCategory( "IsAttributeDependencyGraphForPrinting",
18                 IsObject );
19
20DeclareCategory( "IsAttributeDependencyGraphForPrintingNode",
21                 IsObject );
22
23##################################
24##
25#! @Section Filters
26##
27##################################
28
29DeclareFilter( "NotComputedNode" );
30
31DeclareFilter( "FalseNode" );
32
33DeclareFilter( "ImpliedNode" );
34
35DeclareFilter( "NodeOfHighLevel" );
36
37##################################
38##
39#! @Section Constructors
40##
41##################################
42
43DeclareGlobalFunction( "TOOLS_FOR_HOMALG_CREATE_NODE_INPUT" );
44
45DeclareOperation( "CreateNode",
46                  [ IsRecord ] );
47
48DeclareOperation( "CreateConjunctionNode",
49                  [ IsList, IsAttributeDependencyGraphForPrintingNode ] );
50
51## FIXME: This should be a filter. But there is no filter for filters? IsFilter is not a filter. WTF?
52DeclareOperation( "CreatePrintingGraph",
53                  [ IsOperation, IsObject ] );
54
55DeclareOperation( "CreatePrintingGraph",
56                  [ IsOperation ] );
57
58##################################
59##
60#! @Section Setters
61##
62##################################
63
64DeclareOperation( "AddNodeToGraph",
65                  [ IsAttributeDependencyGraphForPrinting, IsRecord ] );
66
67DeclareOperation( "AddRelationToGraph",
68                  [ IsAttributeDependencyGraphForPrinting, IsRecord ] );
69
70##################################
71##
72#! @Section Getters
73##
74##################################
75
76DeclareOperation( "GetNodeByName",
77                  [ IsAttributeDependencyGraphForPrinting, IsString ] );
78
79DeclareOperation( "GetNodeByName",
80                  [ IsAttributeDependencyGraphForPrinting, IsAttributeDependencyGraphForPrintingNode ] );
81
82##################################
83##
84#! @Section Testers
85##
86##################################
87
88DeclareOperation( "MarkPrintingNode",
89                  [ IsObject, IsAttributeDependencyGraphForPrintingNode, IsInt ] );
90
91DeclareOperation( "MarkPrintingNode",
92                  [ IsObject, IsAttributeDependencyGraphForPrintingNode, IsAttributeDependencyGraphForPrintingNode, IsInt ] );
93
94DeclareOperation( "MarkAsImplied",
95                  [ IsAttributeDependencyGraphForPrintingNode ] );
96
97DeclareOperation( "MarkAsImplied",
98                  [ IsAttributeDependencyGraphForPrintingNode, IsAttributeDependencyGraphForPrintingNode ] );
99
100DeclareOperation( "MarkGraphForPrinting",
101                  [ IsAttributeDependencyGraphForPrinting, IsObject, IsInt ] );
102
103##################################
104##
105#! @Section Reseters
106##
107##################################
108
109DeclareGlobalFunction( "RESET_ALL_POSSIBLE_FILTERS_FOR_DEPENDENCY_GRAPH" );
110
111DeclareOperation( "ResetGraph",
112                  [ IsAttributeDependencyGraphForPrinting ] );
113
114##################################
115##
116#! @Section Printers
117##
118##################################
119
120DeclareGlobalFunction( "DECIDE_TYPE_OF_PRINTING" );
121
122DeclareGlobalFunction( "BUILD_PRINTING_FOR_VIEW_AND_DISPLAY" );
123
124DeclareGlobalFunction( "OBJECT_PRINT_STRING" );
125
126DeclareOperation( "StringMarkedGraphForStringMutable",
127                  [ IsObject, IsAttributeDependencyGraphForPrinting ] );
128
129DeclareOperation( "PrintMarkedGraphForViewObj",
130                  [ IsObject, IsAttributeDependencyGraphForPrinting ] );
131
132DeclareOperation( "PrintMarkedGraphForDisplay",
133                  [ IsObject, IsAttributeDependencyGraphForPrinting ] );
134
135DeclareOperation( "PrintMarkedGraphFull",
136                  [ IsObject, IsAttributeDependencyGraphForPrinting ] );
137
138DeclareOperation( "PrintMarkedGraphFullWithEverythingComputed",
139                  [ IsObject, IsAttributeDependencyGraphForPrinting ] );
140
141##################################
142##
143#! @Section Installers
144##
145##################################
146
147DeclareOperation( "FullView",
148                  [ IsObject ] );
149
150DeclareOperation( "FullViewWithEverythingComputed",
151                  [ IsObject ] );
152
153DeclareOperation( "InstallPrintFunctionsOutOfPrintingGraph",
154                  [ IsAttributeDependencyGraphForPrinting ] );
155
156DeclareOperation( "InstallPrintFunctionsOutOfPrintingGraph",
157                  [ IsAttributeDependencyGraphForPrinting, IsInt ] );
158
159DeclareOperation( "StringMutable",
160                  [ IsObject ] );
161
162