]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.document.ontology/src/org/simantics/document/DocumentResource.java
(refs #7177) Rounded connections
[simantics/platform.git] / bundles / org.simantics.document.ontology / src / org / simantics / document / DocumentResource.java
1 package org.simantics.document;
2
3 import org.simantics.db.RequestProcessor;
4 import org.simantics.db.Resource;
5 import org.simantics.db.ReadGraph;
6 import org.simantics.db.request.Read;
7 import org.simantics.db.Session;
8 import org.simantics.db.exception.DatabaseException;
9 import org.simantics.db.service.QueryControl;
10
11 public class DocumentResource {
12     
13     public final Resource Actions;
14     public final Resource Actions_ImportFileDocument;
15     public final Resource Document;
16     public final Resource DocumentLibrary;
17     public final Resource DocumentSettings;
18     public final Resource DocumentSettings_n$marginBottom;
19     public final Resource DocumentSettings_n$marginBottom_Inverse;
20     public final Resource DocumentSettings_n$marginLeft;
21     public final Resource DocumentSettings_n$marginLeft_Inverse;
22     public final Resource DocumentSettings_n$marginRight;
23     public final Resource DocumentSettings_n$marginRight_Inverse;
24     public final Resource DocumentSettings_n$marginTop;
25     public final Resource DocumentSettings_n$marginTop_Inverse;
26     public final Resource DocumentTemplate;
27     public final Resource DocumentTypeBinding;
28     public final Resource DocumentTypeBinding_HasDocumentType;
29     public final Resource DocumentTypeBinding_HasDocumentType_Inverse;
30     public final Resource DocumentTypeBinding_HasType;
31     public final Resource DocumentTypeBinding_HasType_Inverse;
32     public final Resource DocumentTypeBinding_priority;
33     public final Resource DocumentTypeBinding_priority_Inverse;
34     public final Resource FileDocument;
35     public final Resource Functions;
36     public final Resource Functions_documentationRootVariable;
37     public final Resource Functions_documentationText;
38     public final Resource Functions_standardEditText;
39     public final Resource HasDocument;
40     public final Resource HasDocumentTemplate;
41     public final Resource HasDocumentTemplate_Inverse;
42     public final Resource HasDocument_Inverse;
43     public final Resource HasDocumentation;
44     public final Resource HasDocumentation_Inverse;
45     public final Resource HasLibraryRelation;
46     public final Resource HasNewerVersion;
47     public final Resource HasOlderVersion;
48     public final Resource HasReportFactory;
49     public final Resource HasReportFactory_Inverse;
50     public final Resource HasUrl;
51     public final Resource HasUrl_Inverse;
52     public final Resource HasVersionType;
53     public final Resource PlainTextDocument;
54     public final Resource PlainTextDocument_text;
55     public final Resource PlainTextDocument_text_Inverse;
56     public final Resource PlainTextFileDocument;
57     public final Resource PlainTextFileDocument_FilePath;
58     public final Resource PlainTextFileDocument_filePath;
59     public final Resource PlainTextFileDocument_filePath_Inverse;
60     @Deprecated public final Resource Report;
61     public final Resource Scenegraph;
62     public final Resource ScenegraphDocument;
63     public final Resource ScenegraphDocument_scenegraph;
64     public final Resource ScenegraphDocument_scenegraph_Inverse;
65     public final Resource Scenegraph_CategoryHidden;
66     public final Resource Scenegraph_Composite;
67     public final Resource Scenegraph_Diagram;
68     public final Resource Scenegraph_Diagram_path;
69     public final Resource Scenegraph_Diagram_path_Inverse;
70     public final Resource Scenegraph_Node;
71     public final Resource Scenegraph_Node_editText;
72     public final Resource Scenegraph_Node_editText_Inverse;
73     public final Resource Scenegraph_Node_printInPDF;
74     public final Resource Scenegraph_Node_printInPDF_Inverse;
75     public final Resource Scenegraph_ParameterType;
76     public final Resource Scenegraph_Wiki;
77     public final Resource Scenegraph_Wiki_text;
78     public final Resource Scenegraph_Wiki_text_Inverse;
79     public final Resource UrlDocument;
80     public final Resource WikiDocument;
81     public final Resource WikiDocument_WikiDocumentBinding;
82     public final Resource WikiDocument_WikiDocumentTemplate;
83     public final Resource WikiDocument_WikiDocumentTemplate_Header;
84     public final Resource WikiDocument_WikiDocumentTemplate_User;
85     public final Resource WikiDocument_WikiDocumentTemplate_UserDocumentation;
86     public final Resource WikiDocument_WikiDocumentTemplate_UserDocumentation_Inverse;
87     public final Resource WikiDocument_WikiText;
88     public final Resource WikiDocument_wikiText;
89     public final Resource WikiDocument_wikiText_Inverse;
90     public final Resource cssDocument;
91     public final Resource cssDocument_Inverse;
92     public final Resource documentSettings;
93     public final Resource documentSettings_Inverse;
94         
95     public static class URIs {
96         public static final String Actions = "http://www.simantics.org/Document-1.2/Actions";
97         public static final String Actions_ImportFileDocument = "http://www.simantics.org/Document-1.2/Actions/ImportFileDocument";
98         public static final String Document = "http://www.simantics.org/Document-1.2/Document";
99         public static final String DocumentLibrary = "http://www.simantics.org/Document-1.2/DocumentLibrary";
100         public static final String DocumentSettings = "http://www.simantics.org/Document-1.2/DocumentSettings";
101         public static final String DocumentSettings_n$marginBottom = "http://www.simantics.org/Document-1.2/DocumentSettings/n-marginBottom";
102         public static final String DocumentSettings_n$marginBottom_Inverse = "http://www.simantics.org/Document-1.2/DocumentSettings/n-marginBottom/Inverse";
103         public static final String DocumentSettings_n$marginLeft = "http://www.simantics.org/Document-1.2/DocumentSettings/n-marginLeft";
104         public static final String DocumentSettings_n$marginLeft_Inverse = "http://www.simantics.org/Document-1.2/DocumentSettings/n-marginLeft/Inverse";
105         public static final String DocumentSettings_n$marginRight = "http://www.simantics.org/Document-1.2/DocumentSettings/n-marginRight";
106         public static final String DocumentSettings_n$marginRight_Inverse = "http://www.simantics.org/Document-1.2/DocumentSettings/n-marginRight/Inverse";
107         public static final String DocumentSettings_n$marginTop = "http://www.simantics.org/Document-1.2/DocumentSettings/n-marginTop";
108         public static final String DocumentSettings_n$marginTop_Inverse = "http://www.simantics.org/Document-1.2/DocumentSettings/n-marginTop/Inverse";
109         public static final String DocumentTemplate = "http://www.simantics.org/Document-1.2/DocumentTemplate";
110         public static final String DocumentTypeBinding = "http://www.simantics.org/Document-1.2/DocumentTypeBinding";
111         public static final String DocumentTypeBinding_HasDocumentType = "http://www.simantics.org/Document-1.2/DocumentTypeBinding/HasDocumentType";
112         public static final String DocumentTypeBinding_HasDocumentType_Inverse = "http://www.simantics.org/Document-1.2/DocumentTypeBinding/HasDocumentType/Inverse";
113         public static final String DocumentTypeBinding_HasType = "http://www.simantics.org/Document-1.2/DocumentTypeBinding/HasType";
114         public static final String DocumentTypeBinding_HasType_Inverse = "http://www.simantics.org/Document-1.2/DocumentTypeBinding/HasType/Inverse";
115         public static final String DocumentTypeBinding_priority = "http://www.simantics.org/Document-1.2/DocumentTypeBinding/priority";
116         public static final String DocumentTypeBinding_priority_Inverse = "http://www.simantics.org/Document-1.2/DocumentTypeBinding/priority/Inverse";
117         public static final String FileDocument = "http://www.simantics.org/Document-1.2/FileDocument";
118         public static final String Functions = "http://www.simantics.org/Document-1.2/Functions";
119         public static final String Functions_documentationRootVariable = "http://www.simantics.org/Document-1.2/Functions/documentationRootVariable";
120         public static final String Functions_documentationText = "http://www.simantics.org/Document-1.2/Functions/documentationText";
121         public static final String Functions_standardEditText = "http://www.simantics.org/Document-1.2/Functions/standardEditText";
122         public static final String HasDocument = "http://www.simantics.org/Document-1.2/HasDocument";
123         public static final String HasDocumentTemplate = "http://www.simantics.org/Document-1.2/HasDocumentTemplate";
124         public static final String HasDocumentTemplate_Inverse = "http://www.simantics.org/Document-1.2/HasDocumentTemplate/Inverse";
125         public static final String HasDocument_Inverse = "http://www.simantics.org/Document-1.2/HasDocument/Inverse";
126         public static final String HasDocumentation = "http://www.simantics.org/Document-1.2/HasDocumentation";
127         public static final String HasDocumentation_Inverse = "http://www.simantics.org/Document-1.2/HasDocumentation/Inverse";
128         public static final String HasLibraryRelation = "http://www.simantics.org/Document-1.2/HasLibraryRelation";
129         public static final String HasNewerVersion = "http://www.simantics.org/Document-1.2/HasNewerVersion";
130         public static final String HasOlderVersion = "http://www.simantics.org/Document-1.2/HasOlderVersion";
131         public static final String HasReportFactory = "http://www.simantics.org/Document-1.2/HasReportFactory";
132         public static final String HasReportFactory_Inverse = "http://www.simantics.org/Document-1.2/HasReportFactory/Inverse";
133         public static final String HasUrl = "http://www.simantics.org/Document-1.2/HasUrl";
134         public static final String HasUrl_Inverse = "http://www.simantics.org/Document-1.2/HasUrl/Inverse";
135         public static final String HasVersionType = "http://www.simantics.org/Document-1.2/HasVersionType";
136         public static final String PlainTextDocument = "http://www.simantics.org/Document-1.2/PlainTextDocument";
137         public static final String PlainTextDocument_text = "http://www.simantics.org/Document-1.2/PlainTextDocument/text";
138         public static final String PlainTextDocument_text_Inverse = "http://www.simantics.org/Document-1.2/PlainTextDocument/text/Inverse";
139         public static final String PlainTextFileDocument = "http://www.simantics.org/Document-1.2/PlainTextFileDocument";
140         public static final String PlainTextFileDocument_FilePath = "http://www.simantics.org/Document-1.2/PlainTextFileDocument/FilePath";
141         public static final String PlainTextFileDocument_filePath = "http://www.simantics.org/Document-1.2/PlainTextFileDocument/filePath";
142         public static final String PlainTextFileDocument_filePath_Inverse = "http://www.simantics.org/Document-1.2/PlainTextFileDocument/filePath/Inverse";
143         @Deprecated public static final String Report = "http://www.simantics.org/Document-1.2/Report";
144         public static final String Scenegraph = "http://www.simantics.org/Document-1.2/Scenegraph";
145         public static final String ScenegraphDocument = "http://www.simantics.org/Document-1.2/ScenegraphDocument";
146         public static final String ScenegraphDocument_scenegraph = "http://www.simantics.org/Document-1.2/ScenegraphDocument/scenegraph";
147         public static final String ScenegraphDocument_scenegraph_Inverse = "http://www.simantics.org/Document-1.2/ScenegraphDocument/scenegraph/Inverse";
148         public static final String Scenegraph_CategoryHidden = "http://www.simantics.org/Document-1.2/Scenegraph/CategoryHidden";
149         public static final String Scenegraph_Composite = "http://www.simantics.org/Document-1.2/Scenegraph/Composite";
150         public static final String Scenegraph_Diagram = "http://www.simantics.org/Document-1.2/Scenegraph/Diagram";
151         public static final String Scenegraph_Diagram_path = "http://www.simantics.org/Document-1.2/Scenegraph/Diagram/path";
152         public static final String Scenegraph_Diagram_path_Inverse = "http://www.simantics.org/Document-1.2/Scenegraph/Diagram/path/Inverse";
153         public static final String Scenegraph_Node = "http://www.simantics.org/Document-1.2/Scenegraph/Node";
154         public static final String Scenegraph_Node_editText = "http://www.simantics.org/Document-1.2/Scenegraph/Node/editText";
155         public static final String Scenegraph_Node_editText_Inverse = "http://www.simantics.org/Document-1.2/Scenegraph/Node/editText/Inverse";
156         public static final String Scenegraph_Node_printInPDF = "http://www.simantics.org/Document-1.2/Scenegraph/Node/printInPDF";
157         public static final String Scenegraph_Node_printInPDF_Inverse = "http://www.simantics.org/Document-1.2/Scenegraph/Node/printInPDF/Inverse";
158         public static final String Scenegraph_ParameterType = "http://www.simantics.org/Document-1.2/Scenegraph/ParameterType";
159         public static final String Scenegraph_Wiki = "http://www.simantics.org/Document-1.2/Scenegraph/Wiki";
160         public static final String Scenegraph_Wiki_text = "http://www.simantics.org/Document-1.2/Scenegraph/Wiki/text";
161         public static final String Scenegraph_Wiki_text_Inverse = "http://www.simantics.org/Document-1.2/Scenegraph/Wiki/text/Inverse";
162         public static final String UrlDocument = "http://www.simantics.org/Document-1.2/UrlDocument";
163         public static final String WikiDocument = "http://www.simantics.org/Document-1.2/WikiDocument";
164         public static final String WikiDocument_WikiDocumentBinding = "http://www.simantics.org/Document-1.2/WikiDocument/WikiDocumentBinding";
165         public static final String WikiDocument_WikiDocumentTemplate = "http://www.simantics.org/Document-1.2/WikiDocument/WikiDocumentTemplate";
166         public static final String WikiDocument_WikiDocumentTemplate_Header = "http://www.simantics.org/Document-1.2/WikiDocument/WikiDocumentTemplate/Header";
167         public static final String WikiDocument_WikiDocumentTemplate_User = "http://www.simantics.org/Document-1.2/WikiDocument/WikiDocumentTemplate/User";
168         public static final String WikiDocument_WikiDocumentTemplate_UserDocumentation = "http://www.simantics.org/Document-1.2/WikiDocument/WikiDocumentTemplate/UserDocumentation";
169         public static final String WikiDocument_WikiDocumentTemplate_UserDocumentation_Inverse = "http://www.simantics.org/Document-1.2/WikiDocument/WikiDocumentTemplate/UserDocumentation/Inverse";
170         public static final String WikiDocument_WikiText = "http://www.simantics.org/Document-1.2/WikiDocument/WikiText";
171         public static final String WikiDocument_wikiText = "http://www.simantics.org/Document-1.2/WikiDocument/wikiText";
172         public static final String WikiDocument_wikiText_Inverse = "http://www.simantics.org/Document-1.2/WikiDocument/wikiText/Inverse";
173         public static final String cssDocument = "http://www.simantics.org/Document-1.2/cssDocument";
174         public static final String cssDocument_Inverse = "http://www.simantics.org/Document-1.2/cssDocument/Inverse";
175         public static final String documentSettings = "http://www.simantics.org/Document-1.2/documentSettings";
176         public static final String documentSettings_Inverse = "http://www.simantics.org/Document-1.2/documentSettings/Inverse";
177     }
178     
179     public static Resource getResourceOrNull(ReadGraph graph, String uri) {
180         try {
181             return graph.getResource(uri);
182         } catch(DatabaseException e) {
183             System.err.println(e.getMessage());
184             return null;
185         }
186     }
187     
188     public DocumentResource(ReadGraph graph) {
189         Actions = getResourceOrNull(graph, URIs.Actions);
190         Actions_ImportFileDocument = getResourceOrNull(graph, URIs.Actions_ImportFileDocument);
191         Document = getResourceOrNull(graph, URIs.Document);
192         DocumentLibrary = getResourceOrNull(graph, URIs.DocumentLibrary);
193         DocumentSettings = getResourceOrNull(graph, URIs.DocumentSettings);
194         DocumentSettings_n$marginBottom = getResourceOrNull(graph, URIs.DocumentSettings_n$marginBottom);
195         DocumentSettings_n$marginBottom_Inverse = getResourceOrNull(graph, URIs.DocumentSettings_n$marginBottom_Inverse);
196         DocumentSettings_n$marginLeft = getResourceOrNull(graph, URIs.DocumentSettings_n$marginLeft);
197         DocumentSettings_n$marginLeft_Inverse = getResourceOrNull(graph, URIs.DocumentSettings_n$marginLeft_Inverse);
198         DocumentSettings_n$marginRight = getResourceOrNull(graph, URIs.DocumentSettings_n$marginRight);
199         DocumentSettings_n$marginRight_Inverse = getResourceOrNull(graph, URIs.DocumentSettings_n$marginRight_Inverse);
200         DocumentSettings_n$marginTop = getResourceOrNull(graph, URIs.DocumentSettings_n$marginTop);
201         DocumentSettings_n$marginTop_Inverse = getResourceOrNull(graph, URIs.DocumentSettings_n$marginTop_Inverse);
202         DocumentTemplate = getResourceOrNull(graph, URIs.DocumentTemplate);
203         DocumentTypeBinding = getResourceOrNull(graph, URIs.DocumentTypeBinding);
204         DocumentTypeBinding_HasDocumentType = getResourceOrNull(graph, URIs.DocumentTypeBinding_HasDocumentType);
205         DocumentTypeBinding_HasDocumentType_Inverse = getResourceOrNull(graph, URIs.DocumentTypeBinding_HasDocumentType_Inverse);
206         DocumentTypeBinding_HasType = getResourceOrNull(graph, URIs.DocumentTypeBinding_HasType);
207         DocumentTypeBinding_HasType_Inverse = getResourceOrNull(graph, URIs.DocumentTypeBinding_HasType_Inverse);
208         DocumentTypeBinding_priority = getResourceOrNull(graph, URIs.DocumentTypeBinding_priority);
209         DocumentTypeBinding_priority_Inverse = getResourceOrNull(graph, URIs.DocumentTypeBinding_priority_Inverse);
210         FileDocument = getResourceOrNull(graph, URIs.FileDocument);
211         Functions = getResourceOrNull(graph, URIs.Functions);
212         Functions_documentationRootVariable = getResourceOrNull(graph, URIs.Functions_documentationRootVariable);
213         Functions_documentationText = getResourceOrNull(graph, URIs.Functions_documentationText);
214         Functions_standardEditText = getResourceOrNull(graph, URIs.Functions_standardEditText);
215         HasDocument = getResourceOrNull(graph, URIs.HasDocument);
216         HasDocumentTemplate = getResourceOrNull(graph, URIs.HasDocumentTemplate);
217         HasDocumentTemplate_Inverse = getResourceOrNull(graph, URIs.HasDocumentTemplate_Inverse);
218         HasDocument_Inverse = getResourceOrNull(graph, URIs.HasDocument_Inverse);
219         HasDocumentation = getResourceOrNull(graph, URIs.HasDocumentation);
220         HasDocumentation_Inverse = getResourceOrNull(graph, URIs.HasDocumentation_Inverse);
221         HasLibraryRelation = getResourceOrNull(graph, URIs.HasLibraryRelation);
222         HasNewerVersion = getResourceOrNull(graph, URIs.HasNewerVersion);
223         HasOlderVersion = getResourceOrNull(graph, URIs.HasOlderVersion);
224         HasReportFactory = getResourceOrNull(graph, URIs.HasReportFactory);
225         HasReportFactory_Inverse = getResourceOrNull(graph, URIs.HasReportFactory_Inverse);
226         HasUrl = getResourceOrNull(graph, URIs.HasUrl);
227         HasUrl_Inverse = getResourceOrNull(graph, URIs.HasUrl_Inverse);
228         HasVersionType = getResourceOrNull(graph, URIs.HasVersionType);
229         PlainTextDocument = getResourceOrNull(graph, URIs.PlainTextDocument);
230         PlainTextDocument_text = getResourceOrNull(graph, URIs.PlainTextDocument_text);
231         PlainTextDocument_text_Inverse = getResourceOrNull(graph, URIs.PlainTextDocument_text_Inverse);
232         PlainTextFileDocument = getResourceOrNull(graph, URIs.PlainTextFileDocument);
233         PlainTextFileDocument_FilePath = getResourceOrNull(graph, URIs.PlainTextFileDocument_FilePath);
234         PlainTextFileDocument_filePath = getResourceOrNull(graph, URIs.PlainTextFileDocument_filePath);
235         PlainTextFileDocument_filePath_Inverse = getResourceOrNull(graph, URIs.PlainTextFileDocument_filePath_Inverse);
236         Report = getResourceOrNull(graph, URIs.Report);
237         Scenegraph = getResourceOrNull(graph, URIs.Scenegraph);
238         ScenegraphDocument = getResourceOrNull(graph, URIs.ScenegraphDocument);
239         ScenegraphDocument_scenegraph = getResourceOrNull(graph, URIs.ScenegraphDocument_scenegraph);
240         ScenegraphDocument_scenegraph_Inverse = getResourceOrNull(graph, URIs.ScenegraphDocument_scenegraph_Inverse);
241         Scenegraph_CategoryHidden = getResourceOrNull(graph, URIs.Scenegraph_CategoryHidden);
242         Scenegraph_Composite = getResourceOrNull(graph, URIs.Scenegraph_Composite);
243         Scenegraph_Diagram = getResourceOrNull(graph, URIs.Scenegraph_Diagram);
244         Scenegraph_Diagram_path = getResourceOrNull(graph, URIs.Scenegraph_Diagram_path);
245         Scenegraph_Diagram_path_Inverse = getResourceOrNull(graph, URIs.Scenegraph_Diagram_path_Inverse);
246         Scenegraph_Node = getResourceOrNull(graph, URIs.Scenegraph_Node);
247         Scenegraph_Node_editText = getResourceOrNull(graph, URIs.Scenegraph_Node_editText);
248         Scenegraph_Node_editText_Inverse = getResourceOrNull(graph, URIs.Scenegraph_Node_editText_Inverse);
249         Scenegraph_Node_printInPDF = getResourceOrNull(graph, URIs.Scenegraph_Node_printInPDF);
250         Scenegraph_Node_printInPDF_Inverse = getResourceOrNull(graph, URIs.Scenegraph_Node_printInPDF_Inverse);
251         Scenegraph_ParameterType = getResourceOrNull(graph, URIs.Scenegraph_ParameterType);
252         Scenegraph_Wiki = getResourceOrNull(graph, URIs.Scenegraph_Wiki);
253         Scenegraph_Wiki_text = getResourceOrNull(graph, URIs.Scenegraph_Wiki_text);
254         Scenegraph_Wiki_text_Inverse = getResourceOrNull(graph, URIs.Scenegraph_Wiki_text_Inverse);
255         UrlDocument = getResourceOrNull(graph, URIs.UrlDocument);
256         WikiDocument = getResourceOrNull(graph, URIs.WikiDocument);
257         WikiDocument_WikiDocumentBinding = getResourceOrNull(graph, URIs.WikiDocument_WikiDocumentBinding);
258         WikiDocument_WikiDocumentTemplate = getResourceOrNull(graph, URIs.WikiDocument_WikiDocumentTemplate);
259         WikiDocument_WikiDocumentTemplate_Header = getResourceOrNull(graph, URIs.WikiDocument_WikiDocumentTemplate_Header);
260         WikiDocument_WikiDocumentTemplate_User = getResourceOrNull(graph, URIs.WikiDocument_WikiDocumentTemplate_User);
261         WikiDocument_WikiDocumentTemplate_UserDocumentation = getResourceOrNull(graph, URIs.WikiDocument_WikiDocumentTemplate_UserDocumentation);
262         WikiDocument_WikiDocumentTemplate_UserDocumentation_Inverse = getResourceOrNull(graph, URIs.WikiDocument_WikiDocumentTemplate_UserDocumentation_Inverse);
263         WikiDocument_WikiText = getResourceOrNull(graph, URIs.WikiDocument_WikiText);
264         WikiDocument_wikiText = getResourceOrNull(graph, URIs.WikiDocument_wikiText);
265         WikiDocument_wikiText_Inverse = getResourceOrNull(graph, URIs.WikiDocument_wikiText_Inverse);
266         cssDocument = getResourceOrNull(graph, URIs.cssDocument);
267         cssDocument_Inverse = getResourceOrNull(graph, URIs.cssDocument_Inverse);
268         documentSettings = getResourceOrNull(graph, URIs.documentSettings);
269         documentSettings_Inverse = getResourceOrNull(graph, URIs.documentSettings_Inverse);
270     }
271     
272     public static DocumentResource getInstance(ReadGraph graph) {
273         Session session = graph.getSession();
274         DocumentResource ret = session.peekService(DocumentResource.class);
275         if(ret == null) {
276             QueryControl qc = graph.getService(QueryControl.class);
277             ret = new DocumentResource(qc.getIndependentGraph(graph));
278             session.registerService(DocumentResource.class, ret);
279         }
280         return ret;
281     }
282     
283     public static DocumentResource getInstance(RequestProcessor session) throws DatabaseException {
284         DocumentResource ret = session.peekService(DocumentResource.class);
285         if(ret == null) {
286             ret = session.syncRequest(new Read<DocumentResource>() {
287                 public DocumentResource perform(ReadGraph graph) throws DatabaseException {
288                     QueryControl qc = graph.getService(QueryControl.class);
289                     return new DocumentResource(qc.getIndependentGraph(graph));
290                 }
291             });
292             session.registerService(DocumentResource.class, ret);
293         }
294         return ret;
295     }
296     
297 }
298