]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.graphfile/src/org/simantics/graphfile/hack/GraphPath.java
Fixed all line endings of the repository
[simantics/platform.git] / bundles / org.simantics.graphfile / src / org / simantics / graphfile / hack / GraphPath.java
1 /*******************************************************************************
2  * Copyright (c) 2013 Association for Decentralized Information Management
3  * in Industry THTH ry.
4  * All rights reserved. This program and the accompanying materials
5  * are made available under the terms of the Eclipse Public License v1.0
6  * which accompanies this distribution, and is available at
7  * http://www.eclipse.org/legal/epl-v10.html
8  *
9  * Contributors:
10  *     VTT Technical Research Centre of Finland - initial API and implementation
11  *******************************************************************************/
12 package org.simantics.graphfile.hack;
13
14 import java.io.File;
15 import java.util.ArrayList;
16 import java.util.List;
17
18 import org.eclipse.core.runtime.IPath;
19 import org.simantics.Simantics;
20 import org.simantics.db.ReadGraph;
21 import org.simantics.db.Resource;
22 import org.simantics.db.common.request.ReadRequest;
23 import org.simantics.db.exception.DatabaseException;
24 import org.simantics.graphfile.ontology.GraphFileResource;
25 import org.simantics.layer0.Layer0;
26
27 public class GraphPath implements IPath {
28         
29         private GraphFile file;
30         List<String> path = new ArrayList<String>();
31         
32         public GraphPath(GraphFile f) {
33                 this.file = f;
34                 try {
35                         Simantics.getSession().syncRequest(new ReadRequest() {
36                                 
37                                 @Override
38                                 public void run(ReadGraph graph) throws DatabaseException {
39                                         Layer0 l0 = Layer0.getInstance(graph);
40                                         GraphFileResource gf = GraphFileResource.getInstance(graph);
41                                         Resource fileResource = file.getFileResource();
42                                         Resource t = fileResource;
43                                         while (true) {
44                                                 t = graph.getPossibleObject(t, gf.PartOfSystemResource);
45                                                 if (t != null) {
46                                                         path.add(0, (String)graph.getRelatedValue(t, l0.HasName));
47                                                 } else {
48                                                         break;
49                                                 }
50                                         }
51                                         
52                                 }
53                         });
54                 } catch (DatabaseException e) {
55                         throw new RuntimeException("Could not evaluate graph path",e);
56                 }
57         }
58
59         @Override
60         public IPath addFileExtension(String extension) {
61                 // TODO Auto-generated method stub
62                 return null;
63         }
64
65         @Override
66         public IPath addTrailingSeparator() {
67                 // TODO Auto-generated method stub
68                 return null;
69         }
70
71         @Override
72         public IPath append(String path) {
73                 // TODO Auto-generated method stub
74                 return null;
75         }
76
77         @Override
78         public IPath append(IPath path) {
79                 // TODO Auto-generated method stub
80                 return null;
81         }
82
83         @Override
84         public String getDevice() {
85                 return "SimanticsGraph";
86         }
87
88         @Override
89         public String getFileExtension() {
90                 // TODO Auto-generated method stub
91                 return null;
92         }
93
94         @Override
95         public boolean hasTrailingSeparator() {
96                 // TODO Auto-generated method stub
97                 return false;
98         }
99
100         @Override
101         public boolean isAbsolute() {
102                 // TODO Auto-generated method stub
103                 return false;
104         }
105
106         @Override
107         public boolean isEmpty() {
108                 // TODO Auto-generated method stub
109                 return false;
110         }
111
112         @Override
113         public boolean isPrefixOf(IPath anotherPath) {
114                 // TODO Auto-generated method stub
115                 return false;
116         }
117
118         @Override
119         public boolean isRoot() {
120                 // TODO Auto-generated method stub
121                 return false;
122         }
123
124         @Override
125         public boolean isUNC() {
126                 // TODO Auto-generated method stub
127                 return false;
128         }
129
130         @Override
131         public boolean isValidPath(String path) {
132                 // TODO Auto-generated method stub
133                 return false;
134         }
135
136         @Override
137         public boolean isValidSegment(String segment) {
138                 // TODO Auto-generated method stub
139                 return false;
140         }
141
142         @Override
143         public String lastSegment() {
144                 // TODO Auto-generated method stub
145                 return null;
146         }
147
148         @Override
149         public IPath makeAbsolute() {
150                 return this;
151         }
152
153         @Override
154         public IPath makeRelative() {
155                 return this;
156         }
157
158         @Override
159         public IPath makeRelativeTo(IPath base) {
160                 // TODO Auto-generated method stub
161                 return null;
162         }
163
164         @Override
165         public IPath makeUNC(boolean toUNC) {
166                 // TODO Auto-generated method stub
167                 return null;
168         }
169
170         @Override
171         public int matchingFirstSegments(IPath anotherPath) {
172                 // TODO Auto-generated method stub
173                 return 0;
174         }
175
176         @Override
177         public IPath removeFileExtension() {
178                 // TODO Auto-generated method stub
179                 return null;
180         }
181
182         @Override
183         public IPath removeFirstSegments(int count) {
184                 // TODO Auto-generated method stub
185                 return null;
186         }
187
188         @Override
189         public IPath removeLastSegments(int count) {
190                 // TODO Auto-generated method stub
191                 return null;
192         }
193
194         @Override
195         public IPath removeTrailingSeparator() {
196                 // TODO Auto-generated method stub
197                 return null;
198         }
199
200         @Override
201         public String segment(int index) {
202                 // TODO Auto-generated method stub
203                 return null;
204         }
205
206         @Override
207         public int segmentCount() {
208                 // TODO Auto-generated method stub
209                 return 0;
210         }
211
212         @Override
213         public String[] segments() {
214                 // TODO Auto-generated method stub
215                 return null;
216         }
217
218         @Override
219         public IPath setDevice(String device) {
220                 // TODO Auto-generated method stub
221                 return null;
222         }
223
224         @Override
225         public File toFile() {
226                 // TODO Auto-generated method stub
227                 return new GraphJavaFile(file.getFileResource());
228         }
229
230         @Override
231         public String toOSString() {
232                 // TODO Auto-generated method stub
233                 return null;
234         }
235
236         @Override
237         public String toPortableString() {
238                 // TODO Auto-generated method stub
239                 return null;
240         }
241
242         @Override
243         public IPath uptoSegment(int count) {
244                 // TODO Auto-generated method stub
245                 return null;
246         }
247
248         @Override
249         public Object clone()  {
250                 return null;
251         }
252         
253         @Override
254         public String toString() {
255                 String name = "";
256                 for (String s : path) {
257                         name+= s + SEPARATOR; 
258                 }
259                 name += file.getName();
260                 return name;
261         }
262
263 }