diff options
author | OszkarSemerath <oszka@152.66.252.189> | 2017-06-10 19:05:05 +0200 |
---|---|---|
committer | OszkarSemerath <oszka@152.66.252.189> | 2017-06-10 19:05:05 +0200 |
commit | 60f01f46ba232ed6416054f0a6115cb2a9b70b4e (patch) | |
tree | 5edf8aeb07abc51f3fec63bbd15c926e1de09552 /Framework/hu.bme.mit.inf.dslreasoner.logic.model/src/hu/bme/mit/inf/dslreasoner/workspace/ProjectWorkspace.xtend | |
parent | Initial commit, migrating from SVN (diff) | |
download | VIATRA-Generator-60f01f46ba232ed6416054f0a6115cb2a9b70b4e.tar.gz VIATRA-Generator-60f01f46ba232ed6416054f0a6115cb2a9b70b4e.tar.zst VIATRA-Generator-60f01f46ba232ed6416054f0a6115cb2a9b70b4e.zip |
Migrating Additional projects
Diffstat (limited to 'Framework/hu.bme.mit.inf.dslreasoner.logic.model/src/hu/bme/mit/inf/dslreasoner/workspace/ProjectWorkspace.xtend')
-rw-r--r-- | Framework/hu.bme.mit.inf.dslreasoner.logic.model/src/hu/bme/mit/inf/dslreasoner/workspace/ProjectWorkspace.xtend | 105 |
1 files changed, 105 insertions, 0 deletions
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.logic.model/src/hu/bme/mit/inf/dslreasoner/workspace/ProjectWorkspace.xtend b/Framework/hu.bme.mit.inf.dslreasoner.logic.model/src/hu/bme/mit/inf/dslreasoner/workspace/ProjectWorkspace.xtend new file mode 100644 index 00000000..5703bd5a --- /dev/null +++ b/Framework/hu.bme.mit.inf.dslreasoner.logic.model/src/hu/bme/mit/inf/dslreasoner/workspace/ProjectWorkspace.xtend | |||
@@ -0,0 +1,105 @@ | |||
1 | package hu.bme.mit.inf.dslreasoner.workspace | ||
2 | |||
3 | import java.io.BufferedReader | ||
4 | import java.io.ByteArrayInputStream | ||
5 | import java.io.IOException | ||
6 | import java.io.InputStreamReader | ||
7 | import org.eclipse.core.resources.IContainer | ||
8 | import org.eclipse.core.resources.IFolder | ||
9 | import org.eclipse.core.resources.IProject | ||
10 | import org.eclipse.core.resources.IWorkspaceRoot | ||
11 | import org.eclipse.core.resources.ResourcesPlugin | ||
12 | import org.eclipse.core.runtime.NullProgressMonitor | ||
13 | import org.eclipse.emf.common.util.URI | ||
14 | |||
15 | class ProjectWorkspace extends ReasonerWorkspace{ | ||
16 | |||
17 | val monitor = new NullProgressMonitor | ||
18 | var IContainer target; | ||
19 | |||
20 | new(String targetFolder, String prefix) { | ||
21 | super(targetFolder, prefix) | ||
22 | } | ||
23 | |||
24 | override protected getURI(String name) { | ||
25 | URI.createPlatformResourceURI(targetFolder + "/" + prefix + name,true); | ||
26 | } | ||
27 | |||
28 | def protected getDirUri() { | ||
29 | URI.createPlatformResourceURI(targetFolder,true) | ||
30 | } | ||
31 | |||
32 | override getWorkspaceURI() { | ||
33 | getDirUri | ||
34 | } | ||
35 | |||
36 | override initAndClear() { | ||
37 | target = ResourcesPlugin.workspace.root | ||
38 | for(nameSegment : dirUri.segments) { | ||
39 | target = createContainer(target,nameSegment) | ||
40 | } | ||
41 | target.members.forEach[delete(false,monitor)] | ||
42 | } | ||
43 | |||
44 | def protected dispatch createContainer(IWorkspaceRoot root, String name) { | ||
45 | val project = root.getProject(name) | ||
46 | if(project.exists) { | ||
47 | if(!project.open) { | ||
48 | project.open(monitor) | ||
49 | } | ||
50 | } else { | ||
51 | project.create(monitor) | ||
52 | } | ||
53 | return project | ||
54 | } | ||
55 | |||
56 | def protected dispatch createContainer(IProject root, String name) { | ||
57 | val folder = root.getFolder(name); | ||
58 | if(folder.exists) { | ||
59 | folder.create(false,true,monitor) | ||
60 | } | ||
61 | return folder | ||
62 | } | ||
63 | |||
64 | def protected dispatch createContainer(IFolder root, String name) { | ||
65 | val folder = root.getFolder(name); | ||
66 | if(folder.exists) { | ||
67 | folder.create(false,true,monitor) | ||
68 | } | ||
69 | return folder | ||
70 | } | ||
71 | |||
72 | def dispatch getTargetFile(IFolder targetFolder, String name) { targetFolder.getFile(name) } | ||
73 | def dispatch getTargetFile(IProject targetProject, String name) { targetProject.getFile(name) } | ||
74 | |||
75 | override writeText(String name, CharSequence content) { | ||
76 | val file = target.getTargetFile(name); | ||
77 | if(!file.exists()) { | ||
78 | file.create(new ByteArrayInputStream(content.toString().getBytes()),true, new NullProgressMonitor()); | ||
79 | return URI.createPlatformResourceURI(file.projectRelativePath.toString,true) | ||
80 | } | ||
81 | else throw new IOException("The file is already existing.") | ||
82 | } | ||
83 | |||
84 | override readText(String name) { | ||
85 | val file = target.getTargetFile(name) | ||
86 | val in = new BufferedReader(new InputStreamReader(file.contents)) | ||
87 | |||
88 | var result = "" | ||
89 | var String line; | ||
90 | |||
91 | while ((line = in.readLine()) != null) { | ||
92 | result = result.concat(line) | ||
93 | } | ||
94 | |||
95 | return result | ||
96 | } | ||
97 | |||
98 | override protected renameFile(String name) { | ||
99 | throw new UnsupportedOperationException("TODO: auto-generated method stub") | ||
100 | } | ||
101 | |||
102 | override subWorkspace(String targetFolder, String prefix) { | ||
103 | throw new UnsupportedOperationException("TODO: auto-generated method stub") | ||
104 | } | ||
105 | } | ||