]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.document.linking.ontology/src/org/simantics/document/linking/ontology/DocumentLink.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.document.linking.ontology / src / org / simantics / document / linking / ontology / DocumentLink.java
1 package org.simantics.document.linking.ontology;\r
2 \r
3 import org.simantics.db.RequestProcessor;\r
4 import org.simantics.db.Resource;\r
5 import org.simantics.db.ReadGraph;\r
6 import org.simantics.db.request.Read;\r
7 import org.simantics.db.Session;\r
8 import org.simantics.db.exception.DatabaseException;\r
9 import org.simantics.db.service.QueryControl;\r
10 \r
11 public class DocumentLink {\r
12     \r
13     public final Resource EvaluatorTree;\r
14     public final Resource EvaluatorTree_AligmentHint;\r
15     public final Resource EvaluatorTree_And;\r
16     public final Resource EvaluatorTree_Constant;\r
17     public final Resource EvaluatorTree_Date;\r
18     public final Resource EvaluatorTree_HasValue;\r
19     public final Resource EvaluatorTree_HasValue_Inverse;\r
20     public final Resource EvaluatorTree_If;\r
21     public final Resource EvaluatorTree_Lines;\r
22     public final Resource EvaluatorTree_Node;\r
23     public final Resource EvaluatorTree_Or;\r
24     public final Resource EvaluatorTree_Path;\r
25     public final Resource EvaluatorTree_Root;\r
26     public final Resource EvaluatorTree_Template;\r
27     public final Resource EvaluatorTree_TextSizeHint;\r
28     public final Resource EvaluatorTree_Variable;\r
29     public final Resource FunctionalSource;\r
30     public final Resource InstanceSource;\r
31     public final Resource ModelViewpointActionContext;\r
32     public final Resource ModelViewpointBrowseContext;\r
33     public final Resource ModelViewpointBrowseContext2;\r
34     public final Resource ModelViewpointBrowseContext2_ChildRule;\r
35     public final Resource ModelViewpointBrowseContext_ChildRule;\r
36     public final Resource ReportTemplate;\r
37     public final Resource SearchContribution;\r
38     public final Resource SearchFunction;\r
39     public final Resource Source;\r
40     public final Resource SourceObjectViewpointActionContext;\r
41     public final Resource SourceObjectViewpointActionContext_Category;\r
42     public final Resource SourceObjectViewpointBrowseContext;\r
43     public final Resource SourceObjectViewpointBrowseContext_ChildRule;\r
44     public final Resource SourcePropertyViewpointActionContext;\r
45     public final Resource SourcePropertyViewpointActionContext_Category;\r
46     public final Resource SourcePropertyViewpointActionContext_FixAll;\r
47     public final Resource SourcePropertyViewpointActionContext_FixAllReferences;\r
48     public final Resource SourcePropertyViewpointActionContext_Open;\r
49     public final Resource SourcePropertyViewpointActionContext_OpenWith;\r
50     public final Resource SourcePropertyViewpointActionContext_Remove;\r
51     public final Resource SourcePropertyViewpointActionContext_RemoveSource;\r
52     public final Resource SourcePropertyViewpointActionContext_Replace;\r
53     public final Resource SourcePropertyViewpointActionContext_ReplaceWithLatest;\r
54     public final Resource SourcePropertyViewpointActionContext_ShowDocument;\r
55     public final Resource SourcePropertyViewpointActionContext_ShowDocumentExternal;\r
56     public final Resource SourcePropertyViewpointActionContext_SourceObjectDropAction;\r
57     public final Resource SourcePropertyViewpointActionContext_SourceReferenceOldTest;\r
58     public final Resource SourcePropertyViewpointActionContext_VariableInstanceTest;\r
59     public final Resource SourcePropertyViewpointBrowseContext;\r
60     public final Resource SourcePropertyViewpointBrowseContext_ChildRule;\r
61     public final Resource SourcePropertyViewpointBrowseContext_Variable;\r
62     public final Resource SourcePropertyViewpointBrowseContext_VariableImageDecorationRule;\r
63     public final Resource SourcePropertyViewpointBrowseContext_VariableImageRule;\r
64     public final Resource SourcePropertyViewpointBrowseContext_VariableLabelRule;\r
65     public final Resource SourcePropertyViewpointBrowseContext_VariableModifierRule;\r
66     public final Resource consernsRelation;\r
67     public final Resource hasFunctionalSource;\r
68     public final Resource hasFunctionalSource_Inverse;\r
69     public final Resource hasInstanceSource;\r
70     public final Resource hasInstanceSource_Inverse;\r
71     public final Resource hasSource;\r
72     public final Resource hasSourceComment;\r
73     public final Resource hasSourceComment_Inverse;\r
74     public final Resource hasSourceReference;\r
75     public final Resource hasSourceReferenceURI;\r
76     public final Resource hasSourceReferenceURI_Inverse;\r
77     public final Resource hasSource_Inverse;\r
78         \r
79     public static class URIs {\r
80         public static final String EvaluatorTree = "http://www.simantics.org/DocumentLink-1.0/EvaluatorTree";\r
81         public static final String EvaluatorTree_AligmentHint = "http://www.simantics.org/DocumentLink-1.0/EvaluatorTree/AligmentHint";\r
82         public static final String EvaluatorTree_And = "http://www.simantics.org/DocumentLink-1.0/EvaluatorTree/And";\r
83         public static final String EvaluatorTree_Constant = "http://www.simantics.org/DocumentLink-1.0/EvaluatorTree/Constant";\r
84         public static final String EvaluatorTree_Date = "http://www.simantics.org/DocumentLink-1.0/EvaluatorTree/Date";\r
85         public static final String EvaluatorTree_HasValue = "http://www.simantics.org/DocumentLink-1.0/EvaluatorTree/HasValue";\r
86         public static final String EvaluatorTree_HasValue_Inverse = "http://www.simantics.org/DocumentLink-1.0/EvaluatorTree/HasValue/Inverse";\r
87         public static final String EvaluatorTree_If = "http://www.simantics.org/DocumentLink-1.0/EvaluatorTree/If";\r
88         public static final String EvaluatorTree_Lines = "http://www.simantics.org/DocumentLink-1.0/EvaluatorTree/Lines";\r
89         public static final String EvaluatorTree_Node = "http://www.simantics.org/DocumentLink-1.0/EvaluatorTree/Node";\r
90         public static final String EvaluatorTree_Or = "http://www.simantics.org/DocumentLink-1.0/EvaluatorTree/Or";\r
91         public static final String EvaluatorTree_Path = "http://www.simantics.org/DocumentLink-1.0/EvaluatorTree/Path";\r
92         public static final String EvaluatorTree_Root = "http://www.simantics.org/DocumentLink-1.0/EvaluatorTree/Root";\r
93         public static final String EvaluatorTree_Template = "http://www.simantics.org/DocumentLink-1.0/EvaluatorTree/Template";\r
94         public static final String EvaluatorTree_TextSizeHint = "http://www.simantics.org/DocumentLink-1.0/EvaluatorTree/TextSizeHint";\r
95         public static final String EvaluatorTree_Variable = "http://www.simantics.org/DocumentLink-1.0/EvaluatorTree/Variable";\r
96         public static final String FunctionalSource = "http://www.simantics.org/DocumentLink-1.0/FunctionalSource";\r
97         public static final String InstanceSource = "http://www.simantics.org/DocumentLink-1.0/InstanceSource";\r
98         public static final String ModelViewpointActionContext = "http://www.simantics.org/DocumentLink-1.0/ModelViewpointActionContext";\r
99         public static final String ModelViewpointBrowseContext = "http://www.simantics.org/DocumentLink-1.0/ModelViewpointBrowseContext";\r
100         public static final String ModelViewpointBrowseContext2 = "http://www.simantics.org/DocumentLink-1.0/ModelViewpointBrowseContext2";\r
101         public static final String ModelViewpointBrowseContext2_ChildRule = "http://www.simantics.org/DocumentLink-1.0/ModelViewpointBrowseContext2/ChildRule";\r
102         public static final String ModelViewpointBrowseContext_ChildRule = "http://www.simantics.org/DocumentLink-1.0/ModelViewpointBrowseContext/ChildRule";\r
103         public static final String ReportTemplate = "http://www.simantics.org/DocumentLink-1.0/ReportTemplate";\r
104         public static final String SearchContribution = "http://www.simantics.org/DocumentLink-1.0/SearchContribution";\r
105         public static final String SearchFunction = "http://www.simantics.org/DocumentLink-1.0/SearchFunction";\r
106         public static final String Source = "http://www.simantics.org/DocumentLink-1.0/Source";\r
107         public static final String SourceObjectViewpointActionContext = "http://www.simantics.org/DocumentLink-1.0/SourceObjectViewpointActionContext";\r
108         public static final String SourceObjectViewpointActionContext_Category = "http://www.simantics.org/DocumentLink-1.0/SourceObjectViewpointActionContext/Category";\r
109         public static final String SourceObjectViewpointBrowseContext = "http://www.simantics.org/DocumentLink-1.0/SourceObjectViewpointBrowseContext";\r
110         public static final String SourceObjectViewpointBrowseContext_ChildRule = "http://www.simantics.org/DocumentLink-1.0/SourceObjectViewpointBrowseContext/ChildRule";\r
111         public static final String SourcePropertyViewpointActionContext = "http://www.simantics.org/DocumentLink-1.0/SourcePropertyViewpointActionContext";\r
112         public static final String SourcePropertyViewpointActionContext_Category = "http://www.simantics.org/DocumentLink-1.0/SourcePropertyViewpointActionContext/Category";\r
113         public static final String SourcePropertyViewpointActionContext_FixAll = "http://www.simantics.org/DocumentLink-1.0/SourcePropertyViewpointActionContext/FixAll";\r
114         public static final String SourcePropertyViewpointActionContext_FixAllReferences = "http://www.simantics.org/DocumentLink-1.0/SourcePropertyViewpointActionContext/FixAllReferences";\r
115         public static final String SourcePropertyViewpointActionContext_Open = "http://www.simantics.org/DocumentLink-1.0/SourcePropertyViewpointActionContext/Open";\r
116         public static final String SourcePropertyViewpointActionContext_OpenWith = "http://www.simantics.org/DocumentLink-1.0/SourcePropertyViewpointActionContext/OpenWith";\r
117         public static final String SourcePropertyViewpointActionContext_Remove = "http://www.simantics.org/DocumentLink-1.0/SourcePropertyViewpointActionContext/Remove";\r
118         public static final String SourcePropertyViewpointActionContext_RemoveSource = "http://www.simantics.org/DocumentLink-1.0/SourcePropertyViewpointActionContext/RemoveSource";\r
119         public static final String SourcePropertyViewpointActionContext_Replace = "http://www.simantics.org/DocumentLink-1.0/SourcePropertyViewpointActionContext/Replace";\r
120         public static final String SourcePropertyViewpointActionContext_ReplaceWithLatest = "http://www.simantics.org/DocumentLink-1.0/SourcePropertyViewpointActionContext/ReplaceWithLatest";\r
121         public static final String SourcePropertyViewpointActionContext_ShowDocument = "http://www.simantics.org/DocumentLink-1.0/SourcePropertyViewpointActionContext/ShowDocument";\r
122         public static final String SourcePropertyViewpointActionContext_ShowDocumentExternal = "http://www.simantics.org/DocumentLink-1.0/SourcePropertyViewpointActionContext/ShowDocumentExternal";\r
123         public static final String SourcePropertyViewpointActionContext_SourceObjectDropAction = "http://www.simantics.org/DocumentLink-1.0/SourcePropertyViewpointActionContext/SourceObjectDropAction";\r
124         public static final String SourcePropertyViewpointActionContext_SourceReferenceOldTest = "http://www.simantics.org/DocumentLink-1.0/SourcePropertyViewpointActionContext/SourceReferenceOldTest";\r
125         public static final String SourcePropertyViewpointActionContext_VariableInstanceTest = "http://www.simantics.org/DocumentLink-1.0/SourcePropertyViewpointActionContext/VariableInstanceTest";\r
126         public static final String SourcePropertyViewpointBrowseContext = "http://www.simantics.org/DocumentLink-1.0/SourcePropertyViewpointBrowseContext";\r
127         public static final String SourcePropertyViewpointBrowseContext_ChildRule = "http://www.simantics.org/DocumentLink-1.0/SourcePropertyViewpointBrowseContext/ChildRule";\r
128         public static final String SourcePropertyViewpointBrowseContext_Variable = "http://www.simantics.org/DocumentLink-1.0/SourcePropertyViewpointBrowseContext/Variable";\r
129         public static final String SourcePropertyViewpointBrowseContext_VariableImageDecorationRule = "http://www.simantics.org/DocumentLink-1.0/SourcePropertyViewpointBrowseContext/VariableImageDecorationRule";\r
130         public static final String SourcePropertyViewpointBrowseContext_VariableImageRule = "http://www.simantics.org/DocumentLink-1.0/SourcePropertyViewpointBrowseContext/VariableImageRule";\r
131         public static final String SourcePropertyViewpointBrowseContext_VariableLabelRule = "http://www.simantics.org/DocumentLink-1.0/SourcePropertyViewpointBrowseContext/VariableLabelRule";\r
132         public static final String SourcePropertyViewpointBrowseContext_VariableModifierRule = "http://www.simantics.org/DocumentLink-1.0/SourcePropertyViewpointBrowseContext/VariableModifierRule";\r
133         public static final String consernsRelation = "http://www.simantics.org/DocumentLink-1.0/consernsRelation";\r
134         public static final String hasFunctionalSource = "http://www.simantics.org/DocumentLink-1.0/hasFunctionalSource";\r
135         public static final String hasFunctionalSource_Inverse = "http://www.simantics.org/DocumentLink-1.0/hasFunctionalSource/Inverse";\r
136         public static final String hasInstanceSource = "http://www.simantics.org/DocumentLink-1.0/hasInstanceSource";\r
137         public static final String hasInstanceSource_Inverse = "http://www.simantics.org/DocumentLink-1.0/hasInstanceSource/Inverse";\r
138         public static final String hasSource = "http://www.simantics.org/DocumentLink-1.0/hasSource";\r
139         public static final String hasSourceComment = "http://www.simantics.org/DocumentLink-1.0/hasSourceComment";\r
140         public static final String hasSourceComment_Inverse = "http://www.simantics.org/DocumentLink-1.0/hasSourceComment/Inverse";\r
141         public static final String hasSourceReference = "http://www.simantics.org/DocumentLink-1.0/hasSourceReference";\r
142         public static final String hasSourceReferenceURI = "http://www.simantics.org/DocumentLink-1.0/hasSourceReferenceURI";\r
143         public static final String hasSourceReferenceURI_Inverse = "http://www.simantics.org/DocumentLink-1.0/hasSourceReferenceURI/Inverse";\r
144         public static final String hasSource_Inverse = "http://www.simantics.org/DocumentLink-1.0/hasSource/Inverse";\r
145     }\r
146     \r
147     public static Resource getResourceOrNull(ReadGraph graph, String uri) {\r
148         try {\r
149             return graph.getResource(uri);\r
150         } catch(DatabaseException e) {\r
151             System.err.println(e.getMessage());\r
152             return null;\r
153         }\r
154     }\r
155     \r
156     public DocumentLink(ReadGraph graph) {\r
157         EvaluatorTree = getResourceOrNull(graph, URIs.EvaluatorTree);\r
158         EvaluatorTree_AligmentHint = getResourceOrNull(graph, URIs.EvaluatorTree_AligmentHint);\r
159         EvaluatorTree_And = getResourceOrNull(graph, URIs.EvaluatorTree_And);\r
160         EvaluatorTree_Constant = getResourceOrNull(graph, URIs.EvaluatorTree_Constant);\r
161         EvaluatorTree_Date = getResourceOrNull(graph, URIs.EvaluatorTree_Date);\r
162         EvaluatorTree_HasValue = getResourceOrNull(graph, URIs.EvaluatorTree_HasValue);\r
163         EvaluatorTree_HasValue_Inverse = getResourceOrNull(graph, URIs.EvaluatorTree_HasValue_Inverse);\r
164         EvaluatorTree_If = getResourceOrNull(graph, URIs.EvaluatorTree_If);\r
165         EvaluatorTree_Lines = getResourceOrNull(graph, URIs.EvaluatorTree_Lines);\r
166         EvaluatorTree_Node = getResourceOrNull(graph, URIs.EvaluatorTree_Node);\r
167         EvaluatorTree_Or = getResourceOrNull(graph, URIs.EvaluatorTree_Or);\r
168         EvaluatorTree_Path = getResourceOrNull(graph, URIs.EvaluatorTree_Path);\r
169         EvaluatorTree_Root = getResourceOrNull(graph, URIs.EvaluatorTree_Root);\r
170         EvaluatorTree_Template = getResourceOrNull(graph, URIs.EvaluatorTree_Template);\r
171         EvaluatorTree_TextSizeHint = getResourceOrNull(graph, URIs.EvaluatorTree_TextSizeHint);\r
172         EvaluatorTree_Variable = getResourceOrNull(graph, URIs.EvaluatorTree_Variable);\r
173         FunctionalSource = getResourceOrNull(graph, URIs.FunctionalSource);\r
174         InstanceSource = getResourceOrNull(graph, URIs.InstanceSource);\r
175         ModelViewpointActionContext = getResourceOrNull(graph, URIs.ModelViewpointActionContext);\r
176         ModelViewpointBrowseContext = getResourceOrNull(graph, URIs.ModelViewpointBrowseContext);\r
177         ModelViewpointBrowseContext2 = getResourceOrNull(graph, URIs.ModelViewpointBrowseContext2);\r
178         ModelViewpointBrowseContext2_ChildRule = getResourceOrNull(graph, URIs.ModelViewpointBrowseContext2_ChildRule);\r
179         ModelViewpointBrowseContext_ChildRule = getResourceOrNull(graph, URIs.ModelViewpointBrowseContext_ChildRule);\r
180         ReportTemplate = getResourceOrNull(graph, URIs.ReportTemplate);\r
181         SearchContribution = getResourceOrNull(graph, URIs.SearchContribution);\r
182         SearchFunction = getResourceOrNull(graph, URIs.SearchFunction);\r
183         Source = getResourceOrNull(graph, URIs.Source);\r
184         SourceObjectViewpointActionContext = getResourceOrNull(graph, URIs.SourceObjectViewpointActionContext);\r
185         SourceObjectViewpointActionContext_Category = getResourceOrNull(graph, URIs.SourceObjectViewpointActionContext_Category);\r
186         SourceObjectViewpointBrowseContext = getResourceOrNull(graph, URIs.SourceObjectViewpointBrowseContext);\r
187         SourceObjectViewpointBrowseContext_ChildRule = getResourceOrNull(graph, URIs.SourceObjectViewpointBrowseContext_ChildRule);\r
188         SourcePropertyViewpointActionContext = getResourceOrNull(graph, URIs.SourcePropertyViewpointActionContext);\r
189         SourcePropertyViewpointActionContext_Category = getResourceOrNull(graph, URIs.SourcePropertyViewpointActionContext_Category);\r
190         SourcePropertyViewpointActionContext_FixAll = getResourceOrNull(graph, URIs.SourcePropertyViewpointActionContext_FixAll);\r
191         SourcePropertyViewpointActionContext_FixAllReferences = getResourceOrNull(graph, URIs.SourcePropertyViewpointActionContext_FixAllReferences);\r
192         SourcePropertyViewpointActionContext_Open = getResourceOrNull(graph, URIs.SourcePropertyViewpointActionContext_Open);\r
193         SourcePropertyViewpointActionContext_OpenWith = getResourceOrNull(graph, URIs.SourcePropertyViewpointActionContext_OpenWith);\r
194         SourcePropertyViewpointActionContext_Remove = getResourceOrNull(graph, URIs.SourcePropertyViewpointActionContext_Remove);\r
195         SourcePropertyViewpointActionContext_RemoveSource = getResourceOrNull(graph, URIs.SourcePropertyViewpointActionContext_RemoveSource);\r
196         SourcePropertyViewpointActionContext_Replace = getResourceOrNull(graph, URIs.SourcePropertyViewpointActionContext_Replace);\r
197         SourcePropertyViewpointActionContext_ReplaceWithLatest = getResourceOrNull(graph, URIs.SourcePropertyViewpointActionContext_ReplaceWithLatest);\r
198         SourcePropertyViewpointActionContext_ShowDocument = getResourceOrNull(graph, URIs.SourcePropertyViewpointActionContext_ShowDocument);\r
199         SourcePropertyViewpointActionContext_ShowDocumentExternal = getResourceOrNull(graph, URIs.SourcePropertyViewpointActionContext_ShowDocumentExternal);\r
200         SourcePropertyViewpointActionContext_SourceObjectDropAction = getResourceOrNull(graph, URIs.SourcePropertyViewpointActionContext_SourceObjectDropAction);\r
201         SourcePropertyViewpointActionContext_SourceReferenceOldTest = getResourceOrNull(graph, URIs.SourcePropertyViewpointActionContext_SourceReferenceOldTest);\r
202         SourcePropertyViewpointActionContext_VariableInstanceTest = getResourceOrNull(graph, URIs.SourcePropertyViewpointActionContext_VariableInstanceTest);\r
203         SourcePropertyViewpointBrowseContext = getResourceOrNull(graph, URIs.SourcePropertyViewpointBrowseContext);\r
204         SourcePropertyViewpointBrowseContext_ChildRule = getResourceOrNull(graph, URIs.SourcePropertyViewpointBrowseContext_ChildRule);\r
205         SourcePropertyViewpointBrowseContext_Variable = getResourceOrNull(graph, URIs.SourcePropertyViewpointBrowseContext_Variable);\r
206         SourcePropertyViewpointBrowseContext_VariableImageDecorationRule = getResourceOrNull(graph, URIs.SourcePropertyViewpointBrowseContext_VariableImageDecorationRule);\r
207         SourcePropertyViewpointBrowseContext_VariableImageRule = getResourceOrNull(graph, URIs.SourcePropertyViewpointBrowseContext_VariableImageRule);\r
208         SourcePropertyViewpointBrowseContext_VariableLabelRule = getResourceOrNull(graph, URIs.SourcePropertyViewpointBrowseContext_VariableLabelRule);\r
209         SourcePropertyViewpointBrowseContext_VariableModifierRule = getResourceOrNull(graph, URIs.SourcePropertyViewpointBrowseContext_VariableModifierRule);\r
210         consernsRelation = getResourceOrNull(graph, URIs.consernsRelation);\r
211         hasFunctionalSource = getResourceOrNull(graph, URIs.hasFunctionalSource);\r
212         hasFunctionalSource_Inverse = getResourceOrNull(graph, URIs.hasFunctionalSource_Inverse);\r
213         hasInstanceSource = getResourceOrNull(graph, URIs.hasInstanceSource);\r
214         hasInstanceSource_Inverse = getResourceOrNull(graph, URIs.hasInstanceSource_Inverse);\r
215         hasSource = getResourceOrNull(graph, URIs.hasSource);\r
216         hasSourceComment = getResourceOrNull(graph, URIs.hasSourceComment);\r
217         hasSourceComment_Inverse = getResourceOrNull(graph, URIs.hasSourceComment_Inverse);\r
218         hasSourceReference = getResourceOrNull(graph, URIs.hasSourceReference);\r
219         hasSourceReferenceURI = getResourceOrNull(graph, URIs.hasSourceReferenceURI);\r
220         hasSourceReferenceURI_Inverse = getResourceOrNull(graph, URIs.hasSourceReferenceURI_Inverse);\r
221         hasSource_Inverse = getResourceOrNull(graph, URIs.hasSource_Inverse);\r
222     }\r
223     \r
224     public static DocumentLink getInstance(ReadGraph graph) {\r
225         Session session = graph.getSession();\r
226         DocumentLink ret = session.peekService(DocumentLink.class);\r
227         if(ret == null) {\r
228             QueryControl qc = graph.getService(QueryControl.class);\r
229             ret = new DocumentLink(qc.getIndependentGraph(graph));\r
230             session.registerService(DocumentLink.class, ret);\r
231         }\r
232         return ret;\r
233     }\r
234     \r
235     public static DocumentLink getInstance(RequestProcessor session) throws DatabaseException {\r
236         DocumentLink ret = session.peekService(DocumentLink.class);\r
237         if(ret == null) {\r
238             ret = session.syncRequest(new Read<DocumentLink>() {\r
239                 public DocumentLink perform(ReadGraph graph) throws DatabaseException {\r
240                     QueryControl qc = graph.getService(QueryControl.class);\r
241                     return new DocumentLink(qc.getIndependentGraph(graph));\r
242                 }\r
243             });\r
244             session.registerService(DocumentLink.class, ret);\r
245         }\r
246         return ret;\r
247     }\r
248     \r
249 }\r
250 \r